[prone] fix warning `StaticImport`, `NonStaticImport`
- Vorherrschende Sprache
- Java
- Sterne
- 5.6k
- Forks
- 559
- Ø Merge
- 1 T. 14 Std.
- Gemergte PRs (30 T.)
- 43
Beschreibung
Following the build, `StaticImport` has the potential to remove a lot of warnings, improving focus on the truly important stuff by moving the class context into `oblivion` using the static import.
These would again reduce the log significantly, making more space for better clarity:
- **StaticImport**
- https://error-prone.picnic.tech/bugpatterns/StaticImport/
- **NonStaticImport**
- https://error-prone.picnic.tech/bugpatterns/NonStaticImport/
- **UnnecessaryDefaultInEnumSwitch**
- https://error-prone.picnic.tech/bugpatterns/UnnecessaryDefaultInEnumSwitch/
- https://github.com/diffplug/spotless/pull/2702
```
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(elements);'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LibPreconditions.java:27: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(element);
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(element);'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/MoreIterables.java:43: Note: [StaticImport] Identifier should be statically imported
return toSortedSet(raw, Comparator.naturalOrder());
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'return toSortedSet(raw, naturalOrder());'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/FileSignature.java:106: Note: [LexicographicalAnnotationListing] Sort annotations lexicographically where possible
@SuppressFBWarnings("SE_TRANSIENT_FIELD_NOT_RESTORED")
^
(see https://error-prone.picnic.tech/bugpatterns/LexicographicalAnnotationListing)
Did you mean '@Nullable'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/FileSignature.java:137: Note: [StaticImport] Identifier should be statically imported
return Collections.unmodifiableList(files);
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'return unmodifiableList(files);'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/FormatterStepEqualityOnStateSerialization.java:63: warning: [EqualsGetClass] Prefer instanceof to getClass when implementing Object#equals.
public boolean equals(Object o) {
^
(see https://errorprone.info/bugpattern/EqualsGetClass)
Did you mean 'if (!(o instanceof FormatterStepEqualityOnStateSerialization)) {'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/FormatterStepSerializationRoundtrip.java:125: Note: [StaticImport] Identifier should be statically imported
return original != null ? original : Objects.requireNonNull(cleaned, "how is clean null if this has been serialized?");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'return original != null ? original : requireNonNull(cleaned, "how is clean null if this has been serialized?");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/FormatterStepSerializationRoundtrip.java:129: warning: [EqualsGetClass] Prefer instanceof to getClass when implementing Object#equals.
public boolean equals(Object o) {
^
(see https://errorprone.info/bugpattern/EqualsGetClass)
Did you mean 'if (!(o instanceof HackClone)) {'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:47: Note: [StaticImport] Identifier should be statically imported
this.lineEndingsPolicy = Objects.requireNonNull(lineEndingsPolicy, "lineEndingsPolicy");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'this.lineEndingsPolicy = requireNonNull(lineEndingsPolicy, "lineEndingsPolicy");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:48: Note: [StaticImport] Identifier should be statically imported
this.encoding = Objects.requireNonNull(encoding, "encoding");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'this.encoding = requireNonNull(encoding, "encoding");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:119: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(unix, "unix");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(unix, "unix");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:120: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(file, "file");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(file, "file");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:152: warning: [Slf4jLoggerDeclaration] SLF4J logger declarations should follow established best-practices
private static final Logger LOGGER = LoggerFactory.getLogger(Formatter.class);
^
(see https://error-prone.picnic.tech/bugpatterns/Slf4jLoggerDeclaration)
Did you mean 'LOG.error("Step '{}' found problem in '{}':\n{}", formatter.getSteps().get(i).getName(), file.getName(), exception.getMessage(), exception);'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:165: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(unix, "unix");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(unix, "unix");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:166: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(file, "file");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(file, "file");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:223: Note: [LexicographicalAnnotationListing] Sort annotations lexicographically where possible
@SuppressWarnings("rawtypes")
^
(see https://error-prone.picnic.tech/bugpatterns/LexicographicalAnnotationListing)
Did you mean '@Override'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/Formatter.java:242: warning: [ReferenceEquality] Comparison using reference equality instead of value equality
if (file == Formatter.NO_FILE_SENTINEL) {
^
(see https://errorprone.info/bugpattern/ReferenceEquality)
Did you mean 'if (Objects.equals(file, Formatter.NO_FILE_SENTINEL)) {' or 'if (file.equals(Formatter.NO_FILE_SENTINEL)) {'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/ValuePerStep.java:36: Note: [LexicographicalAnnotationListing] Sort annotations lexicographically where possible
@Override
^
(see https://error-prone.picnic.tech/bugpatterns/LexicographicalAnnotationListing)
Did you mean '@Nullable'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:38: warning: [InlineMeSuggester] This deprecated API looks inlineable. If you'd like the body of the API to be automatically inlined to its callers, please annotate it with @InlineMe. NOTE: the suggested fix makes the method final if it was not already.
public Policy createPolicy() {
^
(see https://errorprone.info/bugpattern/InlineMeSuggester)
Did you mean '@InlineMe(replacement = "super.createPolicy()")'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:37: Note: [LexicographicalAnnotationListing] Sort annotations lexicographically where possible
@Override @Deprecated
^
(see https://error-prone.picnic.tech/bugpatterns/LexicographicalAnnotationListing)
Did you mean '@Deprecated @Override'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:46: warning: [InlineMeSuggester] This deprecated API looks inlineable. If you'd like the body of the API to be automatically inlined to its callers, please annotate it with @InlineMe. NOTE: the suggested fix makes the method final if it was not already.
public Policy createPolicy() {
^
(see https://errorprone.info/bugpattern/InlineMeSuggester)
Did you mean '@InlineMe(replacement = "super.createPolicy()")'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:45: Note: [LexicographicalAnnotationListing] Sort annotations lexicographically where possible
@Override @Deprecated
^
(see https://error-prone.picnic.tech/bugpatterns/LexicographicalAnnotationListing)
Did you mean '@Deprecated @Override'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:64: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(projectDir, "projectDir");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(projectDir, "projectDir");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:65: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(toFormat, "toFormat");
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(toFormat, "toFormat");'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:86: warning: [StatementSwitchToExpressionSwitch] This statement switch can be converted to a new-style arrow switch
switch (this) {
^
(see https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch)
Did you mean 'return switch (this) {' or 'switch (this) {'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:117: Note: [StaticImport] Identifier should be statically imported
try (Reader reader = new FileReader(file, StandardCharsets.US_ASCII)) {
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'try (Reader reader = new FileReader(file, US_ASCII)) {'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:160: warning: [MissingSummary] A summary fragment is required; consider using the value of the @see block as a summary fragment instead.
* @deprecated Using the system-native line endings to detect the windows operating system has turned out
^
(see https://google.github.io/styleguide/javaguide.html#s7.2-summary-fragment)
Did you mean '*See {@link FileSignature#machineIsWin()}.'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:172: warning: [StatementSwitchToExpressionSwitch] This statement switch can be converted to a new-style arrow switch
switch (this) {
^
(see https://errorprone.info/bugpattern/StatementSwitchToExpressionSwitch)
Did you mean 'return switch (this) {' or 'switch (this) {'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/LineEnding.java:189: Note: [StaticImport] Identifier should be statically imported
Objects.requireNonNull(file);
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'requireNonNull(file);'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/ProcessRunner.java:226: Note: [StaticImport] Identifier should be statically imported
return new String(stdOut, StandardCharsets.UTF_8);
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'return new String(stdOut, UTF_8);'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/ProcessRunner.java:230: Note: [StaticImport] Identifier should be statically imported
return new String(stdErr, StandardCharsets.UTF_8);
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
Did you mean 'return new String(stdErr, UTF_8);'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/ProcessRunner.java:263: warning: [StringSplitter] String.split(String) has surprising behavior
String[] lines = string.replace("\r", "").split("\n");
^
(see https://errorprone.info/bugpattern/StringSplitter)
Did you mean 'List lines = Splitter.on('\n').splitToList(string.replace("\r", ""));'?
/Users/vincent.potucek/IdeaProjects/spotless/lib/src/main/java/com/diffplug/spotless/go/GofmtFormatStep.java:107: Note: [StaticImport] Identifier should be statically imported
this.exe = Objects.requireNonNull(goExecutable);
^
(see https://error-prone.picnic.tech/bugpatterns/StaticImport)
```
Beitragsleitfaden
Rechercherichtung
Führe zunächst den Build aus, der diese Error Prone-Diagnosen erzeugt hat, und überprüfe die genannten Dateien, einschließlich LibPreconditions.java, MoreIterables.java, FileSignature.java, Formatter.java und LineEnding.java. Verwende die Verweise auf StaticImport und NonStaticImport als anfänglichen Umfang und überprüfe anschließend, dass die ausgewählten Warnungen nicht mehr in der Build-Ausgabe erscheinen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- tooling
- Issue-Typ
- Refactoring
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100