From 671b9f5d5629f811de1800650eff5059fbcddd67 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 13 Aug 2015 15:02:42 +0300 Subject: [PATCH] Finally fixed KT-8751 --- .../org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt | 2 +- .../testData/smartMultiFile/KT_8751_2/JavaClass.java | 6 ++++++ .../testData/smartMultiFile/KT_8751_2/KT_8751_2.kt | 8 ++++++++ .../test/MultiFileSmartCompletionTestGenerated.java | 6 ++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 idea/idea-completion/testData/smartMultiFile/KT_8751_2/JavaClass.java create mode 100644 idea/idea-completion/testData/smartMultiFile/KT_8751_2/KT_8751_2.kt diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt index e4443fdaf95..f2d8985e22c 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ExpectedInfos.kt @@ -266,8 +266,8 @@ class ExpectedInfos( //TODO: we can loose partially inferred substitution here but what to do? if (parameter.type.containsError()) { - parameter = parameter.original descriptor = descriptor.original + parameter = descriptor.valueParameters[parameter.index] argumentToParameter = call.mapArgumentsToParameters(descriptor) } diff --git a/idea/idea-completion/testData/smartMultiFile/KT_8751_2/JavaClass.java b/idea/idea-completion/testData/smartMultiFile/KT_8751_2/JavaClass.java new file mode 100644 index 00000000000..f175639d34e --- /dev/null +++ b/idea/idea-completion/testData/smartMultiFile/KT_8751_2/JavaClass.java @@ -0,0 +1,6 @@ +class L {} + +class JavaClass { + void foo(L l) {} +} + diff --git a/idea/idea-completion/testData/smartMultiFile/KT_8751_2/KT_8751_2.kt b/idea/idea-completion/testData/smartMultiFile/KT_8751_2/KT_8751_2.kt new file mode 100644 index 00000000000..f28035288c9 --- /dev/null +++ b/idea/idea-completion/testData/smartMultiFile/KT_8751_2/KT_8751_2.kt @@ -0,0 +1,8 @@ +class KotlinClass : JavaClass(){ +} + +fun foo(c: KotlinClass, l: L) { + c.foo() +} + +// EXIST: l diff --git a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java index dbb69a462f9..08e46fd8129 100644 --- a/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java +++ b/idea/idea-completion/tests/org/jetbrains/kotlin/idea/completion/test/MultiFileSmartCompletionTestGenerated.java @@ -107,6 +107,12 @@ public class MultiFileSmartCompletionTestGenerated extends AbstractMultiFileSmar doTest(fileName); } + @TestMetadata("KT_8751_2") + public void testKT_8751_2() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smartMultiFile/KT_8751_2/"); + doTest(fileName); + } + @TestMetadata("NoObjectDuplication") public void testNoObjectDuplication() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/smartMultiFile/NoObjectDuplication/");