From 4f6ea09d043a62b01204fd9d99e1849947b2fdf2 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 24 Mar 2015 16:27:44 +0100 Subject: [PATCH] dfa: when analyzing how fields are initialized in constructors, do it only for java code --- .../com/intellij/codeInspection/dataFlow/DfaPsiUtil.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java index 6d223ef16bd4..090d1389c8d1 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DfaPsiUtil.java @@ -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 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>() { @Nullable @Override @@ -200,6 +204,7 @@ public class DfaPsiUtil { private static MultiMap 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);