mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Objects.requireNotNull(,Supplier) is not pure
This commit is contained in:
+1
-1
@@ -67,7 +67,7 @@ public class InferredAnnotationsManagerImpl extends InferredAnnotationsManager {
|
||||
|
||||
private PsiAnnotation getHardcodedContractAnnotation(PsiMethod method) {
|
||||
List<MethodContract> contracts = HardcodedContracts.getHardcodedContracts(method, null);
|
||||
return contracts.isEmpty() ? null : createContractAnnotation(contracts, !"java.lang.System.exit".equals(PsiUtil.getMemberQualifiedName(method)));
|
||||
return contracts.isEmpty() ? null : createContractAnnotation(contracts, HardcodedContracts.isHardcodedPure(method));
|
||||
}
|
||||
|
||||
private static boolean ignoreBytecodeInference(PsiModifierListOwner owner, String annotationFQN) {
|
||||
|
||||
+18
-4
@@ -15,10 +15,8 @@
|
||||
*/
|
||||
package com.intellij.codeInspection.dataFlow;
|
||||
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiMethodCallExpression;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -150,4 +148,20 @@ public class HardcodedContracts {
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public static boolean isHardcodedPure(PsiMethod method) {
|
||||
String qName = PsiUtil.getMemberQualifiedName(method);
|
||||
if ("java.lang.System.exit".equals(qName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ("java.util.Objects.requireNonNull".equals(qName)) {
|
||||
PsiParameter[] parameters = method.getParameterList().getParameters();
|
||||
if (parameters.length == 2 && parameters[1].getType().getCanonicalText().contains("Supplier")) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user