From 8868da8c5f4f6af40cdc1379c82186613beb0067 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Mon, 13 Jan 2014 19:05:21 +0400 Subject: [PATCH] KT-4372 Invalid error position and failing to resolve invoke with receiver from other module #KT-4372 Fixed --- .../model/VariableAsFunctionResolvedCall.java | 5 +---- .../tests/resolve/invoke/KT-4372.kt | 22 +++++++++++++++++++ .../checkers/JetDiagnosticsTestGenerated.java | 5 +++++ 3 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/resolve/invoke/KT-4372.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/VariableAsFunctionResolvedCall.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/VariableAsFunctionResolvedCall.java index 92c1d02fad6..7f526c091a7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/VariableAsFunctionResolvedCall.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/VariableAsFunctionResolvedCall.java @@ -101,10 +101,7 @@ public class VariableAsFunctionResolvedCall implements ResolvedCallWithTrace { + fun invoke(content: TInner.() -> Unit) { + } +} + +// comment this function to fix the error below +fun Foo.invoke(name: String, content: TInner.() -> Unit) {} + +enum class EnumClass(val x: String) {} +object Y { + val x = javaClass() // javaClass unresolved in any file in this module +} + +//declarations from library +val T.javaClass : Class + get() = throw Exception() + +fun javaClass() : Class = throw Exception() diff --git a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java index e50e8cac752..7f6ff10850d 100644 --- a/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/jet/checkers/JetDiagnosticsTestGenerated.java @@ -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");