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 c8664e3b4a2..0ae1c5924ea 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 @@ -208,11 +208,13 @@ class ExpectedInfos( if (isFunctionLiteralArgument) continue if (argumentName == null) { - expectedInfos.add(ArgumentExpectedInfo(varargElementType, expectedName?.unpluralize(), - if (tail == Tail.RPARENTH) null else tail, descriptor, argumentPosition)) + // even if it's the last parameter, there can be more arguments for the same parameter + val varargTail = if (tail == Tail.RPARENTH) null else tail + + expectedInfos.add(ArgumentExpectedInfo(varargElementType, expectedName?.unpluralize(), varargTail, descriptor, argumentPosition)) if (argumentIndex == parameters.indexOf(parameter)) { - expectedInfos.add(ArgumentExpectedInfo(parameter.getType(), expectedName, tail, descriptor, argumentPosition, ItemOptions.STAR_PREFIX)) + expectedInfos.add(ArgumentExpectedInfo(parameter.getType(), expectedName, varargTail, descriptor, argumentPosition, ItemOptions.STAR_PREFIX)) } } else { diff --git a/idea/idea-completion/testData/handlers/smart/Vararg4.kt.after b/idea/idea-completion/testData/handlers/smart/Vararg4.kt.after index 144977eeb68..233b118db46 100644 --- a/idea/idea-completion/testData/handlers/smart/Vararg4.kt.after +++ b/idea/idea-completion/testData/handlers/smart/Vararg4.kt.after @@ -1,7 +1,7 @@ fun foo(vararg strings: String){ } fun bar(arr: Array){ - foo(*arr) + foo(*arr) } // ELEMENT: arr diff --git a/idea/idea-completion/testData/handlers/smart/Vararg5.kt.after b/idea/idea-completion/testData/handlers/smart/Vararg5.kt.after index 90c701b0c71..d8a0b113814 100644 --- a/idea/idea-completion/testData/handlers/smart/Vararg5.kt.after +++ b/idea/idea-completion/testData/handlers/smart/Vararg5.kt.after @@ -1,7 +1,7 @@ fun foo(vararg strings: String){ } fun bar(list: List){ - foo(*list.toTypedArray()) + foo(*list.toTypedArray()) } // ELEMENT: toTypedArray