From 4db99cd17aafd97c57589f9f86832b7d7702c92f Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 2 Jan 2019 15:07:48 +0700 Subject: [PATCH] ObviousNullCheck: exclude constructors --- .../codeInspection/ObviousNullCheckInspection.java | 2 +- .../inspection/obviousNotNull/ObviousNullCheck.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/java/java-impl/src/com/intellij/codeInspection/ObviousNullCheckInspection.java b/java/java-impl/src/com/intellij/codeInspection/ObviousNullCheckInspection.java index d9a93aee7187..447288d0bd95 100644 --- a/java/java-impl/src/com/intellij/codeInspection/ObviousNullCheckInspection.java +++ b/java/java-impl/src/com/intellij/codeInspection/ObviousNullCheckInspection.java @@ -80,7 +80,7 @@ public class ObviousNullCheckInspection extends AbstractBaseJavaLocalInspectionT @Nullable static NullCheckParameter fromCall(PsiMethodCallExpression call) { PsiMethod method = call.resolveMethod(); - if (method == null) return null; + if (method == null || method.isConstructor()) return null; if (!JavaMethodContractUtil.isPure(method)) return null; List contracts = JavaMethodContractUtil.getMethodCallContracts(method, call); if (contracts.isEmpty() || contracts.size() > 2) return null; diff --git a/java/java-tests/testData/inspection/obviousNotNull/ObviousNullCheck.java b/java/java-tests/testData/inspection/obviousNotNull/ObviousNullCheck.java index 1f8ecde0544d..53f3708f17cf 100644 --- a/java/java-tests/testData/inspection/obviousNotNull/ObviousNullCheck.java +++ b/java/java-tests/testData/inspection/obviousNotNull/ObviousNullCheck.java @@ -53,4 +53,17 @@ abstract class ObviousNullCheck { if(str == null) throw new IllegalArgumentException(); return str; } + + class X { + private String foo; + + X(String f) { + if(f == null) throw new NullPointerException(); + this.foo = f; + } + + X() { + this(""); + } + } } \ No newline at end of file