From a11c983b6f2ddbfe002d00ec6e6b3b063523b438 Mon Sep 17 00:00:00 2001 From: Vincent Potucek Date: Sat, 8 Nov 2025 13:57:34 +0100 Subject: [PATCH] [openrewrite] initial merge and `Java8toJava11` Signed-off-by: Vincent Potucek --- .github/workflows/ci.yml | 3 + .idea/checkstyle-idea.xml | 15 ++ .idea/palantir-java-format.xml | 6 + annotation/pom.xml | 2 +- annotations/pom.xml | 18 +- check_api/pom.xml | 17 +- .../apply/DescriptionBasedDiff.java | 4 +- .../inference/InferredNullability.java | 10 +- .../inference/NullnessQualifierInference.java | 6 +- .../errorprone/fixes/SuggestedFixes.java | 4 +- .../method/MethodInvocationMatcher.java | 2 +- .../com/google/errorprone/util/Comments.java | 2 +- .../google/errorprone/util/CommentsTest.java | 2 +- core/pom.xml | 19 +- .../AbstractReturnValueIgnored.java | 8 +- .../bugpatterns/AssertionFailureIgnored.java | 2 +- .../DoubleBraceInitialization.java | 2 +- .../errorprone/bugpatterns/FallThrough.java | 5 +- .../bugpatterns/ImmutableSetForContains.java | 2 +- .../JUnitParameterMethodNotFound.java | 4 +- .../bugpatterns/MissingDefault.java | 2 +- .../bugpatterns/RedundantOverride.java | 2 +- .../bugpatterns/RestrictedApiChecker.java | 4 +- .../bugpatterns/StaticMockMember.java | 2 +- .../bugpatterns/StringSplitter.java | 4 +- .../errorprone/bugpatterns/SwitchDefault.java | 2 +- .../UnnecessaryAnonymousClass.java | 2 +- .../bugpatterns/apidiff/ApiDiffChecker.java | 2 +- .../ExternalCanIgnoreReturnValue.java | 6 +- .../flogger/FloggerRedundantIsEnabled.java | 2 +- .../nullness/NullablePrimitiveArray.java | 2 +- .../threadsafety/GuardedByUtils.java | 4 +- .../threadsafety/HeldLockAnalyzer.java | 8 +- .../threadsafety/ImmutableRefactoring.java | 2 +- .../google/errorprone/refaster/Template.java | 4 +- .../google/errorprone/refaster/Unifier.java | 2 +- .../errorprone/ErrorProneJavacPluginTest.java | 3 +- .../bugpatterns/UndefinedEqualsTest.java | 170 ------------------ .../apidiff/CompilationBuilderHelpers.java | 3 +- ...heckReturnValueWellKnownLibrariesTest.java | 4 - .../bugpatterns/inlineme/InlinerTest.java | 6 - .../threadsafety/GuardedByBinderTest.java | 2 +- .../input/AnonymousClassTemplateExample.java | 2 +- .../input/AsVarargsTemplateExample.java | 2 +- .../BlockPlaceholderTemplateExample.java | 6 +- .../testdata/input/IfTemplateExample.java | 3 +- ...ceholderAllowsIdentityTemplateExample.java | 2 +- .../input/PlaceholderTemplateExample.java | 2 +- .../ReturnPlaceholderTemplateExample.java | 2 +- .../output/AnonymousClassTemplateExample.java | 2 +- .../output/AsVarargsTemplateExample.java | 2 +- .../BlockPlaceholderTemplateExample.java | 10 +- .../ComparisonChainTemplateExample.java | 2 +- ...ceholderAllowsIdentityTemplateExample.java | 4 +- .../output/PlaceholderTemplateExample.java | 6 +- .../ReturnPlaceholderTemplateExample.java | 10 +- .../output/TwoLinesToOneTemplateExample.java | 4 +- .../google/errorprone/testdata/FlowSuper.java | 2 +- docgen/pom.xml | 71 ++++---- .../errorprone/BugPatternFileGenerator.java | 3 +- .../com/google/errorprone/DocGenTool.java | 7 +- docgen_processor/pom.xml | 9 +- pom.xml | 115 +++++++----- refaster/pom.xml | 147 +++++++-------- rewrite.yml | 60 +++++++ test_helpers/pom.xml | 2 +- type_annotations/pom.xml | 16 +- 67 files changed, 416 insertions(+), 446 deletions(-) create mode 100644 .idea/checkstyle-idea.xml create mode 100644 .idea/palantir-java-format.xml create mode 100644 rewrite.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dff819a2467..5e4cfb7a87f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -90,6 +90,9 @@ jobs: - name: 'Test' shell: bash run: mvn test -B + - name: 'SanityCheck' + shell: bash + run: mvn rewrite:dryRun - name: 'Javadoc' shell: bash run: mvn -P '!examples' javadoc:javadoc diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml new file mode 100644 index 00000000000..f41418feb7f --- /dev/null +++ b/.idea/checkstyle-idea.xml @@ -0,0 +1,15 @@ + + + + 12.0.1 + JavaOnly + + + \ No newline at end of file diff --git a/.idea/palantir-java-format.xml b/.idea/palantir-java-format.xml new file mode 100644 index 00000000000..cbcc1cb02b6 --- /dev/null +++ b/.idea/palantir-java-format.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/annotation/pom.xml b/annotation/pom.xml index fbbba7c5524..a9e25572565 100644 --- a/annotation/pom.xml +++ b/annotation/pom.xml @@ -24,8 +24,8 @@ 1.0-HEAD-SNAPSHOT - @BugPattern annotation error_prone_annotation + @BugPattern annotation diff --git a/annotations/pom.xml b/annotations/pom.xml index 62ebfe88a40..02f56762c40 100644 --- a/annotations/pom.xml +++ b/annotations/pom.xml @@ -24,8 +24,15 @@ 1.0-HEAD-SNAPSHOT - error-prone annotations error_prone_annotations + error-prone annotations + + + + Apache 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + @@ -36,18 +43,12 @@ - - - Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - - org.apache.maven.plugins maven-compiler-plugin + 3.14.1 @@ -79,6 +80,7 @@ org.apache.maven.plugins maven-jar-plugin + 3.4.2 diff --git a/check_api/pom.xml b/check_api/pom.xml index 0c40bb08aef..f3fa92b6303 100644 --- a/check_api/pom.xml +++ b/check_api/pom.xml @@ -24,8 +24,8 @@ 1.0-HEAD-SNAPSHOT - error-prone check api error_prone_check_api + error-prone check api @@ -49,6 +49,12 @@ jspecify ${jspecify.version} + + jakarta.annotation + jakarta.annotation-api + 1.3.5 + provided + io.github.eisop @@ -103,6 +109,12 @@ ${truth.version} test + + jakarta.inject + jakarta.inject-api + 1.0.3 + test + org.mockito @@ -149,6 +161,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.14.1 @@ -189,7 +202,7 @@ 24 - ${basedir}/src/main/java24 + ${project.basedir}/src/main/java24 ${project.build.outputDirectory}/META-INF/versions/24 diff --git a/check_api/src/main/java/com/google/errorprone/apply/DescriptionBasedDiff.java b/check_api/src/main/java/com/google/errorprone/apply/DescriptionBasedDiff.java index 3d60e808b5e..c04d5931853 100644 --- a/check_api/src/main/java/com/google/errorprone/apply/DescriptionBasedDiff.java +++ b/check_api/src/main/java/com/google/errorprone/apply/DescriptionBasedDiff.java @@ -26,7 +26,7 @@ import com.sun.tools.javac.tree.EndPosTable; import com.sun.tools.javac.tree.JCTree.JCCompilationUnit; import java.net.URI; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.LinkedHashSet; import java.util.Objects; import java.util.Set; @@ -68,7 +68,7 @@ private DescriptionBasedDiff( URI sourceFileUri = compilationUnit.getSourceFile().toUri(); this.sourcePath = (sourceFileUri.isAbsolute() && Objects.equals(sourceFileUri.getScheme(), "file")) - ? Paths.get(sourceFileUri).toAbsolutePath().toString() + ? Path.of(sourceFileUri).toAbsolutePath().toString() : sourceFileUri.getPath(); this.ignoreOverlappingFixes = ignoreOverlappingFixes; this.importsToAdd = new LinkedHashSet<>(); diff --git a/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/InferredNullability.java b/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/InferredNullability.java index 453c71743a8..2aadddbe06f 100644 --- a/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/InferredNullability.java +++ b/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/InferredNullability.java @@ -87,20 +87,18 @@ private Optional getNullness(InferenceVariable iv) { result = constraintGraph.predecessors(iv).stream() .map(this::getNullness) - .filter(Optional::isPresent) - .map(Optional::get) + .flatMap(Optional::stream) .reduce(Nullness::leastUpperBound); // use least upper bound (lub) to combine // 2. If not, resolve successors and use them as upper bounds - if (!result.isPresent()) { + if (result.isEmpty()) { result = constraintGraph.successors(iv).stream() .map(this::getNullness) - .filter(Optional::isPresent) - .map(Optional::get) + .flatMap(Optional::stream) .reduce(Nullness::greatestLowerBound); // use greatest lower bound (glb) to combine } - checkState(!inferredMemoTable.put(iv, result).isPresent()); + checkState(inferredMemoTable.put(iv, result).isEmpty()); return result; } } diff --git a/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/NullnessQualifierInference.java b/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/NullnessQualifierInference.java index edaaa05f016..217609d3b7e 100644 --- a/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/NullnessQualifierInference.java +++ b/check_api/src/main/java/com/google/errorprone/dataflow/nullnesspropagation/inference/NullnessQualifierInference.java @@ -153,14 +153,14 @@ private void generateConstraintsFromAnnotations( Optional fromAnnotations = extractExplicitNullness(declaredType, argSelector.isEmpty() ? decl : null); - if (!fromAnnotations.isPresent()) { + if (fromAnnotations.isEmpty()) { // Check declared type before inferred type so that type annotations on the declaration take // precedence (just like declaration annotations) over annotations on the inferred type. // For instance, we want a @Nullable T m() to take precedence over annotations on T's inferred // type (e.g., @NotNull String), whether @Nullable is a declaration or type annotation. fromAnnotations = NullnessAnnotations.fromAnnotationsOn(inferredType); } - if (!fromAnnotations.isPresent()) { + if (fromAnnotations.isEmpty()) { if (declaredType instanceof TypeVariable typeVariable) { // Check bounds second so explicit annotations take precedence. Even for bounds we still use // equality constraint below since we have to assume the bound as the "worst" case. @@ -482,7 +482,7 @@ private void generateConstraintsForWrite( boolean isBound = false; Optional fromAnnotations = extractExplicitNullness(lType, argSelector.isEmpty() ? decl : null); - if (!fromAnnotations.isPresent()) { + if (fromAnnotations.isEmpty()) { if (lType instanceof TypeVariable typeVariable) { fromAnnotations = NullnessAnnotations.getUpperBound(typeVariable); isBound = true; diff --git a/check_api/src/main/java/com/google/errorprone/fixes/SuggestedFixes.java b/check_api/src/main/java/com/google/errorprone/fixes/SuggestedFixes.java index bbd5f2cd6f3..4d68f99f72e 100644 --- a/check_api/src/main/java/com/google/errorprone/fixes/SuggestedFixes.java +++ b/check_api/src/main/java/com/google/errorprone/fixes/SuggestedFixes.java @@ -1132,7 +1132,7 @@ public static SuggestedFix.Builder addValuesToAnnotationArgument( .replaceFirst("\\(\\)", "(" + parameterPrefix + newArgument(newValues) + ")")); } Optional maybeExistingArgument = findArgument(annotation, parameterName); - if (!maybeExistingArgument.isPresent()) { + if (maybeExistingArgument.isEmpty()) { return SuggestedFix.builder() .prefixWith( annotation.getArguments().getFirst(), @@ -1192,7 +1192,7 @@ public static SuggestedFix.Builder updateAnnotationArgumentValues( + ')'); } Optional maybeExistingArgument = findArgument(annotation, parameterName); - if (!maybeExistingArgument.isPresent()) { + if (maybeExistingArgument.isEmpty()) { return SuggestedFix.builder() .prefixWith( annotation.getArguments().getFirst(), diff --git a/check_api/src/main/java/com/google/errorprone/matchers/method/MethodInvocationMatcher.java b/check_api/src/main/java/com/google/errorprone/matchers/method/MethodInvocationMatcher.java index 40ff9f20d86..ff50adb256b 100644 --- a/check_api/src/main/java/com/google/errorprone/matchers/method/MethodInvocationMatcher.java +++ b/check_api/src/main/java/com/google/errorprone/matchers/method/MethodInvocationMatcher.java @@ -483,7 +483,7 @@ public static Matcher compile(Iterable rules) { // First collect all the nodes that accept any token at all for (Node node : curr) { for (Map.Entry, Node> entry : nfa.row(node).entrySet()) { - if (!entry.getKey().isPresent()) { + if (entry.getKey().isEmpty()) { acceptsAny.add(entry.getValue()); } } diff --git a/check_api/src/main/java/com/google/errorprone/util/Comments.java b/check_api/src/main/java/com/google/errorprone/util/Comments.java index 593ba24106f..3789a2aa4e9 100644 --- a/check_api/src/main/java/com/google/errorprone/util/Comments.java +++ b/check_api/src/main/java/com/google/errorprone/util/Comments.java @@ -111,7 +111,7 @@ private static ImmutableList> findCommentsForArguments CharSequence sourceCode = state.getSourceCode(); Optional endPosition = computeEndPosition(tree, sourceCode, state); - if (!endPosition.isPresent()) { + if (endPosition.isEmpty()) { return noComments(arguments); } diff --git a/check_api/src/test/java/com/google/errorprone/util/CommentsTest.java b/check_api/src/test/java/com/google/errorprone/util/CommentsTest.java index 81df3225f4e..e464a060f35 100644 --- a/check_api/src/test/java/com/google/errorprone/util/CommentsTest.java +++ b/check_api/src/test/java/com/google/errorprone/util/CommentsTest.java @@ -54,7 +54,7 @@ public static class ComputeEndPosition extends BugChecker implements MethodInvoc public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) { CharSequence sourceCode = state.getSourceCode(); Optional endPosition = Comments.computeEndPosition(tree, sourceCode, state); - if (!endPosition.isPresent()) { + if (endPosition.isEmpty()) { return Description.NO_MATCH; } int startPosition = endPosition.get(); diff --git a/core/pom.xml b/core/pom.xml index eaaab041d4a..fb969d64c82 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -24,8 +24,8 @@ 1.0-HEAD-SNAPSHOT - error-prone library error_prone_core + error-prone library @@ -74,6 +74,12 @@ pcollections 4.0.1 + + jakarta.annotation + jakarta.annotation-api + 1.3.5 + provided + com.google.guava @@ -99,6 +105,11 @@ dataflow-errorprone ${dataflow.version} + + jakarta.inject + jakarta.inject-api + 1.0.3 + com.google.auto.value @@ -190,7 +201,7 @@ 5.1.0 test - + com.google.inject.extensions guice-testlib @@ -354,7 +365,7 @@ jspecify ${jspecify.version} - + javax.inject javax.inject @@ -374,6 +385,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.14.1 @@ -485,6 +497,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.14.1 diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/AbstractReturnValueIgnored.java b/core/src/main/java/com/google/errorprone/bugpatterns/AbstractReturnValueIgnored.java index 44a7b718cec..c344bc26dd0 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/AbstractReturnValueIgnored.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/AbstractReturnValueIgnored.java @@ -161,7 +161,7 @@ public Description matchNewClass(NewClassTree newClassTree, VisitorState state) public Description matchMemberReference(MemberReferenceTree tree, VisitorState state) { Description description = matcher.get().matches(tree, state) ? describeReturnValueIgnored(tree, state) : NO_MATCH; - if (!lostType(state).isPresent() || !description.equals(NO_MATCH)) { + if (lostType(state).isEmpty() || !description.equals(NO_MATCH)) { return description; } if (lostReferenceTreeMatcher.get().matches(tree, state)) { @@ -335,7 +335,7 @@ && matchingMethods( * this a constructor call or build() call?" */ if (parent instanceof ExpressionStatementTree - && !constantExpressions.constantExpression(invocationTree, state).isPresent() + && constantExpressions.constantExpression(invocationTree, state).isEmpty() && considerBlanketFixes) { ImmutableSet identifiersInScope = findAllIdents(state).stream().map(v -> v.name.toString()).collect(toImmutableSet()); @@ -407,7 +407,7 @@ protected String getMessage(Name name) { private Description checkLostType(MethodInvocationTree tree, VisitorState state) { Optional optionalType = lostType(state); - if (!optionalType.isPresent()) { + if (optionalType.isEmpty()) { return NO_MATCH; } @@ -567,7 +567,7 @@ private static boolean isExemptedInterfaceMethod(MethodSymbol symbol, VisitorSta @Override public Description matchReturn(ReturnTree tree, VisitorState state) { Optional optionalType = lostType(state); - if (!optionalType.isPresent()) { + if (optionalType.isEmpty()) { return NO_MATCH; } Type objectType = state.getSymtab().objectType; diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/AssertionFailureIgnored.java b/core/src/main/java/com/google/errorprone/bugpatterns/AssertionFailureIgnored.java index a7dd05e8a3d..b7bd101eb2f 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/AssertionFailureIgnored.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/AssertionFailureIgnored.java @@ -91,7 +91,7 @@ public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState } Optional maybeCatchTree = catchesType(tryStatement, state.getSymtab().assertionErrorType, state); - if (!maybeCatchTree.isPresent()) { + if (maybeCatchTree.isEmpty()) { return NO_MATCH; } JCCatch catchTree = maybeCatchTree.get(); diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/DoubleBraceInitialization.java b/core/src/main/java/com/google/errorprone/bugpatterns/DoubleBraceInitialization.java index 76416741d97..e6549176ed1 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/DoubleBraceInitialization.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/DoubleBraceInitialization.java @@ -229,7 +229,7 @@ public Description matchNewClass(NewClassTree tree, VisitorState state) { Arrays.stream(CollectionTypes.values()) .filter(type -> type.constructorMatcher.matches(tree, state)) .findFirst(); - if (!collectionType.isPresent()) { + if (collectionType.isEmpty()) { return NO_MATCH; } Description.Builder description = buildDescription(tree); diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/FallThrough.java b/core/src/main/java/com/google/errorprone/bugpatterns/FallThrough.java index 8fca92e45ee..9090da3b068 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/FallThrough.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/FallThrough.java @@ -21,6 +21,7 @@ import static com.google.errorprone.BugPattern.SeverityLevel.WARNING; import static com.google.errorprone.matchers.Description.NO_MATCH; import static com.google.errorprone.util.ASTHelpers.getStartPosition; +import static com.sun.tools.javac.util.Position.NOPOS; import com.google.common.collect.Iterators; import com.google.common.collect.PeekingIterator; @@ -33,7 +34,7 @@ import com.sun.source.tree.CaseTree; import com.sun.source.tree.StatementTree; import com.sun.source.tree.SwitchTree; -import com.sun.tools.javac.util.Position; + import java.util.List; import java.util.regex.Pattern; @@ -62,7 +63,7 @@ public Description matchSwitch(SwitchTree tree, VisitorState state) { // independent of any preceding statements. boolean completes = Reachability.canCompleteNormally(getLast(statements)); int endPos = caseEndPosition(state, caseTree); - if (endPos == Position.NOPOS) { + if (endPos == NOPOS) { break; } String comments = diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/ImmutableSetForContains.java b/core/src/main/java/com/google/errorprone/bugpatterns/ImmutableSetForContains.java index b8cdcd91e8d..4460d7fa91c 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/ImmutableSetForContains.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/ImmutableSetForContains.java @@ -134,7 +134,7 @@ public Description matchClass(ClassTree tree, VisitorState state) { fix.merge(convertListToSetInit(var, state)); } } - if (!firstReplacement.isPresent()) { + if (firstReplacement.isEmpty()) { return Description.NO_MATCH; } return describeMatch(firstReplacement.get(), fix.build()); diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/JUnitParameterMethodNotFound.java b/core/src/main/java/com/google/errorprone/bugpatterns/JUnitParameterMethodNotFound.java index df8b3605bb4..d5a9dfc0123 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/JUnitParameterMethodNotFound.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/JUnitParameterMethodNotFound.java @@ -91,7 +91,7 @@ public Description matchMethod(MethodTree tree, VisitorState state) { .filter(annotationTree -> PARAMETERS_ANNOTATION_MATCHER.matches(annotationTree, state)) .findFirst(); - if (!parametersAnnotation.isPresent()) { + if (parametersAnnotation.isEmpty()) { return Description.NO_MATCH; } @@ -145,7 +145,7 @@ private static ImmutableSet getMethodIdentifiersInSourceAnnotation( Optional paramSourceAssignmentTree = getParamAssignmentTree(annotationsArguments, /* parameterName= */ "source"); - if (!paramSourceAssignmentTree.isPresent()) { + if (paramSourceAssignmentTree.isEmpty()) { return ImmutableSet.of(); } diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/MissingDefault.java b/core/src/main/java/com/google/errorprone/bugpatterns/MissingDefault.java index 0b6dc32646f..e7191ad5e4b 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/MissingDefault.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/MissingDefault.java @@ -56,7 +56,7 @@ public Description matchSwitch(SwitchTree tree, VisitorState state) { return NO_MATCH; } Optional maybeDefault = getSwitchDefault(tree); - if (!maybeDefault.isPresent()) { + if (maybeDefault.isEmpty()) { if (isExhaustive(tree)) { return NO_MATCH; } diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/RedundantOverride.java b/core/src/main/java/com/google/errorprone/bugpatterns/RedundantOverride.java index e42b2d1ebef..dc0522e5d56 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/RedundantOverride.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/RedundantOverride.java @@ -62,7 +62,7 @@ public Description matchMethod(MethodTree tree, VisitorState state) { Types types = state.getTypes(); Optional maybeSuperMethod = streamSuperMethods(methodSymbol, types).filter(t -> !t.owner.isInterface()).findFirst(); - if (!maybeSuperMethod.isPresent()) { + if (maybeSuperMethod.isEmpty()) { return NO_MATCH; } MethodSymbol superMethod = maybeSuperMethod.get(); diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/RestrictedApiChecker.java b/core/src/main/java/com/google/errorprone/bugpatterns/RestrictedApiChecker.java index e88097104c7..d1662cf861e 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/RestrictedApiChecker.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/RestrictedApiChecker.java @@ -263,7 +263,7 @@ private static Matcher shouldAllow(Attribute.Compound api) { Optional allowlistAnnotations = MoreAnnotations.getValue(api, "allowlistAnnotations"); // TODO(b/178905039): remove handling of legacy names - if (!allowlistAnnotations.isPresent()) { + if (allowlistAnnotations.isEmpty()) { allowlistAnnotations = MoreAnnotations.getValue(api, "whitelistAnnotations"); } return Matchers.hasAnyAnnotation( @@ -277,7 +277,7 @@ private static Matcher shouldAllowWithWarning(Attribute.Compound api) { Optional allowlistWithWarningAnnotations = MoreAnnotations.getValue(api, "allowlistWithWarningAnnotations"); // TODO(b/178905039): remove handling of legacy names - if (!allowlistWithWarningAnnotations.isPresent()) { + if (allowlistWithWarningAnnotations.isEmpty()) { allowlistWithWarningAnnotations = MoreAnnotations.getValue(api, "whitelistWithWarningAnnotations"); } diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/StaticMockMember.java b/core/src/main/java/com/google/errorprone/bugpatterns/StaticMockMember.java index 1a70fc3869d..81e2c9f5c7e 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/StaticMockMember.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/StaticMockMember.java @@ -54,7 +54,7 @@ public Description matchVariable(VariableTree varTree, VisitorState state) { Optional optionalFix = SuggestedFixes.removeModifiers(varTree, state, Modifier.STATIC); - if (!optionalFix.isPresent()) { + if (optionalFix.isEmpty()) { return NO_MATCH; } if (SuggestedFixes.compilesWithFix(optionalFix.get(), state)) { diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/StringSplitter.java b/core/src/main/java/com/google/errorprone/bugpatterns/StringSplitter.java index afd065b69c5..d6ff77183d5 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/StringSplitter.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/StringSplitter.java @@ -79,7 +79,7 @@ public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState return NO_MATCH; } Optional fix = buildFix(tree, state); - if (!fix.isPresent()) { + if (fix.isEmpty()) { return NO_MATCH; } // TODO(b/112270644): skip Splitter fix if guava isn't on the classpath @@ -241,7 +241,7 @@ private static String getMethodAndArgument( return onPattern(fix, argSource); } Optional regexAsLiteral = convertRegexToLiteral(constValue); - if (!regexAsLiteral.isPresent()) { + if (regexAsLiteral.isEmpty()) { // Can't convert the regex to a literal string: have to treat it as a regex. return onPattern(fix, argSource); } diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/SwitchDefault.java b/core/src/main/java/com/google/errorprone/bugpatterns/SwitchDefault.java index 23a3a6a4489..45d978c9462 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/SwitchDefault.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/SwitchDefault.java @@ -47,7 +47,7 @@ public class SwitchDefault extends BugChecker implements SwitchTreeMatcher { @Override public Description matchSwitch(SwitchTree tree, VisitorState state) { Optional maybeDefault = getSwitchDefault(tree); - if (!maybeDefault.isPresent()) { + if (maybeDefault.isEmpty()) { return NO_MATCH; } // Collect all case trees in the statement group containing the default diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryAnonymousClass.java b/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryAnonymousClass.java index babaf376673..a19c0365b8e 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryAnonymousClass.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/UnnecessaryAnonymousClass.java @@ -133,7 +133,7 @@ descriptorSymbol, enclosingClass(methodSymbol), state.getTypes(), false)) { // Replace all uses of the identifier with a method reference. Optional methodReferenceReplacement = replaceUsesWithMethodReference(newName, varSym, implementation, state); - if (!methodReferenceReplacement.isPresent()) { + if (methodReferenceReplacement.isEmpty()) { return NO_MATCH; } fixBuilder.merge(methodReferenceReplacement.get()); diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/ApiDiffChecker.java b/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/ApiDiffChecker.java index 3b30954d6fb..e12b75f8bdb 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/ApiDiffChecker.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/apidiff/ApiDiffChecker.java @@ -106,7 +106,7 @@ protected Description check(ExpressionTree tree, VisitorState state) { } private boolean classOrEnclosingClassIsForbiddenByAnnotation(Symbol clazz, VisitorState state) { - if (!alsoForbidApisAnnotated.isPresent()) { + if (alsoForbidApisAnnotated.isEmpty()) { return false; } for (; clazz instanceof ClassSymbol; clazz = clazz.owner) { diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/checkreturnvalue/ExternalCanIgnoreReturnValue.java b/core/src/main/java/com/google/errorprone/bugpatterns/checkreturnvalue/ExternalCanIgnoreReturnValue.java index a112d6a84a1..6925c4bc9f6 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/checkreturnvalue/ExternalCanIgnoreReturnValue.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/checkreturnvalue/ExternalCanIgnoreReturnValue.java @@ -37,7 +37,7 @@ import com.sun.tools.javac.util.List; import java.io.IOException; import java.io.UncheckedIOException; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.Optional; import java.util.stream.Stream; @@ -98,13 +98,13 @@ enum ConfigParser { AS_STRINGS { @Override MethodPredicate load(String file) throws IOException { - return configByInterpretingMethodsAsStrings(MoreFiles.asCharSource(Paths.get(file), UTF_8)); + return configByInterpretingMethodsAsStrings(MoreFiles.asCharSource(Path.of(file), UTF_8)); } }, PARSE_TOKENS { @Override MethodPredicate load(String file) throws IOException { - return configByParsingApiObjects(MoreFiles.asCharSource(Paths.get(file), UTF_8)); + return configByParsingApiObjects(MoreFiles.asCharSource(Path.of(file), UTF_8)); } }; diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/flogger/FloggerRedundantIsEnabled.java b/core/src/main/java/com/google/errorprone/bugpatterns/flogger/FloggerRedundantIsEnabled.java index 577789f183f..b48724c534a 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/flogger/FloggerRedundantIsEnabled.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/flogger/FloggerRedundantIsEnabled.java @@ -80,7 +80,7 @@ public Description matchIf(IfTree ifTree, VisitorState state) { // If then-block contains exactly one expression and it is a `log` invocation, extract it. Optional methodCall = extractLoneLogInvocation(ifTree, state); - if (!methodCall.isPresent()) { + if (methodCall.isEmpty()) { return NO_MATCH; } MethodInvocationTree logInvocation = methodCall.get(); diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/nullness/NullablePrimitiveArray.java b/core/src/main/java/com/google/errorprone/bugpatterns/nullness/NullablePrimitiveArray.java index 03602ef8489..7d2a6fabfb1 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/nullness/NullablePrimitiveArray.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/nullness/NullablePrimitiveArray.java @@ -126,7 +126,7 @@ private static boolean isTypeAnnotation(Attribute.Compound attribute) { } Set targets = new HashSet<>(); Optional value = MoreAnnotations.getValue(attribute, "value"); - if (!value.isPresent()) { + if (value.isEmpty()) { return false; } new SimpleAnnotationValueVisitor8() { diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByUtils.java b/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByUtils.java index 544ce9922ac..c803911c6ce 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByUtils.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByUtils.java @@ -119,7 +119,7 @@ public static GuardedByValidationResult isGuardedByValid(Tree tree, VisitorState for (String guard : guards) { Optional boundGuard = GuardedByBinder.bindString(guard, GuardedBySymbolResolver.from(tree, state)); - if (!boundGuard.isPresent()) { + if (boundGuard.isEmpty()) { return GuardedByValidationResult.invalid("could not resolve guard"); } boundGuards.add(boundGuard.get()); @@ -153,7 +153,7 @@ public static GuardedByValidationResult isGuardedByValid(Tree tree, VisitorState Tree tree, String guard, VisitorState visitorState) { Optional bound = GuardedByBinder.bindString(guard, GuardedBySymbolResolver.from(tree, visitorState)); - if (!bound.isPresent()) { + if (bound.isEmpty()) { return null; } return bound.get().sym(); diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/HeldLockAnalyzer.java b/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/HeldLockAnalyzer.java index fd801ac6719..af0b63d714e 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/HeldLockAnalyzer.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/HeldLockAnalyzer.java @@ -130,7 +130,7 @@ private static HeldLockSet handleMonitorGuards(VisitorState state, HeldLockSet l Optional lockExpression = GuardedByBinder.bindExpression( Iterables.getOnlyElement(newClassTree.getArguments()), state); - if (!lockExpression.isPresent()) { + if (lockExpression.isEmpty()) { return locks; } return locks.plus(lockExpression.get()); @@ -264,13 +264,13 @@ private void checkMatch(ExpressionTree tree, HeldLockSet locks) { GuardedByBinder.bindString( guardString, GuardedBySymbolResolver.from(tree, visitorState.withPath(getCurrentPath()))); - if (!guard.isPresent()) { + if (guard.isEmpty()) { invalidLock(tree, locks, guardString); continue; } Optional boundGuard = ExpectedLockCalculator.from((JCTree.JCExpression) tree, guard.get(), visitorState); - if (!boundGuard.isPresent()) { + if (boundGuard.isEmpty()) { // We couldn't resolve a guarded by expression in the current scope, so we can't // guarantee the access is protected and must report an error to be safe. invalidLock(tree, locks, guardString); @@ -439,7 +439,7 @@ public static Optional from( Optional guardedMember = GuardedByBinder.bindExpression(guardedMemberExpression, state); - if (!guardedMember.isPresent()) { + if (guardedMember.isEmpty()) { return Optional.empty(); } diff --git a/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/ImmutableRefactoring.java b/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/ImmutableRefactoring.java index bbc41307635..d52b84b39e6 100644 --- a/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/ImmutableRefactoring.java +++ b/core/src/main/java/com/google/errorprone/bugpatterns/threadsafety/ImmutableRefactoring.java @@ -72,7 +72,7 @@ public Description matchCompilationUnit(CompilationUnitTree tree, VisitorState s return s != null && s.getQualifiedName().contentEquals(JSR_305_IMMUTABLE); }) .findFirst(); - if (!immutableImport.isPresent()) { + if (immutableImport.isEmpty()) { return Description.NO_MATCH; } Set notOk = new HashSet<>(); diff --git a/core/src/main/java/com/google/errorprone/refaster/Template.java b/core/src/main/java/com/google/errorprone/refaster/Template.java index df2e28b0de5..24188630cc4 100644 --- a/core/src/main/java/com/google/errorprone/refaster/Template.java +++ b/core/src/main/java/com/google/errorprone/refaster/Template.java @@ -126,10 +126,10 @@ protected List expectedTypes(Inliner inliner) throws CouldNotResolveImport String argName = argNames.get(i); Optional singleBinding = inliner.getOptionalBinding(new UFreeIdent.Key(argName)); - if (!singleBinding.isPresent()) { + if (singleBinding.isEmpty()) { Optional> exprs = inliner.getOptionalBinding(new URepeated.Key(argName)); - if (!exprs.isPresent() || exprs.get().isEmpty()) { + if (exprs.isEmpty() || exprs.get().isEmpty()) { // It is a repeated template variable and matches no expressions. continue; } diff --git a/core/src/main/java/com/google/errorprone/refaster/Unifier.java b/core/src/main/java/com/google/errorprone/refaster/Unifier.java index 57474dafd94..cd3e6c4bd08 100644 --- a/core/src/main/java/com/google/errorprone/refaster/Unifier.java +++ b/core/src/main/java/com/google/errorprone/refaster/Unifier.java @@ -172,7 +172,7 @@ public static > Choice unifyList( for (int j = startIndex; j < targets.size(); j++) { Optional forked = repeated.unify((JCTree) targets.get(j), u.fork()).findFirst(); - if (!forked.isPresent()) { + if (forked.isEmpty()) { return Optional.empty(); } JCExpression boundExpr = repeated.getUnderlyingBinding(forked.get()); diff --git a/core/src/test/java/com/google/errorprone/ErrorProneJavacPluginTest.java b/core/src/test/java/com/google/errorprone/ErrorProneJavacPluginTest.java index a86f04c13b3..02ee948ba59 100644 --- a/core/src/test/java/com/google/errorprone/ErrorProneJavacPluginTest.java +++ b/core/src/test/java/com/google/errorprone/ErrorProneJavacPluginTest.java @@ -50,7 +50,6 @@ import java.nio.file.FileSystem; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; import java.util.stream.Stream; @@ -215,7 +214,7 @@ public void applyToPatchFile() throws IOException { assertThat( Files.readAllLines(patchFile, UTF_8).stream() .filter(l -> l.startsWith("--- ")) - .map(l -> Paths.get(l.substring("--- ".length())).getFileName().toString()) + .map(l -> Path.of(l.substring("--- ".length())).getFileName().toString()) .collect(toImmutableList())) .containsExactly("A.java", "B.java"); } diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/UndefinedEqualsTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/UndefinedEqualsTest.java index cffeb83f7ca..018454d7134 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/UndefinedEqualsTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/UndefinedEqualsTest.java @@ -16,7 +16,6 @@ package com.google.errorprone.bugpatterns; -import com.google.common.base.Joiner; import com.google.errorprone.BugCheckerRefactoringTestHelper; import com.google.errorprone.CompilationTestHelper; import junitparams.JUnitParamsRunner; @@ -186,175 +185,6 @@ public void truthFixParameterized(String input, String output) { .doTest(); } - private static Object truthFixParameters() { - return new Object[] { - new String[] { - lines( - " void f1(Multimap a, Multimap b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f1(Multimap a, Multimap b) {", // - " assertThat(a).containsExactlyEntriesIn(b);", - " }") - }, - new String[] { - lines( - " void f2(Multimap a, Collection b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f2(Multimap a, Collection b) {", - " assertThat(a).isEqualTo(b);", // no fix - " }") - }, - new String[] { - lines( - " void f3(Multimap a, Iterable b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f3(Multimap a, Iterable b) {", - " assertThat(a).isEqualTo(b);", // no fix - " }") - }, - new String[] { - lines( - " void f4(Multimap a, Queue b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f4(Multimap a, Queue b) {", - " assertThat(a).isEqualTo(b);", // no fix - " }") - }, - new String[] { - lines( - " void f5(Collection a, Multimap b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f5(Collection a, Multimap b) {", - " assertThat(a).isEqualTo(b);", // no fix - " }") - }, - new String[] { - lines( - " void f6(Collection a, Collection b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f6(Collection a, Collection b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f7(Collection a, Iterable b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f7(Collection a, Iterable b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f8(Collection a, Queue b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f8(Collection a, Queue b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f9(Iterable a, Multimap b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f9(Iterable a, Multimap b) {", - " assertThat(a).isEqualTo(b);", // no fix - " }") - }, - new String[] { - lines( - " void f10(Iterable a, Collection b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f10(Iterable a, Collection b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f11(Iterable a, Iterable b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f11(Iterable a, Iterable b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f12(Iterable a, Queue b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f12(Iterable a, Queue b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f13(Queue a, Multimap b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f13(Queue a, Multimap b) {", - " assertThat(a).isEqualTo(b);", // no fix - " }") - }, - new String[] { - lines( - " void f14(Queue a, Collection b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f14(Queue a, Collection b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f15(Queue a, Iterable b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f15(Queue a, Iterable b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - }, - new String[] { - lines( - " void f16(Queue a, Queue b) {", // - " assertThat(a).isEqualTo(b);", - " }"), - lines( - " void f16(Queue a, Queue b) {", // - " assertThat(a).containsExactlyElementsIn(b);", - " }") - } - }; - } - - private static String lines(String... lines) { - return Joiner.on('\n').join(lines); - } - @Test public void truthFixAssertWithMessage() { BugCheckerRefactoringTestHelper.newInstance(UndefinedEquals.class, getClass()) diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/CompilationBuilderHelpers.java b/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/CompilationBuilderHelpers.java index ebc4375b8e1..abfcd25b508 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/CompilationBuilderHelpers.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/apidiff/CompilationBuilderHelpers.java @@ -31,7 +31,6 @@ import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.StandardOpenOption; import java.nio.file.attribute.BasicFileAttributes; @@ -62,7 +61,7 @@ public SourceBuilder(File tempFolder) { @CanIgnoreReturnValue public SourceBuilder addSourceLines(String name, String... lines) throws IOException { - Path filePath = Paths.get(tempFolder.getAbsolutePath(), name); + Path filePath = Path.of(tempFolder.getAbsolutePath(), name); sources.add(filePath); Files.write(filePath, Arrays.asList(lines), UTF_8, StandardOpenOption.CREATE); return this; diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/checkreturnvalue/CheckReturnValueWellKnownLibrariesTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/checkreturnvalue/CheckReturnValueWellKnownLibrariesTest.java index d50c2dd8cad..c19bc3d3d7a 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/checkreturnvalue/CheckReturnValueWellKnownLibrariesTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/checkreturnvalue/CheckReturnValueWellKnownLibrariesTest.java @@ -810,8 +810,4 @@ private CompilationTestHelper compilationHelperLookingAtAllConstructors() { return compilationHelper.setArgs( "-XepOpt:" + CheckReturnValue.CHECK_ALL_CONSTRUCTORS + "=true"); } - - private CompilationTestHelper compilationHelperLookingAtAllMethods() { - return compilationHelper.setArgs("-XepOpt:" + CheckReturnValue.CHECK_ALL_METHODS + "=true"); - } } diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/inlineme/InlinerTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/inlineme/InlinerTest.java index 6c4e9f8f80e..c4da9c43354 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/inlineme/InlinerTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/inlineme/InlinerTest.java @@ -17,7 +17,6 @@ package com.google.errorprone.bugpatterns.inlineme; import static com.google.errorprone.BugCheckerRefactoringTestHelper.TestMode.TEXT_MATCH; -import static com.google.errorprone.bugpatterns.inlineme.Inliner.PREFIX_FLAG; import com.google.errorprone.BugCheckerRefactoringTestHelper; import com.google.errorprone.CompilationTestHelper; @@ -1820,11 +1819,6 @@ public void doTest() { .doTest(); } - private BugCheckerRefactoringTestHelper bugCheckerWithPrefixFlag(String prefix) { - return BugCheckerRefactoringTestHelper.newInstance(Inliner.class, getClass()) - .setArgs("-XepOpt:" + PREFIX_FLAG + "=" + prefix); - } - private BugCheckerRefactoringTestHelper bugCheckerWithCheckFixCompiles() { return BugCheckerRefactoringTestHelper.newInstance(Inliner.class, getClass()) .setArgs("-XepOpt:InlineMe:CheckFixCompiles=true"); diff --git a/core/src/test/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByBinderTest.java b/core/src/test/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByBinderTest.java index 0c315357c6c..e0241135e75 100644 --- a/core/src/test/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByBinderTest.java +++ b/core/src/test/java/com/google/errorprone/bugpatterns/threadsafety/GuardedByBinderTest.java @@ -642,7 +642,7 @@ private static String bind(String className, String exprString, JavaFileObject f task.getContext(), null, VisitorState.createForUtilityPurposes(task.getContext()))); - if (!guardExpression.isPresent()) { + if (guardExpression.isEmpty()) { throw new IllegalGuardedBy(exprString); } return guardExpression.get().debugPrint(); diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/input/AnonymousClassTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/input/AnonymousClassTemplateExample.java index 00d5f890232..f1e3f260681 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/input/AnonymousClassTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/input/AnonymousClassTemplateExample.java @@ -40,7 +40,7 @@ public Integer set(int i, Integer element) { } }); } - + public void sameOrderVariableConflicts() { System.out.println(new AbstractList() { @Override diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/input/AsVarargsTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/input/AsVarargsTemplateExample.java index 0e4fc4ae625..28f311fb1ad 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/input/AsVarargsTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/input/AsVarargsTemplateExample.java @@ -28,7 +28,7 @@ public class AsVarargsTemplateExample { public void example() { System.out.println( Stream.of(IntStream.of(1), IntStream.of(2)).flatMap(s -> s.boxed()).mapToInt(i -> i).sum()); - + // unchanged, it's not using the varargs overload System.out.println( Stream.of(IntStream.of(1)).flatMap(s -> s.boxed()).mapToInt(i -> i).sum()); diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/input/BlockPlaceholderTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/input/BlockPlaceholderTemplateExample.java index 7da8523a9f1..b95b579673f 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/input/BlockPlaceholderTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/input/BlockPlaceholderTemplateExample.java @@ -33,7 +33,7 @@ public void positiveExample1() throws IOException { stream.close(); } } - + public void positiveExample2() throws IOException { InputStream stream = new FileInputStream("foo.bar"); try { @@ -50,7 +50,7 @@ public void positiveExample2() throws IOException { stream.close(); } } - + public void negativeExample1() throws IOException { // modifies placeholder parameter InputStream stream = null; try { @@ -60,7 +60,7 @@ public void negativeExample1() throws IOException { // modifies placeholder para stream.close(); } } - + public void negativeExample2() throws IOException { // changes control flow for (int i = 0; i < 10; i++) { InputStream stream = new FileInputStream("foo.bar"); diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/input/IfTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/input/IfTemplateExample.java index fb10108d9d7..8a376724d13 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/input/IfTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/input/IfTemplateExample.java @@ -15,6 +15,7 @@ package com.google.errorprone.refaster.testdata; import java.util.Comparator; +import java.util.concurrent.ThreadLocalRandom; /** * Test data for {@code IfTemplate}. @@ -24,7 +25,7 @@ public class IfTemplateExample { public String example() { String foo; - if (Math.random() < 0.5) { + if (ThreadLocalRandom.current().nextDouble() < 0.5) { foo = "bar"; } else { foo = "baz"; diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderAllowsIdentityTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderAllowsIdentityTemplateExample.java index 0133ff42bde..b22ceabaf9f 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderAllowsIdentityTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderAllowsIdentityTemplateExample.java @@ -31,7 +31,7 @@ public void positiveExample(List list) { } } } - + public void positiveIdentityExample(List list) { Iterator itr = list.iterator(); while (itr.hasNext()) { diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderTemplateExample.java index b541a5ba7fa..6ba5ffc4f88 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/input/PlaceholderTemplateExample.java @@ -31,7 +31,7 @@ public void positiveExample(List list) { } } } - + public void negativeIdentityExample(List list) { Iterator itr = list.iterator(); while (itr.hasNext()) { diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/input/ReturnPlaceholderTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/input/ReturnPlaceholderTemplateExample.java index 72333266c44..d2da65134ac 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/input/ReturnPlaceholderTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/input/ReturnPlaceholderTemplateExample.java @@ -32,7 +32,7 @@ public int compare(String left, String right) { return left.toLowerCase().compareTo(right.toLowerCase()); } }; - + public static final Ordering LENGTH_THEN_LOWER_CASE_MULTI_LINE = new Ordering() { @Override public int compare(String left, String right) { diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/AnonymousClassTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/AnonymousClassTemplateExample.java index 20d4f8c00ed..83d119b42e4 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/AnonymousClassTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/AnonymousClassTemplateExample.java @@ -26,7 +26,7 @@ public class AnonymousClassTemplateExample { public void sameOrderNoVariableConflicts() { System.out.println(Collections.nCopies(5, 17)); } - + public void sameOrderVariableConflicts() { System.out.println(Collections.nCopies(5, 17)); } diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/AsVarargsTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/AsVarargsTemplateExample.java index cedd99a65ef..cb461581be8 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/AsVarargsTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/AsVarargsTemplateExample.java @@ -28,7 +28,7 @@ public class AsVarargsTemplateExample { public void example() { System.out.println( Stream.of(IntStream.of(1), IntStream.of(2)).flatMapToInt((IntStream s)->s).sum()); - + // unchanged, it's not using the varargs overload System.out.println( Stream.of(IntStream.of(1)).flatMap(s -> s.boxed()).mapToInt(i -> i).sum()); diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/BlockPlaceholderTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/BlockPlaceholderTemplateExample.java index 95e020ae0e1..251aa6dc4a6 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/BlockPlaceholderTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/BlockPlaceholderTemplateExample.java @@ -29,9 +29,9 @@ public void positiveExample1() throws IOException { try (InputStream stream = new FileInputStream("foo.bar")){ System.out.println(ByteStreams.toByteArray(stream).length); } - + } - + public void positiveExample2() throws IOException { try (InputStream stream = new FileInputStream("foo.bar")){ int count = 0; @@ -44,9 +44,9 @@ public void positiveExample2() throws IOException { } System.out.println(count); } - + } - + public void negativeExample1() throws IOException { // modifies placeholder parameter InputStream stream = null; try { @@ -56,7 +56,7 @@ public void negativeExample1() throws IOException { // modifies placeholder para stream.close(); } } - + public void negativeExample2() throws IOException { // changes control flow for (int i = 0; i < 10; i++) { InputStream stream = new FileInputStream("foo.bar"); diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/ComparisonChainTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/ComparisonChainTemplateExample.java index 28f301f5d4d..7e715236ba2 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/ComparisonChainTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/ComparisonChainTemplateExample.java @@ -22,6 +22,6 @@ public class ComparisonChainTemplateExample { public int compare(String a, String b) { return ComparisonChain.start().compare(Integer.valueOf(a.length()), Integer.valueOf(b.length())).compare(a, b).result(); - + } } diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderAllowsIdentityTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderAllowsIdentityTemplateExample.java index f582de7577e..bec98ff2abb 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderAllowsIdentityTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderAllowsIdentityTemplateExample.java @@ -31,9 +31,9 @@ public void positiveExample(List list) { public boolean apply(Integer input) { return input < 0; } - }); + }); } - + public void positiveIdentityExample(List list) { Iterables.removeIf(list, new Predicate(){ @Override diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderTemplateExample.java index b3494962331..14de4e62860 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/PlaceholderTemplateExample.java @@ -27,15 +27,15 @@ public class PlaceholderTemplateExample { public void positiveExample(List list) { Iterables.removeIf(list, new Predicate(){ - + @Override public boolean apply(Integer input) { return input < 0; } }); - + } - + public void negativeIdentityExample(List list) { Iterator itr = list.iterator(); while (itr.hasNext()) { diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/ReturnPlaceholderTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/ReturnPlaceholderTemplateExample.java index 8baf6de15fe..6ee4559b620 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/ReturnPlaceholderTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/ReturnPlaceholderTemplateExample.java @@ -23,27 +23,27 @@ */ public class ReturnPlaceholderTemplateExample { public static final Ordering LENGTH_THEN_LOWER_CASE_ONE_LINE = new Ordering(){ - + @Override public int compare(String left, String right) { return Integer.compare(left.length(), right.length()); } }.compound(new Ordering(){ - + @Override public int compare(String left, String right) { return left.toLowerCase().compareTo(right.toLowerCase()); } }); - + public static final Ordering LENGTH_THEN_LOWER_CASE_MULTI_LINE = new Ordering(){ - + @Override public int compare(String left, String right) { return Integer.compare(left.length(), right.length()); } }.compound(new Ordering(){ - + @Override public int compare(String left, String right) { String leftLower = left.toLowerCase(); diff --git a/core/src/test/java/com/google/errorprone/refaster/testdata/output/TwoLinesToOneTemplateExample.java b/core/src/test/java/com/google/errorprone/refaster/testdata/output/TwoLinesToOneTemplateExample.java index 51af6a07943..759a9fdb118 100644 --- a/core/src/test/java/com/google/errorprone/refaster/testdata/output/TwoLinesToOneTemplateExample.java +++ b/core/src/test/java/com/google/errorprone/refaster/testdata/output/TwoLinesToOneTemplateExample.java @@ -26,9 +26,9 @@ public int example() { Random rng = new Random(); int x = rng.nextInt(); x = x + rng.nextInt() + 20; - + x = x + 5 + rng.nextInt(30); - + x = x + 20; // comments should block matching x = x + rng.nextInt(); diff --git a/core/src/test/java/com/google/errorprone/testdata/FlowSuper.java b/core/src/test/java/com/google/errorprone/testdata/FlowSuper.java index cb97c2325d0..fbb2f52e29c 100644 --- a/core/src/test/java/com/google/errorprone/testdata/FlowSuper.java +++ b/core/src/test/java/com/google/errorprone/testdata/FlowSuper.java @@ -16,7 +16,7 @@ package com.google.errorprone.testdata; -import static com.google.errorprone.testdata.FlowConstants.*; +import static com.google.errorprone.testdata.FlowConstants.SOME_BYTE; public class FlowSuper { byte myByte = SOME_BYTE; diff --git a/docgen/pom.xml b/docgen/pom.xml index 8ee00587502..ffa6911936c 100644 --- a/docgen/pom.xml +++ b/docgen/pom.xml @@ -24,8 +24,8 @@ 1.0-HEAD-SNAPSHOT - Documentation tool for generating Error Prone bugpattern documentation error_prone_docgen + Documentation tool for generating Error Prone bugpattern documentation @@ -34,37 +34,6 @@ - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - com.google.auto.value - auto-value - ${autovalue.version} - - - com.google.auto.service - auto-service - ${autoservice.version} - - - - - - - - src/main/java - - **/*.mustache - - - - - com.google.errorprone @@ -126,6 +95,38 @@ + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.14.1 + + + + com.google.auto.value + auto-value + ${autovalue.version} + + + com.google.auto.service + auto-service + ${autoservice.version} + + + + + + + + src/main/java + + **/*.mustache + + + + + run-annotation-processor @@ -144,9 +145,9 @@ com.google.errorprone.DocGenTool - -bug_patterns=${basedir}/../core/target/generated-sources/annotations/bugPatterns.txt - -docs_repository=${basedir}/target/generated-wiki/ - -explanations=${basedir}/../docs/bugpattern/ + -bug_patterns=${project.basedir}/../core/target/generated-sources/annotations/bugPatterns.txt + -docs_repository=${project.basedir}/target/generated-wiki/ + -explanations=${project.basedir}/../docs/bugpattern/ -target=external diff --git a/docgen/src/main/java/com/google/errorprone/BugPatternFileGenerator.java b/docgen/src/main/java/com/google/errorprone/BugPatternFileGenerator.java index 400603105f2..7d065a5443b 100644 --- a/docgen/src/main/java/com/google/errorprone/BugPatternFileGenerator.java +++ b/docgen/src/main/java/com/google/errorprone/BugPatternFileGenerator.java @@ -33,7 +33,6 @@ import java.io.Writer; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -110,7 +109,7 @@ public boolean processLine(String line) throws IOException { } // replace spaces in filename with underscores - Path checkPath = Paths.get(pattern.name.replace(' ', '_') + ".md"); + Path checkPath = Path.of(pattern.name.replace(' ', '_') + ".md"); try (Writer writer = Files.newBufferedWriter(outputDir.resolve(checkPath), UTF_8)) { diff --git a/docgen/src/main/java/com/google/errorprone/DocGenTool.java b/docgen/src/main/java/com/google/errorprone/DocGenTool.java index 57142e5bd52..de155eab51f 100644 --- a/docgen/src/main/java/com/google/errorprone/DocGenTool.java +++ b/docgen/src/main/java/com/google/errorprone/DocGenTool.java @@ -34,7 +34,6 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.Paths; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -93,15 +92,15 @@ public static void main(String[] args) throws IOException { Options options = new Options(); new JCommander(options).parse(args); - Path bugPatterns = Paths.get(options.bugPatterns); + Path bugPatterns = Path.of(options.bugPatterns); if (!Files.exists(bugPatterns)) { usage("Cannot find bugPatterns file: " + options.bugPatterns); } - Path explanationDir = Paths.get(options.explanations); + Path explanationDir = Path.of(options.explanations); if (!Files.exists(explanationDir)) { usage("Cannot find explanations dir: " + options.explanations); } - Path wikiDir = Paths.get(options.docsRepository); + Path wikiDir = Path.of(options.docsRepository); Files.createDirectories(wikiDir); Path bugpatternDir = wikiDir.resolve("bugpattern"); if (!Files.exists(bugpatternDir)) { diff --git a/docgen_processor/pom.xml b/docgen_processor/pom.xml index 7d97a4cb4ca..d34b56e1642 100644 --- a/docgen_processor/pom.xml +++ b/docgen_processor/pom.xml @@ -24,8 +24,8 @@ 1.0-HEAD-SNAPSHOT - JSR-269 annotation processor for @BugPattern annotation error_prone_docgen_processor + JSR-269 annotation processor for @BugPattern annotation @@ -45,6 +45,12 @@ guava ${guava.version} + + jakarta.annotation + jakarta.annotation-api + 1.3.5 + provided + com.google.auto.service auto-service-annotations @@ -62,6 +68,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.14.1 diff --git a/pom.xml b/pom.xml index 16c54102b27..c871c63eac2 100644 --- a/pom.xml +++ b/pom.xml @@ -18,41 +18,27 @@ 4.0.0 - Error Prone parent POM com.google.errorprone error_prone_parent 1.0-HEAD-SNAPSHOT pom + Error Prone parent POM Error Prone is a static analysis tool for Java that catches common programming mistakes at compile-time. https://errorprone.info - - UTF-8 - 33.5.0-jre - 1.4.0 - 1.0.1 - 1.9 - 4.13.2 - 3.41.0-eisop1 - 4.9.0 - 0.23.0 - 3.0.5 - 0.7.4 - 3.11.2 - 3.2.1 - 0.8.0 - 3.25.5 - 1.43.3 - 1.0.0 - 1.27.0 - - Google LLC https://www.google.com + + + Apache 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + Eddie Aftandilian @@ -72,17 +58,38 @@ - scm:git:https://github.com/google/error-prone.git - scm:git:git@github.com:google/error-prone.git - https://github.com/google/error-prone + scm:git:https://github.com/Pankraz76/error-prone.git + scm:git:git@github.com:Pankraz76/error-prone.git + https://github.com/Pankraz76/error-prone - - - Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - + + + sonatype-nexus-snapshots + https://central.sonatype.com/repository/maven-snapshots/ + + + + + UTF-8 + 33.5.0-jre + 1.4.0 + 1.0.1 + 1.9 + 4.13.2 + 3.41.0-eisop1 + 4.9.0 + 0.23.0 + 3.0.5 + 0.7.4 + 3.11.2 + 3.2.1 + 0.8.0 + 3.25.5 + 1.43.3 + 1.0.0 + 1.27.0 + @@ -112,9 +119,42 @@ ${project.build.directory}/dependency-reduced-pom.xml + + org.openrewrite.maven + rewrite-maven-plugin + 6.23.0 + + + org.keycloak.openrewrite.SanityCheck + + true + true + + + + org.openrewrite.recipe + rewrite-migrate-java + 3.21.1 + + + org.openrewrite.recipe + rewrite-static-analysis + 2.21.0 + + + org.openrewrite.recipe + rewrite-rewrite + 0.15.0 + + + + + org.openrewrite.maven + rewrite-maven-plugin + org.apache.maven.plugins maven-enforcer-plugin @@ -207,10 +247,9 @@ --add-exports=java.base/jdk.internal.javac=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED - --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED - --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED + --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED @@ -263,7 +302,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.1.0 + 3.5.4 - - error_prone_parent - com.google.errorprone - 1.0-HEAD-SNAPSHOT - - 4.0.0 + 4.0.0 + + com.google.errorprone + error_prone_parent + 1.0-HEAD-SNAPSHOT + - error_prone_refaster - Refaster rule compiler + error_prone_refaster + Refaster rule compiler - - - Apache 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - - + + + Apache 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + - - - - com.google.errorprone - error_prone_core - ${project.version} - with-dependencies - compile - - - - com.google.auto.service - auto-service-annotations - ${autoservice.version} - - + + + + com.google.errorprone + error_prone_core + ${project.version} + with-dependencies + compile + + + + com.google.auto.service + auto-service-annotations + ${autoservice.version} + + - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - com.google.auto.service - auto-service - ${autoservice.version} - - - - - - org.apache.maven.plugins - maven-shade-plugin - - - package - - shade - - - false - - - - com.google.errorprone:error_prone_core:with-dependencies - - - - - com.google.errorprone.refaster.RefasterRuleCompiler - - - - - - - - + + com.google.errorprone:error_prone_core:with-dependencies + + + + + com.google.errorprone.refaster.RefasterRuleCompiler + + + + + + + + diff --git a/rewrite.yml b/rewrite.yml new file mode 100644 index 00000000000..59951a3af1e --- /dev/null +++ b/rewrite.yml @@ -0,0 +1,60 @@ +--- +type: specs.openrewrite.org/v1beta/recipe +name: org.keycloak.openrewrite.SanityCheck +displayName: Apply Java & Maven best practices +description: Comprehensive code quality recipe combining modernization, security, and best practices. +recipeList: + - org.openrewrite.java.RemoveUnusedImports + - org.openrewrite.java.format.NormalizeLineBreaks + - org.openrewrite.java.format.RemoveTrailingWhitespace + - org.openrewrite.java.migrate.Java8toJava11 + - org.openrewrite.maven.BestPractices + - org.openrewrite.staticanalysis.RemoveUnusedPrivateMethods + # TBD + # - org.openrewrite.java.format.NormalizeFormat + # - org.openrewrite.java.migrate.lang.StringRulesRecipes + # - org.openrewrite.java.migrate.util.JavaLangAPIs + # - org.openrewrite.java.migrate.util.JavaUtilAPIs + # - org.openrewrite.java.migrate.util.MigrateInflaterDeflaterToClose + # - org.openrewrite.java.migrate.util.ReplaceStreamCollectWithToList + # - org.openrewrite.java.migrate.util.SequencedCollection + # - org.openrewrite.java.recipes.JavaRecipeBestPractices + # - org.openrewrite.java.recipes.RecipeTestingBestPractices + # - org.openrewrite.java.security.JavaSecurityBestPractices + # - org.openrewrite.staticanalysis.BufferedWriterCreationRecipes + # - org.openrewrite.staticanalysis.CommonStaticAnalysis + # - org.openrewrite.staticanalysis.EqualsAvoidsNull + # - org.openrewrite.staticanalysis.JavaApiBestPractices + # - org.openrewrite.staticanalysis.LowercasePackage + # - org.openrewrite.staticanalysis.MissingOverrideAnnotation + # - org.openrewrite.staticanalysis.ModifierOrder + # - org.openrewrite.staticanalysis.NoFinalizer + # - org.openrewrite.staticanalysis.NoToStringOnStringType + # - org.openrewrite.staticanalysis.NoValueOfOnStringType + # - org.openrewrite.staticanalysis.RemoveUnusedLocalVariables + # - org.openrewrite.staticanalysis.RemoveUnusedPrivateFields + # - org.openrewrite.staticanalysis.SimplifyTernaryRecipes + # - org.openrewrite.staticanalysis.URLEqualsHashCodeRecipes + # - org.openrewrite.staticanalysis.UnnecessaryCloseInTryWithResources + # - org.openrewrite.staticanalysis.UnnecessaryExplicitTypeArguments + # - org.openrewrite.staticanalysis.UnnecessaryParentheses + # - org.openrewrite.staticanalysis.UnnecessaryReturnAsLastStatement + # - tech.picnic.errorprone.refasterrules.BigDecimalRulesRecipes + # - tech.picnic.errorprone.refasterrules.CharSequenceRulesRecipes + # - tech.picnic.errorprone.refasterrules.ClassRulesRecipes + # - tech.picnic.errorprone.refasterrules.CollectionRulesRecipes + # - tech.picnic.errorprone.refasterrules.ComparatorRulesRecipes + # - tech.picnic.errorprone.refasterrules.EqualityRulesRecipes + # - tech.picnic.errorprone.refasterrules.FileRulesRecipes + # - tech.picnic.errorprone.refasterrules.MapRulesRecipes + # - tech.picnic.errorprone.refasterrules.MicrometerRulesRecipes + # - tech.picnic.errorprone.refasterrules.MockitoRulesRecipes + # - tech.picnic.errorprone.refasterrules.NullRulesRecipes + # - tech.picnic.errorprone.refasterrules.OptionalRulesRecipes + # - tech.picnic.errorprone.refasterrules.PatternRulesRecipes + # - tech.picnic.errorprone.refasterrules.PreconditionsRulesRecipes + # - tech.picnic.errorprone.refasterrules.PrimitiveRulesRecipes + # - tech.picnic.errorprone.refasterrules.StreamRulesRecipes + # - tech.picnic.errorprone.refasterrules.StringRulesRecipes + # - tech.picnic.errorprone.refasterrules.TimeRulesRecipes +--- diff --git a/test_helpers/pom.xml b/test_helpers/pom.xml index 5b62054e1a7..5092e49361d 100644 --- a/test_helpers/pom.xml +++ b/test_helpers/pom.xml @@ -24,8 +24,8 @@ 1.0-HEAD-SNAPSHOT - error-prone test helpers error_prone_test_helpers + error-prone test helpers diff --git a/type_annotations/pom.xml b/type_annotations/pom.xml index ce7176f9f27..853e04d2381 100644 --- a/type_annotations/pom.xml +++ b/type_annotations/pom.xml @@ -24,15 +24,8 @@ 1.0-HEAD-SNAPSHOT - error-prone type annotations error_prone_type_annotations - - - - error_prone_annotations - error_prone_type_annotations has been merged into error_prone_annotations - - + error-prone type annotations @@ -40,4 +33,11 @@ http://www.apache.org/licenses/LICENSE-2.0.txt + + + + error_prone_annotations + error_prone_type_annotations has been merged into error_prone_annotations + +