diff options
Diffstat (limited to 'java/java-psi-api/src')
-rw-r--r-- | java/java-psi-api/src/com/intellij/psi/util/IsConstantExpressionVisitor.java | 5 | ||||
-rw-r--r-- | java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/java/java-psi-api/src/com/intellij/psi/util/IsConstantExpressionVisitor.java b/java/java-psi-api/src/com/intellij/psi/util/IsConstantExpressionVisitor.java index bbed9e3d747d..531edd732fae 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/IsConstantExpressionVisitor.java +++ b/java/java-psi-api/src/com/intellij/psi/util/IsConstantExpressionVisitor.java @@ -87,6 +87,11 @@ public class IsConstantExpressionVisitor extends JavaElementVisitor { for (PsiExpression operand : expression.getOperands()) { operand.accept(this); if (!myIsConstant) return; + final PsiType type = operand.getType(); + if (type != null && !(type instanceof PsiPrimitiveType) && !type.equalsToText(CommonClassNames.JAVA_LANG_STRING)) { + myIsConstant = false; + return; + } } } diff --git a/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java b/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java index cbe98a7590ab..5696b8ba0d63 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java +++ b/java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java @@ -154,6 +154,9 @@ public class TypesDistinctProver { PsiType type2, PsiClass boundClass1, PsiClass boundClass2) { + if (boundClass1 == null || boundClass2 == null) { + return false; + } if (boundClass1.isInterface() && boundClass2.isInterface()) return false; if (boundClass1.isInterface()) { return !(boundClass2.hasModifierProperty(PsiModifier.FINAL) ? InheritanceUtil.isInheritorOrSelf(boundClass2, boundClass1, true) : true); |