How are you running OpenRewrite?
I am using the Maven plugin, and my project is a single module project.
<plugin>
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<version>5.23.1</version>
<configuration>
<activeRecipes>
<recipe>org.openrewrite.staticanalysis.SimplifyBooleanExpression</recipe>
</activeRecipes>
</configuration>
<dependencies>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-static-analysis</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
</plugin>
What is the smallest, simplest way to reproduce the problem?
class A {
boolean foo(String name) {
return !(name != null ? !name.equals(System.out.toString()) : false);
}
}
This is transformed to return name == null ? !name.equals(authority.name) : authority.name != null; if name is null.
What did you expect to see?
no change, or negation of the cases instead of the condition:
class A {
boolean foo(String name) {
return name != null ? name.equals(System.out.toString()) : !false;
}
}
What did you see instead?
class A {
boolean foo(String name) {
return name == null ? !name.equals(System.out.toString()) : false;
}
}
What is the full stack trace of any errors you encountered?
Standard NPE message when name is null
How are you running OpenRewrite?
I am using the Maven plugin, and my project is a single module project.
What is the smallest, simplest way to reproduce the problem?
This is transformed to
return name == null ? !name.equals(authority.name) : authority.name != null;if name is null.What did you expect to see?
no change, or negation of the cases instead of the condition:
What did you see instead?
What is the full stack trace of any errors you encountered?
Standard NPE message when name is null