From 390831988d57b1bd38815295ffdb7c93371ccdc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Merlin=20B=C3=B6gershausen?= Date: Wed, 29 Jan 2025 12:18:07 +0100 Subject: [PATCH] polish and fast return --- .../staticanalysis/CatchClauseOnlyRethrows.java | 8 +++++--- .../staticanalysis/NoEqualityInForCondition.java | 11 ++++++----- .../staticanalysis/CatchClauseOnlyRethrowsTest.java | 1 - 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrows.java b/src/main/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrows.java index d2a9b60b0..5b869b8a1 100755 --- a/src/main/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrows.java +++ b/src/main/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrows.java @@ -30,8 +30,7 @@ import java.util.List; import java.util.Set; -import static java.util.Collections.singleton; -import static java.util.Collections.singletonList; +import static java.util.Collections.*; import static org.openrewrite.staticanalysis.csharp.CSharpFileChecker.isInstanceOfCs; public class CatchClauseOnlyRethrows extends Recipe { @@ -98,10 +97,13 @@ private List getJavaTypes(J.Try.Catch next) { JavaType.MultiCatch multiCatch = (JavaType.MultiCatch) next.getParameter().getType(); return multiCatch.getThrowableTypes(); } - return singletonList(next.getParameter().getType()); + return next.getParameter().getType() != null ? singletonList(next.getParameter().getType()) : emptyList(); } private boolean isAnyAssignableTo(List nextTypes, List aCatchTypes) { + if (nextTypes.isEmpty()) { + return false; + } for (JavaType aCatchType : aCatchTypes) { for (JavaType nextType : nextTypes) { if (TypeUtils.isAssignableTo(nextType, aCatchType)) { diff --git a/src/main/java/org/openrewrite/staticanalysis/NoEqualityInForCondition.java b/src/main/java/org/openrewrite/staticanalysis/NoEqualityInForCondition.java index c2b72c28a..aa98eef1f 100644 --- a/src/main/java/org/openrewrite/staticanalysis/NoEqualityInForCondition.java +++ b/src/main/java/org/openrewrite/staticanalysis/NoEqualityInForCondition.java @@ -50,6 +50,7 @@ public Duration getEstimatedEffortPerOccurrence() { @Override public TreeVisitor getVisitor() { + return new JavaVisitor() { @Override public J visitForControl(J.ForLoop.Control control, ExecutionContext ctx) { @@ -57,8 +58,8 @@ public J visitForControl(J.ForLoop.Control control, ExecutionContext ctx) { J.Binary condition = (J.Binary) control.getCondition(); if (isNumericalType(condition) && - control.getUpdate().size() == 1 && - control.getUpdate().get(0) instanceof J.Unary) { + control.getUpdate().size() == 1 && + control.getUpdate().get(0) instanceof J.Unary) { J.Unary update = (J.Unary) control.getUpdate().get(0); if (updatedExpressionInConditional(update.getExpression(), condition)) { if (condition.getOperator() == J.Binary.Type.NotEqual) { @@ -104,9 +105,9 @@ private boolean updatedExpressionInConditional(Expression updatedExpression, J.B private boolean isNumericalType(J.Binary condition) { JavaType type = condition.getRight().getType(); return type == JavaType.Primitive.Short || - type == JavaType.Primitive.Byte || - type == JavaType.Primitive.Int || - type == JavaType.Primitive.Long; + type == JavaType.Primitive.Byte || + type == JavaType.Primitive.Int || + type == JavaType.Primitive.Long; } }; } diff --git a/src/test/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrowsTest.java b/src/test/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrowsTest.java index 5fbb77f57..614a43590 100755 --- a/src/test/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrowsTest.java +++ b/src/test/java/org/openrewrite/staticanalysis/CatchClauseOnlyRethrowsTest.java @@ -20,7 +20,6 @@ import org.openrewrite.test.RecipeSpec; import org.openrewrite.test.RewriteTest; -import static java.util.Collections.singletonList; import static org.openrewrite.java.Assertions.java; @SuppressWarnings("ALL")