summaryrefslogtreecommitdiff
path: root/java/java-psi-api/src
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-psi-api/src')
-rw-r--r--java/java-psi-api/src/com/intellij/psi/util/IsConstantExpressionVisitor.java5
-rw-r--r--java/java-psi-api/src/com/intellij/psi/util/TypesDistinctProver.java3
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);