new inference: ensure that dependant vars are resolved before (IDEA-124190)

This commit is contained in:
Anna Kozlova
2014-08-11 15:43:44 +04:00
parent 74244c71de
commit 043299ef98
2 changed files with 5 additions and 4 deletions
@@ -837,11 +837,14 @@ public class InferenceSession {
final Set<ConstraintFormula> subset = buildSubset(additionalConstraints);
//collect all input variables of selection
final Set<InferenceVariable> varsToResolve = new HashSet<InferenceVariable>();
final Set<InferenceVariable> varsToResolve = new LinkedHashSet<InferenceVariable>();
for (ConstraintFormula formula : subset) {
if (formula instanceof InputOutputConstraintFormula) {
final Set<InferenceVariable> inputVariables = ((InputOutputConstraintFormula)formula).getInputVariables(this);
if (inputVariables != null) {
for (InferenceVariable inputVariable : inputVariables) {
varsToResolve.addAll(inputVariable.getDependencies(this));
}
varsToResolve.addAll(inputVariables);
}
}
@@ -62,8 +62,6 @@ public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testIDEA120992() { doTest(); }
public void testTargetTypeConflictResolverShouldNotTryToEvaluateCurrentArgumentType() { doTest(); }
public void testIDEA119535() { doTest(); }
@Bombed(day = 20, month = Calendar.AUGUST)
public void testIDEA119003() { doTest(); }
public void testIDEA125674() { doTest(); }
public void testIDEA117124() { doTest(); }
@@ -79,6 +77,7 @@ public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testIDEA122700() { doTest(); }
public void testIDEA122406() { doTest(); }
public void testNestedCallsInsideLambdaReturnExpression() { doTest(); }
@Bombed(day = 20, month = Calendar.AUGUST)
public void testIDEA123731() { doTest(); }
public void testIDEA123869() { doTest(); }
public void testIDEA123848() { doTest(); }
@@ -108,7 +107,6 @@ public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase {
doTest();
}
@Bombed(day = 20, month = Calendar.AUGUST)
public void testIDEA124190() throws Exception {
doTest();
}