diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java index b7f34fefa9e8..153e8fd6ae56 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/ExpressionCompatibilityConstraint.java @@ -50,7 +50,7 @@ public class ExpressionCompatibilityConstraint extends InputOutputConstraintForm } final PsiType exprType = myExpression.getType(); - if (exprType != null && !exprType.equals(PsiType.NULL)) { + if (exprType != null) { constraints.add(new TypeCompatibilityConstraint(myT, exprType)); } return true; diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/StrictSubtypingConstraint.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/StrictSubtypingConstraint.java index d9d076c9f5d7..d23bdaef1b91 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/StrictSubtypingConstraint.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/graphInference/constraints/StrictSubtypingConstraint.java @@ -49,6 +49,10 @@ public class StrictSubtypingConstraint implements ConstraintFormula { if (myS == null) return myT.equalsToText(CommonClassNames.JAVA_LANG_OBJECT); return TypeConversionUtil.isAssignable(myT, myS); } + + if (PsiType.NULL.equals(myS)) return true; + if (PsiType.NULL.equals(myT)) return false; + InferenceVariable inferenceVariable = session.getInferenceVariable(myS); if (inferenceVariable != null) { inferenceVariable.addBound(myT, InferenceBound.UPPER); @@ -108,7 +112,6 @@ public class StrictSubtypingConstraint implements ConstraintFormula { return true; } - if (PsiType.NULL.equals(myT)) return false; return true; }