From a7571c9fee75e341392e474779f446f7d731d624 Mon Sep 17 00:00:00 2001 From: Tim te Beek <timtebeek@gmail.com> Date: Mon, 7 Aug 2023 21:29:59 +0000 Subject: [PATCH 1/3] refactor: Use method references in lambda Use this link to re-run the recipe: https://app.moderne.io/recipes/org.openrewrite.staticanalysis.ReplaceLambdaWithMethodReference?organizationId=T3BlblJld3JpdGU%3D Co-authored-by: Moderne <team@moderne.io> --- .../analysis/controlflow/ControlFlowSummary.java | 12 ++++++------ .../openrewrite/analysis/dataflow/DataFlowNode.java | 2 +- .../dataflow/global/GlobalDataFlowAccumulator.java | 2 +- .../org/openrewrite/analysis/search/FindMethods.java | 2 +- .../openrewrite/analysis/trait/expr/VarAccess.java | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/openrewrite/analysis/controlflow/ControlFlowSummary.java b/src/main/java/org/openrewrite/analysis/controlflow/ControlFlowSummary.java index 8ea49302f..29924a39b 100644 --- a/src/main/java/org/openrewrite/analysis/controlflow/ControlFlowSummary.java +++ b/src/main/java/org/openrewrite/analysis/controlflow/ControlFlowSummary.java @@ -59,16 +59,16 @@ private static void recurseGetAllControlFlowNodes(ControlFlowNode current, Set<C public Set<ControlFlowNode.BasicBlock> getBasicBlocks() { return getAllNodes() .stream() - .filter(node -> node instanceof ControlFlowNode.BasicBlock) - .map(node -> (ControlFlowNode.BasicBlock) node) + .filter(org.openrewrite.analysis.controlflow.ControlFlowNode.BasicBlock.class::isInstance) + .map(org.openrewrite.analysis.controlflow.ControlFlowNode.BasicBlock.class::cast) .collect(Collectors.toSet()); } public Set<ControlFlowNode.ConditionNode> getConditionNodes() { return getAllNodes() .stream() - .filter(node -> node instanceof ControlFlowNode.ConditionNode) - .map(node -> (ControlFlowNode.ConditionNode) node) + .filter(org.openrewrite.analysis.controlflow.ControlFlowNode.ConditionNode.class::isInstance) + .map(org.openrewrite.analysis.controlflow.ControlFlowNode.ConditionNode.class::cast) .collect(Collectors.toSet()); } @@ -92,8 +92,8 @@ public Set<ControlFlowNode.BasicBlock> computeReachableBasicBlock(BarrierGuardPr recurseComputeReachableBasicBlock(start, predicate, reachable); return reachable .stream() - .filter(cfn -> cfn instanceof ControlFlowNode.BasicBlock) - .map(cfn -> (ControlFlowNode.BasicBlock) cfn) + .filter(org.openrewrite.analysis.controlflow.ControlFlowNode.BasicBlock.class::isInstance) + .map(org.openrewrite.analysis.controlflow.ControlFlowNode.BasicBlock.class::cast) .collect(Collectors.toSet()); } diff --git a/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java b/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java index d77dc7fca..3c37ee9ae 100644 --- a/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java +++ b/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java @@ -65,7 +65,7 @@ public static Option<DataFlowNode> of(Cursor cursor) { .toOption() .map(expr -> new ExpressionDataFlowNode(cursor, expr)); } else if (cursor.getValue() instanceof J.VariableDeclarations.NamedVariable) { - return Parameter.viewOf(cursor).map(parameter -> (DataFlowNode) new ParameterDataFlowNode(cursor, parameter)).toOption(); + return Parameter.viewOf(cursor).map(DataFlowNode.class::cast).toOption(); } else { return Option.none(); } diff --git a/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java b/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java index cf2deec65..e834d961a 100644 --- a/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java +++ b/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java @@ -346,7 +346,7 @@ public GlobalDataFlow.Summary summary(Cursor cursor) { } return DataFlowNode .of(cursor) - .map(n -> (GlobalDataFlow.Summary) new ResultSummary(n, prunedParticipatingNodes)) + .map(org.openrewrite.analysis.dataflow.global.GlobalDataFlow.Summary.class::cast) .orSome(AlwaysFalseSummary.INSTANCE); } diff --git a/src/main/java/org/openrewrite/analysis/search/FindMethods.java b/src/main/java/org/openrewrite/analysis/search/FindMethods.java index 90c8531ac..ccb836296 100644 --- a/src/main/java/org/openrewrite/analysis/search/FindMethods.java +++ b/src/main/java/org/openrewrite/analysis/search/FindMethods.java @@ -209,7 +209,7 @@ public static Set<J> find(J j, String methodPattern, boolean matchOverrides) { ) .stream() .filter(t -> t instanceof J.MethodInvocation || t instanceof J.MemberReference || t instanceof J.NewClass) - .map(t -> (J) t) + .map(J.class::cast) .collect(Collectors.toSet()); } diff --git a/src/main/java/org/openrewrite/analysis/trait/expr/VarAccess.java b/src/main/java/org/openrewrite/analysis/trait/expr/VarAccess.java index e5caa7d31..9e8442701 100644 --- a/src/main/java/org/openrewrite/analysis/trait/expr/VarAccess.java +++ b/src/main/java/org/openrewrite/analysis/trait/expr/VarAccess.java @@ -137,7 +137,7 @@ public boolean hasQualifier() { @Override public Option<Expr> getQualifier() { - return InstanceAccess.viewOf(cursor.getParentTreeCursor()).map(e -> (Expr) e).toOption(); + return InstanceAccess.viewOf(cursor.getParentTreeCursor()).map(Expr.class::cast).toOption(); } @Override From da821471849d6ad87a3c7526e28f0f735826deb1 Mon Sep 17 00:00:00 2001 From: Tim te Beek <timtebeek@gmail.com> Date: Mon, 7 Aug 2023 22:37:03 +0100 Subject: [PATCH 2/3] Revert DataFlowNode cast --- .../java/org/openrewrite/analysis/dataflow/DataFlowNode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java b/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java index 3c37ee9ae..d77dc7fca 100644 --- a/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java +++ b/src/main/java/org/openrewrite/analysis/dataflow/DataFlowNode.java @@ -65,7 +65,7 @@ public static Option<DataFlowNode> of(Cursor cursor) { .toOption() .map(expr -> new ExpressionDataFlowNode(cursor, expr)); } else if (cursor.getValue() instanceof J.VariableDeclarations.NamedVariable) { - return Parameter.viewOf(cursor).map(DataFlowNode.class::cast).toOption(); + return Parameter.viewOf(cursor).map(parameter -> (DataFlowNode) new ParameterDataFlowNode(cursor, parameter)).toOption(); } else { return Option.none(); } From 3c65843fa84829cf013b5fa8bde225a7b383d0c5 Mon Sep 17 00:00:00 2001 From: Tim te Beek <timtebeek@gmail.com> Date: Mon, 7 Aug 2023 22:43:32 +0100 Subject: [PATCH 3/3] Revert GlobalDataFlowAccumulator cast --- .../analysis/dataflow/global/GlobalDataFlowAccumulator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java b/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java index e834d961a..cf2deec65 100644 --- a/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java +++ b/src/main/java/org/openrewrite/analysis/dataflow/global/GlobalDataFlowAccumulator.java @@ -346,7 +346,7 @@ public GlobalDataFlow.Summary summary(Cursor cursor) { } return DataFlowNode .of(cursor) - .map(org.openrewrite.analysis.dataflow.global.GlobalDataFlow.Summary.class::cast) + .map(n -> (GlobalDataFlow.Summary) new ResultSummary(n, prunedParticipatingNodes)) .orSome(AlwaysFalseSummary.INSTANCE); }