-
Notifications
You must be signed in to change notification settings - Fork 88
Open
Labels
Description
What version of OpenRewrite are you using?
OR current main (7edbbf01ab8a9b666ef3c2003ee7b8e0c66a4967)
rewrite-static-analysis (428d8b0)
What is the smallest, simplest way to reproduce the problem?
Add the following test to a new file src/test/java/org/openrewrite/staticanalysis/kotlin/FinalizeLocalVariablesTest.java
:
@Override
public void defaults(RecipeSpec spec) {
spec.recipe(new FinalizeLocalVariables());
}
@Test
void kotlinVar() {
rewriteRun(
kotlin(
"""
var x = 1
"""
)
);
}
Observed
java.lang.IllegalStateException: Expected to find a matching parent for Cursor{VariableDeclarations->CompilationUnit->root}
at org.openrewrite.Cursor.dropParentUntil(Cursor.java:200)
at org.openrewrite.staticanalysis.FinalizeLocalVariables$1.getCursorToParentScope(FinalizeLocalVariables.java:94)
at org.openrewrite.staticanalysis.FinalizeLocalVariables$1.visitVariableDeclarations(FinalizeLocalVariables.java:75)
at org.openrewrite.staticanalysis.FinalizeLocalVariables$1.visitVariableDeclarations(FinalizeLocalVariables.java:46)
at org.openrewrite.staticanalysis.FinalizeLocalVariables_1_KotlinVisitor.visitVariableDeclarations(FinalizeLocalVariables_1_KotlinVisitor.zig:81)
OSS repro
Groovy
Same story for Groovy:
java.lang.IllegalStateException: Expected to find a matching parent for Cursor{VariableDeclarations->CompilationUnit->root}
org.openrewrite.Cursor.dropParentUntil(Cursor.java:200)
org.openrewrite.staticanalysis.FinalizeLocalVariables$1.getCursorToParentScope(FinalizeLocalVariables.java:94)
org.openrewrite.staticanalysis.FinalizeLocalVariables$1.visitVariableDeclarations(FinalizeLocalVariables.java:75)
org.openrewrite.staticanalysis.FinalizeLocalVariables$1.visitVariableDeclarations(FinalizeLocalVariables.java:46)
org.openrewrite.staticanalysis.FinalizeLocalVariables_1_GroovyVisitor.visitVariableDeclarations(FinalizeLocalVariables_1_GroovyVisitor.zig:123)
org.openrewrite.java.tree.J$VariableDeclarations.acceptJava(J.java:6166)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
No status