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 extends AssignmentTree> 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 extends CaseTree> 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 extends CaseTree> 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
+
+