mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
dfa: when analyzing how fields are initialized in constructors, do it only for java code
This commit is contained in:
@@ -20,6 +20,7 @@ import com.intellij.codeInspection.dataFlow.instructions.Instruction;
|
||||
import com.intellij.codeInspection.dataFlow.instructions.MethodCallInstruction;
|
||||
import com.intellij.codeInspection.dataFlow.instructions.ReturnInstruction;
|
||||
import com.intellij.codeInspection.dataFlow.value.DfaValueFactory;
|
||||
import com.intellij.lang.java.JavaLanguage;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
@@ -113,8 +114,11 @@ public class DfaPsiUtil {
|
||||
}
|
||||
|
||||
private static Set<PsiField> getNotNullInitializedFields(final PsiMethod constructor, final PsiClass containingClass) {
|
||||
if (!constructor.getLanguage().isKindOf(JavaLanguage.INSTANCE)) return Collections.emptySet();
|
||||
|
||||
final PsiCodeBlock body = constructor.getBody();
|
||||
if (body == null) return Collections.emptySet();
|
||||
|
||||
return CachedValuesManager.getCachedValue(constructor, new CachedValueProvider<Set<PsiField>>() {
|
||||
@Nullable
|
||||
@Override
|
||||
@@ -200,6 +204,7 @@ public class DfaPsiUtil {
|
||||
|
||||
private static MultiMap<PsiField, PsiExpression> getAllConstructorFieldInitializers(final PsiClass psiClass) {
|
||||
if (psiClass instanceof PsiCompiledElement) {
|
||||
//noinspection unchecked
|
||||
return MultiMap.EMPTY;
|
||||
}
|
||||
|
||||
@@ -231,7 +236,9 @@ public class DfaPsiUtil {
|
||||
};
|
||||
|
||||
for (PsiMethod constructor : psiClass.getConstructors()) {
|
||||
constructor.accept(visitor);
|
||||
if (constructor.getLanguage().isKindOf(JavaLanguage.INSTANCE)) {
|
||||
constructor.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
||||
return Result.create(result, psiClass);
|
||||
|
||||
Reference in New Issue
Block a user