Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/ChainedFinalFieldAccessorsDfa.java

84 lines
2.4 KiB
Java

import org.jetbrains.annotations.Nullable;
import java.lang.String;
class BrokenAlignment {
void main(Data data) {
if (data.getText() != null) {
System.out.println(data.getText().hashCode());
}
data = new Data(null, <warning descr="Passing 'null' argument to non annotated parameter">null</warning>);
System.out.println(data.getText().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
if (data.getInner() != null) {
System.out.println(data.getInner().hashCode());
System.out.println(data.getInner().getText().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
if (data.getInner() != null) {
System.out.println(data.getInner().hashCode());
}
data = new Data(null, <warning descr="Passing 'null' argument to non annotated parameter">null</warning>);
System.out.println(data.getInner().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
}
}
void main2(Data data) {
if (data.getInner() != null && data.getInner().getText() != null) {
System.out.println(data.getInner().hashCode());
System.out.println(data.getInner().getText().hashCode());
}
}
void main3(Data data) {
if (data.getInnerOverridden() != null) {
System.out.println(data.getInnerOverridden().hashCode());
}
if (data.something() != null) {
System.out.println(data.something().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
}
}
private static class Data {
@Nullable final String text;
@Nullable final Data inner;
Data(@Nullable String text, Data inner) {
this.text = text;
this.inner = inner;
}
@Nullable
public String getText() {
return text;
}
@Nullable
public Data getInner() {
return inner;
}
@Nullable
public Data getInnerOverridden() {
return inner;
}
@Nullable
public String something() {
return new String();
}
}
class DataImpl extends Data {
DataImpl(@Nullable String text, Data inner) {
super(text, inner);
}
@Nullable
@Override
public Data getInnerOverridden() {
return super.getInnerOverridden();
}
}
}