diff options
Diffstat (limited to 'java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaVariableValue.java')
-rw-r--r-- | java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaVariableValue.java | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaVariableValue.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaVariableValue.java index e522b8fb2c6f..fa2217a2918b 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaVariableValue.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaVariableValue.java @@ -30,6 +30,7 @@ import com.intellij.codeInspection.dataFlow.Nullness; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Trinity; import com.intellij.psi.*; +import com.intellij.psi.util.TypeConversionUtil; import com.intellij.util.SmartList; import com.intellij.util.containers.MultiMap; import org.jetbrains.annotations.NotNull; @@ -90,7 +91,7 @@ public class DfaVariableValue extends DfaValue { myIsNegated = isNegated; myQualifier = qualifier; myVarType = varType; - myTypeValue = varType == null ? null : myFactory.getTypeFactory().createTypeValue(varType, Nullness.UNKNOWN); + myTypeValue = varType == null ? null : (DfaTypeValue)myFactory.createTypeValue(varType, Nullness.UNKNOWN); } @Nullable @@ -132,7 +133,7 @@ public class DfaVariableValue extends DfaValue { private boolean hardEquals(PsiModifierListOwner psiVar, PsiType varType, boolean negated, DfaVariableValue qualifier) { return psiVar == myVariable && - Comparing.equal(varType, myVarType) && + Comparing.equal(TypeConversionUtil.erasure(varType), TypeConversionUtil.erasure(myVarType)) && negated == myIsNegated && (myQualifier == null ? qualifier == null : myQualifier.hardEquals(qualifier.getPsiVariable(), qualifier.getVariableType(), qualifier.isNegated(), qualifier.getQualifier())); @@ -143,10 +144,6 @@ public class DfaVariableValue extends DfaValue { return myQualifier; } - public boolean isViaMethods() { - return myVariable instanceof PsiMethod || myQualifier != null && myQualifier.isViaMethods(); - } - public Nullness getInherentNullability() { if (myInherentNullability != null) { return myInherentNullability; @@ -190,14 +187,12 @@ public class DfaVariableValue extends DfaValue { return Nullness.UNKNOWN; } - public boolean isLocalVariable() { - return myVariable instanceof PsiLocalVariable || myVariable instanceof PsiParameter; - } - public boolean isFlushableByCalls() { - if (isLocalVariable()) return false; - if (!myVariable.hasModifierProperty(PsiModifier.FINAL)) return true; - return myQualifier != null && myQualifier.isFlushableByCalls(); + if (myVariable instanceof PsiLocalVariable || myVariable instanceof PsiParameter) return false; + if (myVariable instanceof PsiVariable && myVariable.hasModifierProperty(PsiModifier.FINAL)) { + return myQualifier != null && myQualifier.isFlushableByCalls(); + } + return true; } } |