ObviousNullCheck: exclude constructors

This commit is contained in:
Tagir Valeev
2019-01-04 16:23:48 +07:00
parent 8a6f1cb404
commit 4db99cd17a
2 changed files with 14 additions and 1 deletions
@@ -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<? extends MethodContract> contracts = JavaMethodContractUtil.getMethodCallContracts(method, call);
if (contracts.isEmpty() || contracts.size() > 2) return null;
@@ -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("");
}
}
}