From 8c13a7680528019fdb6c183beaddf3325906edae Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 25 Jul 2014 19:56:54 +0400 Subject: [PATCH] KT-5527 Double TYPE_MISMATCH diagnostic when returns object #KT-5527 Fixed --- .../resolve/calls/CallExpressionResolver.java | 2 +- .../diagnostics/tests/objects/kt5527.kt | 19 +++++++++++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 5 +++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/objects/kt5527.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java index ea39cf69257..c39ada023e2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallExpressionResolver.java @@ -83,7 +83,7 @@ public class CallExpressionResolver { context.trace.record(REFERENCE_TARGET, expression, classifier); JetType result = getExtendedClassObjectType(expression, classObjectType, classifier, context); checkClassObjectVisibility(classifier, expression, context); - return DataFlowUtils.checkType(result, expression, context); + return result; } } JetType[] result = new JetType[1]; diff --git a/compiler/testData/diagnostics/tests/objects/kt5527.kt b/compiler/testData/diagnostics/tests/objects/kt5527.kt new file mode 100644 index 00000000000..6b5ba7195b6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/objects/kt5527.kt @@ -0,0 +1,19 @@ +// !DIAGNOSTICS: -UNUSED_VARIABLE + +object Boo {} +class A { + object Boo {} +} + +fun foo() { + val i1: Int = Boo + val i2: Int = A.Boo + useInt(Boo) + useInt(A.Boo) +} +fun bar() { + val i1: Int = Unit + useInt(Unit) +} + +fun useInt(i: Int) = i diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index 70da74444b7..ad4f9eba082 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -5856,6 +5856,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest { doTest("compiler/testData/diagnostics/tests/objects/kt2240.kt"); } + @TestMetadata("kt5527.kt") + public void testKt5527() throws Exception { + doTest("compiler/testData/diagnostics/tests/objects/kt5527.kt"); + } + @TestMetadata("objectLiteralExpressionTypeMismatch.kt") public void testObjectLiteralExpressionTypeMismatch() throws Exception { doTest("compiler/testData/diagnostics/tests/objects/objectLiteralExpressionTypeMismatch.kt");