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 256a108de1a..251f9ba77bf 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 @@ -218,9 +218,7 @@ class ExpectedInfos( expectedInfos.add(ArgumentExpectedInfo(varargElementType, expectedName?.unpluralize(), varargTail, descriptor, argumentPosition)) } - if (argumentIndex == parameters.indexOf(parameter)) { - expectedInfos.add(ArgumentExpectedInfo(parameter.getType(), expectedName, varargTail, descriptor, argumentPosition, starOptions)) - } + expectedInfos.add(ArgumentExpectedInfo(parameter.getType(), expectedName, varargTail, descriptor, argumentPosition, starOptions)) } else { if (!alreadyHasStar) { diff --git a/idea/idea-completion/testData/handlers/smart/AfterVararg.kt b/idea/idea-completion/testData/handlers/smart/AfterVararg.kt index 342e400147a..0e75448a16a 100644 --- a/idea/idea-completion/testData/handlers/smart/AfterVararg.kt +++ b/idea/idea-completion/testData/handlers/smart/AfterVararg.kt @@ -1,7 +1,7 @@ fun foo(vararg v: Int, s: String) { } -fun bar(s: String) { +fun bar(i: Int) { foo(*intArrayOf(), ) } -// ELEMENT: s +// ELEMENT: i diff --git a/idea/idea-completion/testData/handlers/smart/AfterVararg.kt.after b/idea/idea-completion/testData/handlers/smart/AfterVararg.kt.after index 2cba1771e52..004cc223114 100644 --- a/idea/idea-completion/testData/handlers/smart/AfterVararg.kt.after +++ b/idea/idea-completion/testData/handlers/smart/AfterVararg.kt.after @@ -1,7 +1,7 @@ fun foo(vararg v: Int, s: String) { } -fun bar(s: String) { - foo(*intArrayOf(), s) +fun bar(i: Int) { + foo(*intArrayOf(), i, ) } -// ELEMENT: s +// ELEMENT: i diff --git a/idea/idea-completion/testData/handlers/smart/SecondVararg.kt b/idea/idea-completion/testData/handlers/smart/SecondVararg.kt index 58d50c16b23..c303070059c 100644 --- a/idea/idea-completion/testData/handlers/smart/SecondVararg.kt +++ b/idea/idea-completion/testData/handlers/smart/SecondVararg.kt @@ -1,7 +1,7 @@ fun foo(vararg v1: Int, vararg v2: Char, s: String) { } -fun bar(c: Char) { +fun bar(i: Int) { foo(*intArrayOf(), ) } -// ELEMENT: c +// ELEMENT: i diff --git a/idea/idea-completion/testData/handlers/smart/SecondVararg.kt.after b/idea/idea-completion/testData/handlers/smart/SecondVararg.kt.after index 3692e050b74..3be0942fd6b 100644 --- a/idea/idea-completion/testData/handlers/smart/SecondVararg.kt.after +++ b/idea/idea-completion/testData/handlers/smart/SecondVararg.kt.after @@ -1,7 +1,7 @@ fun foo(vararg v1: Int, vararg v2: Char, s: String) { } -fun bar(c: Char) { - foo(*intArrayOf(), c, ) +fun bar(i: Int) { + foo(*intArrayOf(), i, ) } -// ELEMENT: c +// ELEMENT: i diff --git a/idea/idea-completion/testData/smart/vararg/2.kt b/idea/idea-completion/testData/smart/vararg/2.kt index bc83ac034c5..20b6184f12f 100644 --- a/idea/idea-completion/testData/smart/vararg/2.kt +++ b/idea/idea-completion/testData/smart/vararg/2.kt @@ -5,5 +5,5 @@ fun bar(s: String, arr: Array){ } // EXIST: s -// ABSENT: arr -// ABSENT: *arr +// ABSENT: { itemText: "arr" } +// EXIST: { lookupString: "arr", itemText: "*arr" } diff --git a/idea/idea-completion/testData/smart/vararg/SecondVararg.kt b/idea/idea-completion/testData/smart/vararg/SecondVararg.kt index 064c7e5466d..29128135c3e 100644 --- a/idea/idea-completion/testData/smart/vararg/SecondVararg.kt +++ b/idea/idea-completion/testData/smart/vararg/SecondVararg.kt @@ -4,6 +4,7 @@ fun bar(c: Char, pInt: Int) { foo(*intArrayOf(), ) } -// EXIST: c -// ABSENT: pInt -// EXIST: { lookupString: "charArrayOf", itemText: "*charArrayOf" } +// ABSENT: c +// ABSENT: { lookupString: "charArrayOf", itemText: "*charArrayOf" } +// EXIST: pInt +// EXIST: { lookupString: "intArrayOf", itemText: "*intArrayOf" } diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt index dcdd0c3d561..f7cc0a32b41 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/Utils.kt @@ -54,7 +54,7 @@ public fun Call.mapArgumentsToParameters(targetDescriptor: CallableDescriptor): val parameter = parameters[positionalArgumentIndex] map[argument] = parameter - if (parameter.getVarargElementType() == null || argument.getSpreadElement() != null) { + if (parameter.getVarargElementType() == null) { positionalArgumentIndex++ } }