Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,14 @@ private String patternVariableName(J.InstanceOf instanceOf, Cursor cursor) {
strategy = VariableNameStrategy.short_();
}
String baseName = strategy.variableName(type);
return VariableNameUtils.generateVariableName(baseName, cursor, INCREMENT_NUMBER);
if (root instanceof J.If) {
J.If enclosingIf = cursor.firstEnclosing(J.If.class);
String nameInIfScope = VariableNameUtils.generateVariableName(baseName, new Cursor(cursor, enclosingIf), INCREMENT_NUMBER);
String nameInCursorScope = VariableNameUtils.generateVariableName(baseName, cursor, INCREMENT_NUMBER);
return nameInIfScope.compareTo(nameInCursorScope) >= 0 ? nameInIfScope : nameInCursorScope;
} else {
return VariableNameUtils.generateVariableName(baseName, cursor, INCREMENT_NUMBER);
}
}

public @Nullable J processTypeCast(J.TypeCast typeCast, Cursor cursor) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
*/
package org.openrewrite.staticanalysis;

import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.openrewrite.Issue;
Expand Down Expand Up @@ -528,7 +527,6 @@ void test(Object o) {
}

@Issue("https://github.com/openrewrite/rewrite/issues/2787")
@Disabled
@Test
void nestedPotentiallyConflictingIfs() {
rewriteRun(
Expand All @@ -549,11 +547,11 @@ void test(Object o) {
"""
public class A {
void test(Object o) {
if (o instanceof String string) {
if (o instanceof String string1) {
System.out.println(string1);
if (o instanceof String string1) {
if (o instanceof String string) {
System.out.println(string);
}
System.out.println(string);
System.out.println(string1);
}
}
}
Expand All @@ -562,6 +560,91 @@ void test(Object o) {
);
}

@Issue("https://github.com/openrewrite/rewrite-static-analysis/issues/334")
@Test
void clashingWithInstanceOfVariableName() {
rewriteRun(
//language=java
java(
"""
public class Main {
public class Bar {}
public class FooBar {}
public static void main(String[] args) {
Object o = new Object();
if (o instanceof Bar) {
System.out.println(((Bar)o));
Bar bar = null;
if (o instanceof FooBar) {
System.out.println(((FooBar)o));
Bar bar1 = null;
}
}
}
}
""",
"""
public class Main {
public class Bar {}
public class FooBar {}
public static void main(String[] args) {
Object o = new Object();
if (o instanceof Bar bar2) {
System.out.println(bar2);
Bar bar = null;
if (o instanceof FooBar fooBar) {
System.out.println(fooBar);
Bar bar1 = null;
}
}
}
}
"""
)
);
}

@Test
void clashingInstanceOfVariableNames() {
rewriteRun(
//language=java
java(
"""
public class Main {
public class Bar {}
public class FooBar {}
public static void main(String[] args) {
Object o = new Object();
if (o instanceof Bar) {
System.out.println(((Bar)o));
if (o instanceof FooBar) {
System.out.println(((FooBar)o));
Bar bar1 = null;
}
}
}
}
""",
"""
public class Main {
public class Bar {}
public class FooBar {}
public static void main(String[] args) {
Object o = new Object();
if (o instanceof Bar bar2) {
System.out.println(bar2);
if (o instanceof FooBar bar) {
System.out.println(bar);
Bar bar1 = null;
}
}
}
}
"""
)
);
}

@Test
void expressionWithSideEffects() {
rewriteRun(
Expand Down
Loading