From 2c85d0fee4d06f551ad6d1e9bd9fbeb401d0291b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 4 Feb 2014 13:12:23 +0400 Subject: [PATCH] new inference: decide about NULL type later (JDK-8033407) --- .../constraints/ExpressionCompatibilityConstraint.java | 2 +- .../constraints/StrictSubtypingConstraint.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) 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; }