From 8311e0c76ff5057c320d804c1d1af77b81ed5cbf Mon Sep 17 00:00:00 2001 From: Leanne Kerford Date: Tue, 22 Oct 2024 11:53:36 -0700 Subject: [PATCH 1/2] Add used enums into the list of used variable names (#4600) * Add used enums into the list of used variable names Currently, Enums aren't being added to the list of used variable names which can result in collisions when naming new variable. * Update rewrite-java/src/main/java/org/openrewrite/java/VariableNameUtils.java Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: Sam Snyder Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../openrewrite/java/VariableNameUtilsTest.java | 17 +++++++++++++++++ .../org/openrewrite/java/VariableNameUtils.java | 10 ++++++++++ 2 files changed, 27 insertions(+) diff --git a/rewrite-java-test/src/test/java/org/openrewrite/java/VariableNameUtilsTest.java b/rewrite-java-test/src/test/java/org/openrewrite/java/VariableNameUtilsTest.java index 34d99bde524..7d9fcb738bf 100644 --- a/rewrite-java-test/src/test/java/org/openrewrite/java/VariableNameUtilsTest.java +++ b/rewrite-java-test/src/test/java/org/openrewrite/java/VariableNameUtilsTest.java @@ -106,6 +106,23 @@ class Test { ); } + @Test + void enumFieldNames() { + rewriteRun( + baseTest("myType", "myType,TYPES"), + java( + """ + class Test { + TYPES myType; + } + enum TYPES { + VALUE, NUMBER, TEXT + } + """ + ) + ); + } + @Test void allClassFieldsAreFound() { rewriteRun( diff --git a/rewrite-java/src/main/java/org/openrewrite/java/VariableNameUtils.java b/rewrite-java/src/main/java/org/openrewrite/java/VariableNameUtils.java index 90a960ee503..e9a880d0600 100644 --- a/rewrite-java/src/main/java/org/openrewrite/java/VariableNameUtils.java +++ b/rewrite-java/src/main/java/org/openrewrite/java/VariableNameUtils.java @@ -263,6 +263,16 @@ public J.VariableDeclarations.NamedVariable visitVariable(J.VariableDeclarations return super.visitVariable(variable, strings); } + @Override + public J.Identifier visitIdentifier(J.Identifier identifier, Set namesInScope) { + J.Identifier v = super.visitIdentifier(identifier, namesInScope); + if (v.getType() instanceof JavaType.Class && + ((JavaType.Class) v.getType()).getKind() == JavaType.FullyQualified.Kind.Enum) { + namesInScope.add(v.getSimpleName()); + } + return v; + } + private void addImportedStaticFieldNames(@Nullable JavaSourceFile cu, Cursor classCursor) { if (cu != null) { List imports = cu.getImports(); From 49524a72c5b791be26438f670ab79c2f5c140e05 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Tue, 22 Oct 2024 21:08:15 +0200 Subject: [PATCH 2/2] Apply OpenRewrite best practices --- .../src/test/java/org/openrewrite/RecipeLifecycleTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rewrite-core/src/test/java/org/openrewrite/RecipeLifecycleTest.java b/rewrite-core/src/test/java/org/openrewrite/RecipeLifecycleTest.java index 9c60424c6b3..5c7ebe95f94 100644 --- a/rewrite-core/src/test/java/org/openrewrite/RecipeLifecycleTest.java +++ b/rewrite-core/src/test/java/org/openrewrite/RecipeLifecycleTest.java @@ -139,7 +139,7 @@ public TreeVisitor getScanner(Integer acc) { //noinspection NullableProblems return new TreeVisitor<>() { @Override - public Tree visit(Tree tree, ExecutionContext executionContext) { + public Tree visit(Tree tree, ExecutionContext ctx) { if (tree.getMarkers().findFirst(RecipesThatMadeChanges.class).isPresent()) { return tree; }