-
Notifications
You must be signed in to change notification settings - Fork 94
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
What version of OpenRewrite are you using?
Current main:
- OR = e1f2efd3f4365c93d7dd93212bc66892b90219b5
- rewrite-static-analysis = af53ce1
What is the smallest, simplest way to reproduce the problem?
The following unit test when added to RemoveUnusedLocalVariablesTest:
@Test
void withinMethodInvocation() {
rewriteRun(
java(
"""
import java.util.List;
class C {
void m(List<String> arguments) {
arguments.stream().map(s -> {
String version;
String someValue = "436 Natolin";
if ("version".equals(s)) {
version = someValue;
}
return "195 Huta";
});
}
}
"""
)
);
}crashes with:
Caused by: java.lang.ClassCastException: class org.openrewrite.java.tree.J$Identifier cannot be cast to class org.openrewrite.java.tree.Statement (org.openrewrite.java.tree.J$Identifier and org.openrewrite.java.tree.Statement are in unnamed module of loader 'app')
at org.openrewrite.java.JavaPrinter.visitStatement(JavaPrinter.java:406)
at org.openrewrite.java.JavaPrinter.visitStatements(JavaPrinter.java:394)
A similar crash has been observed in real-life:
java.lang.ClassCastException: class org.openrewrite.java.tree.J$Identifier cannot be cast to class org.openrewrite.java.tree.Statement (org.openrewrite.java.tree.J$Identifier and org.openrewrite.java.tree.Statement are in unnamed module of loader 'app')
org.openrewrite.internal.ListUtils.map(ListUtils.java:245)
org.openrewrite.internal.ListUtils.map(ListUtils.java:269)
org.openrewrite.java.DeleteStatement.visitBlock(DeleteStatement.java:128)
org.openrewrite.java.DeleteStatement.visitBlock(DeleteStatement.java:51)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Done