KT-4372 Invalid error position and failing to resolve invoke with receiver from other module #KT-4372 Fixed

This commit is contained in:
Svetlana Isakova
2014-01-13 19:05:21 +04:00
parent e95e505b5d
commit 8868da8c5f
3 changed files with 28 additions and 4 deletions
@@ -101,10 +101,7 @@ public class VariableAsFunctionResolvedCall implements ResolvedCallWithTrace<Fun
@NotNull
@Override
public ResolutionStatus getStatus() {
if (variableCall.getStatus() == ResolutionStatus.SUCCESS) {
return functionCall.getStatus();
}
return variableCall.getStatus();
return variableCall.getStatus().combine(functionCall.getStatus());
}
@Override
@@ -0,0 +1,22 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
//KT-4372 Invalid error position and failing to resolve invoke with receiver from other module
class Foo<TInner, TOuter> {
fun invoke(content: TInner.() -> Unit) {
}
}
// comment this function to fix the error below
fun <TInner, TOuter> Foo<TInner, TOuter>.invoke(name: String, content: TInner.() -> Unit) {}
enum class EnumClass(val x: String) {}
object Y {
val x = javaClass<EnumClass>() // javaClass unresolved in any file in this module
}
//declarations from library
val <T> T.javaClass : Class<T>
get() = throw Exception()
fun <reified T> javaClass() : Class<T> = throw Exception()
@@ -5953,6 +5953,11 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest("compiler/testData/diagnostics/tests/resolve/invoke/invokeAsMemberExtensionToExplicitReceiver.kt");
}
@TestMetadata("KT-4372.kt")
public void testKT_4372() throws Exception {
doTest("compiler/testData/diagnostics/tests/resolve/invoke/KT-4372.kt");
}
@TestMetadata("kt3772.kt")
public void testKt3772() throws Exception {
doTest("compiler/testData/diagnostics/tests/resolve/invoke/kt3772.kt");