mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-05-06 05:10:22 +07:00
dfa: highlight just method reference name on possible NPE warnings (IDEA-149904)
This commit is contained in:
@@ -435,9 +435,12 @@ public class DataFlowInspectionBase extends BaseJavaBatchLocalInspectionTool {
|
||||
}
|
||||
|
||||
private void reportCallMayProduceNpe(ProblemsHolder holder, PsiMethodCallExpression callExpression, boolean onTheFly) {
|
||||
LocalQuickFix[] fix = createNPEFixes(callExpression.getMethodExpression().getQualifierExpression(), callExpression, onTheFly);
|
||||
PsiReferenceExpression methodExpression = callExpression.getMethodExpression();
|
||||
LocalQuickFix[] fix = createNPEFixes(methodExpression.getQualifierExpression(), callExpression, onTheFly);
|
||||
|
||||
holder.registerProblem(callExpression,
|
||||
PsiElement toHighlight = methodExpression.getReferenceNameElement();
|
||||
if (toHighlight == null) toHighlight = methodExpression;
|
||||
holder.registerProblem(toHighlight,
|
||||
InspectionsBundle.message("dataflow.message.npe.method.invocation"),
|
||||
fix);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
class A{
|
||||
void test(){
|
||||
Object container = null;
|
||||
Runnable r = () -> container == null ? conta<caret>iner.toString() : "";
|
||||
Runnable r = () -> container == null ? container.toS<caret>tring() : "";
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,6 @@ import java.lang.Integer;
|
||||
class A{
|
||||
void test(){
|
||||
Integer integer = null;
|
||||
int i = in<caret>teger.intValue();
|
||||
int i = integer.int<caret>Value();
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,6 @@
|
||||
class A {
|
||||
void foo(){
|
||||
String i = null;
|
||||
<caret>i.hashCode();
|
||||
i.has<caret>hCode();
|
||||
}
|
||||
}
|
||||
@@ -3,16 +3,16 @@
|
||||
<problem>
|
||||
<file>Test.java</file>
|
||||
<line>9</line>
|
||||
<description>Method invocation 'foo().foo()' may produce NullPointerException</description>
|
||||
<description>Method invocation 'foo' may produce NullPointerException</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>Test.java</file>
|
||||
<line>10</line>
|
||||
<description>Method invocation 'foo().foo()' may produce NullPointerException</description>
|
||||
<description>Method invocation 'foo' may produce NullPointerException</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>Test.java</file>
|
||||
<line>10</line>
|
||||
<description>Method invocation 'foo().foo().foo()' may produce NullPointerException</description>
|
||||
<description>Method invocation 'foo' may produce NullPointerException</description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
<problem>
|
||||
<file>IDEADEV10489.java</file>
|
||||
<line>10</line>
|
||||
<description>Method invocation 's.length()' may produce NullPointerException</description>
|
||||
<description>Method invocation 'length' may produce NullPointerException</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>IDEADEV10489.java</file>
|
||||
<line>8</line>
|
||||
<description>Method invocation 's.length()' may produce NullPointerException</description>
|
||||
<description>Method invocation 'length' may produce NullPointerException</description>
|
||||
</problem>
|
||||
</problems>
|
||||
@@ -3,6 +3,6 @@
|
||||
<problem>
|
||||
<file>Npe.java</file>
|
||||
<line>7</line>
|
||||
<description>'o.hashCode()' may produce NullPointerException</description>
|
||||
<description>'hashCode' may produce NullPointerException</description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
<problem>
|
||||
<file>Npe.java</file>
|
||||
<line>6</line>
|
||||
<description>Method invocation <code>((SomeInterfaceImpl)x).bar()</code> may produce <code>java.lang.NullPointerException</code></description>
|
||||
<description>Method invocation <code>bar</code> may produce <code>java.lang.NullPointerException</code></description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<problem>
|
||||
<file>Finally.java</file>
|
||||
<line>9</line>
|
||||
<description>Method invocation 'o.hashCode()' may produce java.lang.NullPointerException</description>
|
||||
<description>Method invocation 'hashCode' may produce java.lang.NullPointerException</description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
<problem>
|
||||
<file>Test.java</file>
|
||||
<line>72</line>
|
||||
<description>Method invocation <code>foo.length()</code> may produce <code>java.lang.NullPointerException</code></description>
|
||||
<description>Method invocation <code>length</code> may produce <code>java.lang.NullPointerException</code></description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<problem>
|
||||
<file>CaseAndNpe.java</file>
|
||||
<line>26</line>
|
||||
<description>Method invocation 'o.equals(o)' may produce NullPointerException</description>
|
||||
<description>Method invocation 'equals' may produce NullPointerException</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>CaseAndNpe.java</file>
|
||||
|
||||
@@ -10,17 +10,17 @@ class BrokenAlignment {
|
||||
}
|
||||
|
||||
data = new Data(null, <warning descr="Passing 'null' argument to non annotated parameter">null</warning>);
|
||||
System.out.println(<warning descr="Method invocation 'data.getText().hashCode()' may produce 'java.lang.NullPointerException'">data.getText().hashCode()</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(<warning descr="Method invocation 'data.getInner().getText().hashCode()' may produce 'java.lang.NullPointerException'">data.getInner().getText().hashCode()</warning>);
|
||||
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(<warning descr="Method invocation 'data.getInner().hashCode()' may produce 'java.lang.NullPointerException'">data.getInner().hashCode()</warning>);
|
||||
System.out.println(data.getInner().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ class BrokenAlignment {
|
||||
System.out.println(data.getInnerOverridden().hashCode());
|
||||
}
|
||||
if (data.something() != null) {
|
||||
System.out.println(<warning descr="Method invocation 'data.something().hashCode()' may produce 'java.lang.NullPointerException'">data.something().hashCode()</warning>);
|
||||
System.out.println(data.something().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,17 +7,17 @@ class BrokenAlignment {
|
||||
}
|
||||
|
||||
data = new Data(null, <warning descr="Passing 'null' argument to non annotated parameter">null</warning>);
|
||||
System.out.println(<warning descr="Method invocation 'data.text.hashCode()' may produce 'java.lang.NullPointerException'">data.text.hashCode()</warning>);
|
||||
System.out.println(data.text.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
|
||||
if (data.inner != null) {
|
||||
System.out.println(data.inner.hashCode());
|
||||
System.out.println(<warning descr="Method invocation 'data.inner.text.hashCode()' may produce 'java.lang.NullPointerException'">data.inner.text.hashCode()</warning>);
|
||||
System.out.println(data.inner.text.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
if (<warning descr="Condition 'data.inner != null' is always 'true'">data.inner != null</warning>) {
|
||||
System.out.println(data.inner.hashCode());
|
||||
}
|
||||
|
||||
data = new Data(null, <warning descr="Passing 'null' argument to non annotated parameter">null</warning>);
|
||||
System.out.println(<warning descr="Method invocation 'data.inner.hashCode()' may produce 'java.lang.NullPointerException'">data.inner.hashCode()</warning>);
|
||||
System.out.println(data.inner.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ class Bar3 {
|
||||
public void foo(@Nullable Object element) {
|
||||
final String elementType = element != null ? element.toString() : null;
|
||||
if (elementType == nullableString()) {
|
||||
System.out.println(<warning descr="Method invocation 'element.hashCode()' may produce 'java.lang.NullPointerException'">element.hashCode()</warning>);
|
||||
System.out.println(element.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ class Bar3 {
|
||||
public void foo(@Nullable Object element) {
|
||||
final String elementType = element != null ? element.toString() : null;
|
||||
if (elementType == someString()) {
|
||||
System.out.println(<warning descr="Method invocation 'element.hashCode()' may produce 'java.lang.NullPointerException'">element.hashCode()</warning>);
|
||||
System.out.println(element.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ class Bar3 {
|
||||
System.out.println(first.hashCode());
|
||||
}
|
||||
if (first == null) {
|
||||
System.out.println(<warning descr="Method invocation 'first.hashCode()' may produce 'java.lang.NullPointerException'">first.hashCode()</warning>);
|
||||
System.out.println(first.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ class Doo {
|
||||
|
||||
void foo(@Nullable String s) {
|
||||
if (isMaybeNotNull(s)) {
|
||||
System.out.println(<warning descr="Method invocation 's.length()' may produce 'java.lang.NullPointerException'">s.length()</warning>);
|
||||
System.out.println(s.<warning descr="Method invocation 'length' may produce 'java.lang.NullPointerException'">length</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ class TestCase {
|
||||
String s = normalizeSpace(unknown()).trim();
|
||||
String s3 = normalizeSpaceInverted(unknown()).trim();
|
||||
|
||||
String s4 = <warning descr="Method invocation 'normalizeSpace(null).trim()' may produce 'java.lang.NullPointerException'">normalizeSpace(null).trim()</warning>;
|
||||
String s4 = normalizeSpace(null).<warning descr="Method invocation 'trim' may produce 'java.lang.NullPointerException'">trim</warning>();
|
||||
}
|
||||
|
||||
public static native String unknown();
|
||||
|
||||
@@ -18,7 +18,7 @@ class Test {
|
||||
} else if ("Queues".equals(parentName)) {
|
||||
System.out.println(parentNode.toString());
|
||||
}
|
||||
System.out.println(<warning descr="Method invocation 'parentNode.toString()' may produce 'java.lang.NullPointerException'">parentNode.toString()</warning>);
|
||||
System.out.println(parentNode.<warning descr="Method invocation 'toString' may produce 'java.lang.NullPointerException'">toString</warning>());
|
||||
}
|
||||
|
||||
public static int foo(String a, String b) {
|
||||
|
||||
@@ -29,7 +29,7 @@ class Main {
|
||||
}
|
||||
@NotNull
|
||||
private Object test7(@NotNull Object defVal, @Nullable final Object val) {
|
||||
if (<warning descr="Method invocation 'val.equals(defVal)' may produce 'java.lang.NullPointerException'">val.equals(defVal)</warning>) {
|
||||
if (val.<warning descr="Method invocation 'equals' may produce 'java.lang.NullPointerException'">equals</warning>(defVal)) {
|
||||
return defVal;
|
||||
}
|
||||
return defVal;
|
||||
|
||||
@@ -9,7 +9,7 @@ class Zoo2 {
|
||||
|
||||
new Runnable() {
|
||||
int hc = foo.hashCode();
|
||||
int hc2 = <warning descr="Method invocation 'bar.hashCode()' may produce 'java.lang.NullPointerException'">bar.hashCode()</warning>;
|
||||
int hc2 = bar.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>();
|
||||
|
||||
public void run() {
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ class Test {
|
||||
private static final Object CONST = getNull();
|
||||
|
||||
public static void test() {
|
||||
System.out.println(<warning descr="Method invocation 'CONST.toString()' may produce 'java.lang.NullPointerException'">CONST.toString()</warning>);
|
||||
System.out.println(CONST.<warning descr="Method invocation 'toString' may produce 'java.lang.NullPointerException'">toString</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ class Doo {
|
||||
|
||||
int foo() {
|
||||
if (<warning descr="Condition 'myB != null' is always 'true'">myB != null</warning> &&
|
||||
<warning descr="Method invocation 'myA.equals(myB)' may produce 'java.lang.NullPointerException'">myA.equals(myB)</warning>) {
|
||||
myA.<warning descr="Method invocation 'equals' may produce 'java.lang.NullPointerException'">equals</warning>(myB)) {
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ class Doo {
|
||||
if (getMethod() == null && !isSomething()) {
|
||||
return;
|
||||
} else {
|
||||
System.out.println(<warning descr="Method invocation 'getMethod().hashCode()' may produce 'java.lang.NullPointerException'">getMethod().hashCode()</warning>);
|
||||
System.out.println(getMethod().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ class Doo {
|
||||
if (getMethod() == null && !pureSomething()) {
|
||||
return;
|
||||
} else {
|
||||
System.out.println(<warning descr="Method invocation 'getMethod().hashCode()' may produce 'java.lang.NullPointerException'">getMethod().hashCode()</warning>);
|
||||
System.out.println(getMethod().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ class Goo {
|
||||
|
||||
{
|
||||
Object category = permission.getCategory();
|
||||
System.out.println(<warning descr="Method invocation 'category.hashCode()' may produce 'java.lang.NullPointerException'">category.hashCode()</warning>);
|
||||
System.out.println(category.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ class Test {
|
||||
}
|
||||
class Local {
|
||||
void s(@Nullable String s) {
|
||||
final int i = <warning descr="Method invocation 's.hashCode()' may produce 'java.lang.NullPointerException'">s.hashCode()</warning>;
|
||||
final int i = s.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class X {
|
||||
|
||||
}
|
||||
void foo3(String d1, String d2) {
|
||||
if(d1 == null | <warning descr="Method invocation 'd1.compareTo(d2)' may produce 'java.lang.NullPointerException'">d1.compareTo(d2)</warning> > 0)
|
||||
if(d1 == null | d1.<warning descr="Method invocation 'compareTo' may produce 'java.lang.NullPointerException'">compareTo</warning>(d2) > 0)
|
||||
System.out.println("impossible");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ class Foo {
|
||||
if (data != null) {
|
||||
return;
|
||||
}
|
||||
System.out.println(<warning descr="Method invocation 'data.hashCode()' may produce 'java.lang.NullPointerException'">data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
System.out.println(data.hashCode());
|
||||
}
|
||||
|
||||
|
||||
@@ -20,17 +20,17 @@ class Foo {
|
||||
if (data != null) {
|
||||
return;
|
||||
}
|
||||
System.out.println(<warning descr="Method invocation 'data.hashCode()' may produce 'java.lang.NullPointerException'">data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
System.out.println(data.hashCode());
|
||||
}
|
||||
|
||||
void warnWhenNotCheckedOnce(Foo f) {
|
||||
System.out.println(<warning descr="Method invocation 'f.data.hashCode()' may produce 'java.lang.NullPointerException'">f.data.hashCode()</warning>);
|
||||
System.out.println(f.data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
System.out.println(f.data.hashCode());
|
||||
}
|
||||
|
||||
void warnWhenNotCheckedThisOnce() {
|
||||
System.out.println(<warning descr="Method invocation 'data.hashCode()' may produce 'java.lang.NullPointerException'">data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
System.out.println(data.hashCode());
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ class Foo {
|
||||
|
||||
void checkNotNullAndUse(Foo f) {
|
||||
if (f.data != null) {
|
||||
System.out.println(<warning descr="Method invocation 'f.data.hashCode()' may produce 'java.lang.NullPointerException'">f.data.hashCode()</warning>);
|
||||
System.out.println(f.data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,23 +13,23 @@ class Foo {
|
||||
if (f.data == null) {
|
||||
return;
|
||||
}
|
||||
System.out.println(<warning descr="Method invocation 'f.data.hashCode()' may produce 'java.lang.NullPointerException'">f.data.hashCode()</warning>);
|
||||
System.out.println(f.data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
|
||||
void warnWhenWrongCheck() {
|
||||
if (data != null) {
|
||||
return;
|
||||
}
|
||||
System.out.println(<warning descr="Method invocation 'data.hashCode()' may produce 'java.lang.NullPointerException'">data.hashCode()</warning>);
|
||||
System.out.println(<warning descr="Method invocation 'data.hashCode()' may produce 'java.lang.NullPointerException'">data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
|
||||
void warnWhenNotChecked(Foo f) {
|
||||
System.out.println(<warning descr="Method invocation 'f.data.hashCode()' may produce 'java.lang.NullPointerException'">f.data.hashCode()</warning>);
|
||||
System.out.println(f.data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
|
||||
void warnWhenNotCheckedThis() {
|
||||
System.out.println(<warning descr="Method invocation 'data.hashCode()' may produce 'java.lang.NullPointerException'">data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
|
||||
void dontWarnWhenDoubleChecked(Foo f) {
|
||||
@@ -39,7 +39,7 @@ class Foo {
|
||||
if (f.data == null) {
|
||||
return;
|
||||
}
|
||||
System.out.println(<warning descr="Method invocation 'f.data.hashCode()' may produce 'java.lang.NullPointerException'">f.data.hashCode()</warning>);
|
||||
System.out.println(f.data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
|
||||
void dontWarnWhenDoubleChecked_This_Synchronized() {
|
||||
@@ -51,18 +51,18 @@ class Foo {
|
||||
return;
|
||||
}
|
||||
}
|
||||
System.out.println(<warning>data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
|
||||
void dontWarnWhenDoubleChecked_This_WithMethodCall() {
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
System.out.println(<warning>data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
System.out.println(<warning>data.hashCode()</warning>);
|
||||
System.out.println(data.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -4,6 +4,6 @@ class DDD {
|
||||
@Nullable
|
||||
String field;
|
||||
int test() {
|
||||
return <warning descr="Method invocation 'new DDD().field.hashCode()' may produce 'java.lang.NullPointerException'">new DDD().field.hashCode()</warning>;
|
||||
return new DDD().field.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,19 +6,19 @@ import java.util.List;
|
||||
class Foo {
|
||||
void foo1(List<Integer> list) {
|
||||
for (@Nullable Integer i : list) {
|
||||
System.out.println(<warning descr="Method invocation 'i.intValue()' may produce 'java.lang.NullPointerException'">i.intValue()</warning>);
|
||||
System.out.println(i.<warning descr="Method invocation 'intValue' may produce 'java.lang.NullPointerException'">intValue</warning>());
|
||||
}
|
||||
}
|
||||
void foo2(List<@Nullable Integer> list) {
|
||||
for (@Nullable Integer i : list) {
|
||||
System.out.println(<warning descr="Method invocation 'i.intValue()' may produce 'java.lang.NullPointerException'">i.intValue()</warning>);
|
||||
System.out.println(i.<warning descr="Method invocation 'intValue' may produce 'java.lang.NullPointerException'">intValue</warning>());
|
||||
}
|
||||
}
|
||||
void foo3() {
|
||||
List<@Nullable String> list = new ArrayList<>();
|
||||
list.add(null);
|
||||
for (String s : list) {
|
||||
System.out.println(<warning descr="Method invocation 's.length()' may produce 'java.lang.NullPointerException'">s.length()</warning>);
|
||||
System.out.println(s.<warning descr="Method invocation 'length' may produce 'java.lang.NullPointerException'">length</warning>());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,15 +4,15 @@ class Test {
|
||||
Object o;
|
||||
|
||||
void field() {
|
||||
<warning descr="Method invocation 'o.hashCode()' may produce 'java.lang.NullPointerException'">o.hashCode()</warning>;
|
||||
o.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>();
|
||||
}
|
||||
|
||||
void parameter(Object o) {
|
||||
<warning descr="Method invocation 'o.hashCode()' may produce 'java.lang.NullPointerException'">o.hashCode()</warning>;
|
||||
o.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>();
|
||||
}
|
||||
|
||||
void callUnknownMethod() {
|
||||
<warning descr="Method invocation 'unknownObject().hashCode()' may produce 'java.lang.NullPointerException'">unknownObject().hashCode()</warning>;
|
||||
unknownObject().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>();
|
||||
}
|
||||
|
||||
void callNotNullMethod() {
|
||||
|
||||
@@ -26,7 +26,7 @@ class Impl1 extends SomeSuper {
|
||||
@Override
|
||||
public void run() {
|
||||
if (Impl1.this.o2 != null) {
|
||||
System.out.println(<warning descr="Method invocation 'Impl2.this.o2.hashCode()' may produce 'java.lang.NullPointerException'">Impl2.this.o2.hashCode()</warning>);
|
||||
System.out.println(Impl2.this.o2.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -20,7 +20,7 @@ class Test {
|
||||
|
||||
public void testDontReplaceQualifierWithNull(Object bar) {
|
||||
if (bar == null) {
|
||||
<warning descr="Method invocation 'bar.hashCode()' may produce 'java.lang.NullPointerException'">bar.hashCode()</warning>;
|
||||
bar.<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ class Test {
|
||||
|
||||
void m1() throws Exception {
|
||||
MyResourceProvider provider = null;
|
||||
try (MyResource r = <warning descr="Method invocation 'provider.getResource()' may produce 'java.lang.NullPointerException'">provider.getResource()</warning>) {
|
||||
try (MyResource r = provider.<warning descr="Method invocation 'getResource' may produce 'java.lang.NullPointerException'">getResource</warning>()) {
|
||||
System.out.println(r);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,6 @@ class Doo {
|
||||
|
||||
public void main(String[] args) {
|
||||
Object method = getMethod();
|
||||
System.out.println(<warning descr="Method invocation 'getMethod().hashCode()' may produce 'java.lang.NullPointerException'">getMethod().hashCode()</warning>);
|
||||
System.out.println(getMethod().<warning descr="Method invocation 'hashCode' may produce 'java.lang.NullPointerException'">hashCode</warning>());
|
||||
}
|
||||
}
|
||||
@@ -8,7 +8,7 @@ class Some {
|
||||
while (parent != null) {
|
||||
parent = parent.getParentFile();
|
||||
}
|
||||
System.out.println(<warning descr="Method invocation 'parent.getName()' may produce 'java.lang.NullPointerException'">parent.getName()</warning>);
|
||||
System.out.println(parent.<warning descr="Method invocation 'getName' may produce 'java.lang.NullPointerException'">getName</warning>());
|
||||
}
|
||||
System.out.println(file.getName());
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ class Test {
|
||||
|
||||
public void foo() {
|
||||
if (x != null) {
|
||||
System.out.println(<warning descr="Method invocation 'x.substring(1)' may produce 'java.lang.NullPointerException'">x.sub<caret>string(1)</warning>);
|
||||
System.out.println(x.<warning descr="Method invocation 'substring' may produce 'java.lang.NullPointerException'">subs<caret>tring</warning>(1));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
<problem>
|
||||
<file>Npe.java</file>
|
||||
<line>7</line>
|
||||
<description>Method invocation 'o.equals()' produce NullPointerException</description>
|
||||
<description>Method invocation 'equals' produce NullPointerException</description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<problem>
|
||||
<file>Test.java</file>
|
||||
<line>6</line>
|
||||
<description>'s.equals(s)' may produce NullPointerException</description>
|
||||
<description>'equals' may produce NullPointerException</description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user