KT-5527 Double TYPE_MISMATCH diagnostic when returns object

#KT-5527 Fixed
This commit is contained in:
Svetlana Isakova
2014-07-25 19:56:54 +04:00
parent 485f63e1cd
commit 8c13a76805
3 changed files with 25 additions and 1 deletions
@@ -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];
@@ -0,0 +1,19 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
object Boo {}
class A {
object Boo {}
}
fun foo() {
val i1: Int = <!TYPE_MISMATCH!>Boo<!>
val i2: Int = <!TYPE_MISMATCH!>A.Boo<!>
useInt(<!TYPE_MISMATCH!>Boo<!>)
useInt(<!TYPE_MISMATCH!>A.Boo<!>)
}
fun bar() {
val i1: Int = <!TYPE_MISMATCH!>Unit<!>
useInt(<!TYPE_MISMATCH!>Unit<!>)
}
fun useInt(i: Int) = i
@@ -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");