diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 1eaf5cf1162..7d09caaebea 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -1075,9 +1075,12 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { @Nullable JetExpression right, @NotNull ExpressionTypingContext context ) { - if (right == null) return JetTypeInfo.create(null, context.dataFlowInfo); - ExpressionTypingContext contextWithNoExpectedType = context.replaceExpectedType(NO_EXPECTED_TYPE); + if (right == null) { + if (left != null) facade.getTypeInfo(left, contextWithNoExpectedType); + return JetTypeInfo.create(null, context.dataFlowInfo); + } + DataFlowInfo dataFlowInfo = facade.getTypeInfo(right, contextWithNoExpectedType).getDataFlowInfo(); ExpressionReceiver receiver = safeGetExpressionReceiver(facade, right, contextWithNoExpectedType); diff --git a/compiler/testData/diagnostics/tests/incompleteCode/inExpr.kt b/compiler/testData/diagnostics/tests/incompleteCode/inExpr.kt new file mode 100644 index 00000000000..c40646cbb25 --- /dev/null +++ b/compiler/testData/diagnostics/tests/incompleteCode/inExpr.kt @@ -0,0 +1,5 @@ +package l + +fun test(a: Int) { + if (a in ) {} //a is not unresolved +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 6bb36aa4d4f..b2823adcdeb 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -2582,6 +2582,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/incompleteCode/checkNothingIsSubtype.kt"); } + @TestMetadata("inExpr.kt") + public void testInExpr() throws Exception { + doTest("compiler/testData/diagnostics/tests/incompleteCode/inExpr.kt"); + } + @TestMetadata("incompleteAssignment.kt") public void testIncompleteAssignment() throws Exception { doTest("compiler/testData/diagnostics/tests/incompleteCode/incompleteAssignment.kt");