From 142d9a090c4a30c8bd35c6a869a58c13f6fece13 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 9 Jan 2013 17:19:03 +0400 Subject: [PATCH] no senseless comparison for error type --- .../types/expressions/BasicExpressionTypingVisitor.java | 2 ++ .../incompleteCode/NoSenselessComparisonForErrorType.kt | 8 ++++++++ .../jet/checkers/JetDiagnosticsTestGenerated.java | 5 +++++ 3 files changed, 15 insertions(+) create mode 100644 compiler/testData/diagnostics/tests/incompleteCode/NoSenselessComparisonForErrorType.kt 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 57ab33985d7..45f6845c811 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 @@ -1251,6 +1251,8 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { JetSimpleNameExpression operationSign = expression.getOperationReference(); JetType type = facade.getTypeInfo(expr, context).getType(); + if (type == null || ErrorUtils.isErrorType(type)) return; + DataFlowValue value = DataFlowValueFactory.INSTANCE.createDataFlowValue(expr, type, context.trace.getBindingContext()); Nullability nullability = context.dataFlowInfo.getNullability(value); diff --git a/compiler/testData/diagnostics/tests/incompleteCode/NoSenselessComparisonForErrorType.kt b/compiler/testData/diagnostics/tests/incompleteCode/NoSenselessComparisonForErrorType.kt new file mode 100644 index 00000000000..715a39b2ef9 --- /dev/null +++ b/compiler/testData/diagnostics/tests/incompleteCode/NoSenselessComparisonForErrorType.kt @@ -0,0 +1,8 @@ +package a + +fun foo() { + val a = getErrorType() + if (a == null) { //no senseless comparison + + } +} \ 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 6037af763e1..69c3ef8d7f8 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -1893,6 +1893,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage doTest("compiler/testData/diagnostics/tests/incompleteCode/kt2014.kt"); } + @TestMetadata("NoSenselessComparisonForErrorType.kt") + public void testNoSenselessComparisonForErrorType() throws Exception { + doTest("compiler/testData/diagnostics/tests/incompleteCode/NoSenselessComparisonForErrorType.kt"); + } + @TestMetadata("plusOnTheRight.kt") public void testPlusOnTheRight() throws Exception { doTest("compiler/testData/diagnostics/tests/incompleteCode/plusOnTheRight.kt");