diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml
index e4adcf6a73e..36a66193669 100644
--- a/idea/src/META-INF/plugin.xml
+++ b/idea/src/META-INF/plugin.xml
@@ -487,6 +487,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/META-INF/plugin.xml.173 b/idea/src/META-INF/plugin.xml.173
index ef57f167363..c5f3a12a417 100644
--- a/idea/src/META-INF/plugin.xml.173
+++ b/idea/src/META-INF/plugin.xml.173
@@ -485,6 +485,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/META-INF/plugin.xml.181 b/idea/src/META-INF/plugin.xml.181
index f233c1519be..7b3ef30d99a 100644
--- a/idea/src/META-INF/plugin.xml.181
+++ b/idea/src/META-INF/plugin.xml.181
@@ -486,6 +486,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/META-INF/plugin.xml.183 b/idea/src/META-INF/plugin.xml.183
index 6a2396ddc01..590bd56aeda 100644
--- a/idea/src/META-INF/plugin.xml.183
+++ b/idea/src/META-INF/plugin.xml.183
@@ -487,6 +487,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/META-INF/plugin.xml.as31 b/idea/src/META-INF/plugin.xml.as31
index 93293e4ee17..a6dc1c5f98e 100644
--- a/idea/src/META-INF/plugin.xml.as31
+++ b/idea/src/META-INF/plugin.xml.as31
@@ -485,6 +485,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/META-INF/plugin.xml.as32 b/idea/src/META-INF/plugin.xml.as32
index 67144998e85..e998f2fe741 100644
--- a/idea/src/META-INF/plugin.xml.as32
+++ b/idea/src/META-INF/plugin.xml.as32
@@ -485,6 +485,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/META-INF/plugin.xml.as33 b/idea/src/META-INF/plugin.xml.as33
index fb092ec85c4..b5f9d144c23 100644
--- a/idea/src/META-INF/plugin.xml.as33
+++ b/idea/src/META-INF/plugin.xml.as33
@@ -486,6 +486,7 @@ The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
+
diff --git a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt
index 915ff3aaa73..2276540fc3a 100644
--- a/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt
+++ b/idea/src/org/jetbrains/kotlin/idea/parameterInfo/KotlinFunctionParameterInfoHandler.kt
@@ -65,6 +65,20 @@ class KotlinFunctionParameterInfoHandler : KotlinParameterInfoWithCallHandlerBas
override fun getArgumentListAllowedParentClasses() = setOf(KtCallElement::class.java)
}
+class KotlinLambdaParameterInfoHandler :
+ KotlinParameterInfoWithCallHandlerBase(KtLambdaArgument::class, KtLambdaArgument::class) {
+ override fun getActualParameters(lambdaArgument: KtLambdaArgument) = arrayOf(lambdaArgument)
+
+ override fun getActualParametersRBraceType() = KtTokens.RBRACE
+
+ override fun getArgumentListAllowedParentClasses() = setOf(KtLambdaArgument::class.java)
+
+ override fun getParameterIndex(context: UpdateParameterInfoContext, argumentList: KtLambdaArgument): Int {
+ val size = (argumentList.parent as? KtCallElement)?.valueArguments?.size ?: 1
+ return size - 1
+ }
+}
+
class KotlinArrayAccessParameterInfoHandler : KotlinParameterInfoWithCallHandlerBase(KtContainerNode::class, KtExpression::class) {
override fun getArgumentListAllowedParentClasses() = setOf(KtArrayAccessExpression::class.java)
@@ -115,7 +129,7 @@ abstract class KotlinParameterInfoWithCallHandlerBase it.length }
+}
+
+fun foo(f: (String) -> Int) {}
+//Text: (f: (String) -> Int), Disabled: false, Strikeout: false, Green: true
\ No newline at end of file
diff --git a/idea/testData/parameterInfo/functionCall/lambdaArgument2.kt b/idea/testData/parameterInfo/functionCall/lambdaArgument2.kt
new file mode 100644
index 00000000000..586a4f5196b
--- /dev/null
+++ b/idea/testData/parameterInfo/functionCall/lambdaArgument2.kt
@@ -0,0 +1,6 @@
+fun test() {
+ foo({ 1 }, { 2 }) { it.length }
+}
+
+fun foo(a: (Unit) -> Int, b: (Unit) -> Int, c: (String) -> Int) {}
+//Text: (a: (Unit) -> Int, b: (Unit) -> Int, c: (String) -> Int), Disabled: false, Strikeout: false, Green: true
\ No newline at end of file
diff --git a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java
index 18111d56d86..68975e37bbf 100644
--- a/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java
+++ b/idea/tests/org/jetbrains/kotlin/idea/parameterInfo/ParameterInfoTestGenerated.java
@@ -167,6 +167,16 @@ public class ParameterInfoTestGenerated extends AbstractParameterInfoTest {
runTest("idea/testData/parameterInfo/functionCall/Invoke.kt");
}
+ @TestMetadata("lambdaArgument.kt")
+ public void testLambdaArgument() throws Exception {
+ runTest("idea/testData/parameterInfo/functionCall/lambdaArgument.kt");
+ }
+
+ @TestMetadata("lambdaArgument2.kt")
+ public void testLambdaArgument2() throws Exception {
+ runTest("idea/testData/parameterInfo/functionCall/lambdaArgument2.kt");
+ }
+
@TestMetadata("LocalFunctionBug.kt")
public void testLocalFunctionBug() throws Exception {
runTest("idea/testData/parameterInfo/functionCall/LocalFunctionBug.kt");