From f50c032b972de10a5e197b0291b606ce749f79f3 Mon Sep 17 00:00:00 2001 From: AlekSimpson Date: Thu, 22 Jun 2023 12:27:28 -0700 Subject: [PATCH] added RSPEC tags, switched assert statement for if statement and updated description --- ...RemoveHashCodeCallsFromArrayInstances.java | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/openrewrite/staticanalysis/RemoveHashCodeCallsFromArrayInstances.java b/src/main/java/org/openrewrite/staticanalysis/RemoveHashCodeCallsFromArrayInstances.java index b1fb9bc64..d6514c9d5 100644 --- a/src/main/java/org/openrewrite/staticanalysis/RemoveHashCodeCallsFromArrayInstances.java +++ b/src/main/java/org/openrewrite/staticanalysis/RemoveHashCodeCallsFromArrayInstances.java @@ -27,6 +27,9 @@ import org.openrewrite.java.tree.J; import org.openrewrite.java.tree.JavaType; +import java.util.Collections; +import java.util.Set; + public class RemoveHashCodeCallsFromArrayInstances extends Recipe { private static final MethodMatcher HASHCODE_MATCHER = new MethodMatcher("java.lang.Object hashCode()"); @Override @@ -37,7 +40,12 @@ public String getDisplayName() { @Override public String getDescription() { return "Removes `hashCode()` calls on arrays and replaces it with `Arrays.hashCode()` because the results from `hashCode()`" + - " are largely useless."; + " not helpful."; + } + + @Override + public Set getTags() { + return Collections.singleton("RSPEC-2116"); } public TreeVisitor getVisitor() { @@ -54,19 +62,17 @@ public J.MethodInvocation visitMethodInvocation(J.MethodInvocation mi, Execution if (HASHCODE_MATCHER.matches(m)) { String builder_string = "Arrays.hashCode(#{anyArray(java.lang.Object)})"; Expression select = m.getSelect(); - assert select != null; - if (!(select.getType() instanceof JavaType.Array)) { - return m; + if (select != null) { + if (!(select.getType() instanceof JavaType.Array)) { + return m; + } + maybeAddImport("java.util.Arrays"); + return JavaTemplate.builder(builder_string) + .imports("java.util.Arrays") + .build() + .apply(getCursor(), m.getCoordinates().replace(), select); } - - J.MethodInvocation invocation = JavaTemplate.builder(builder_string) - .imports("java.util.Arrays") - .build() - .apply(getCursor(), m.getCoordinates().replace(), select); - maybeAddImport("java.util.Arrays"); - - return invocation; } return m;