diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionCallInTheSameFile.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionCallInTheSameFile.txt index 5a8184ee063..d965a6c07b8 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionCallInTheSameFile.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionCallInTheSameFile.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = /function(a: kotlin.Int): kotlin.Unit +KtFunctionCall: +argumentMapping = { 1 -> (a: kotlin.Int) } +targetFunction = /function(a: kotlin.Int): kotlin.Unit \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverCall.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverCall.txt index 8616105141a..23990b03a2e 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverCall.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverCall.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = /function(: kotlin.String, a: kotlin.Int): kotlin.Unit +KtFunctionCall: +argumentMapping = { 1 -> (a: kotlin.Int) } +targetFunction = /function(: kotlin.String, a: kotlin.Int): kotlin.Unit \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverSafeCall.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverSafeCall.txt index 8616105141a..23990b03a2e 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverSafeCall.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/functionWithReceiverSafeCall.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = /function(: kotlin.String, a: kotlin.Int): kotlin.Unit +KtFunctionCall: +argumentMapping = { 1 -> (a: kotlin.Int) } +targetFunction = /function(: kotlin.String, a: kotlin.Int): kotlin.Unit \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitConstuctorCall.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitConstuctorCall.txt index cdeeb9aeb54..c99893d973f 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitConstuctorCall.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitConstuctorCall.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = (): A +KtFunctionCall: +argumentMapping = { } +targetFunction = (): A \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitJavaConstuctorCall.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitJavaConstuctorCall.txt index cdeeb9aeb54..c99893d973f 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitJavaConstuctorCall.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/implicitJavaConstuctorCall.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = (): A +KtFunctionCall: +argumentMapping = { } +targetFunction = (): A \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/javaFunctionCall.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/javaFunctionCall.txt index d52c80ad01b..0eab0ea92c2 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/javaFunctionCall.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/javaFunctionCall.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = /JavaClass.javaMethod(): kotlin.Unit +KtFunctionCall: +argumentMapping = { } +targetFunction = /JavaClass.javaMethod(): kotlin.Unit \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/resolveCallInSuperConstructorParam.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/resolveCallInSuperConstructorParam.txt index 694bbdebc53..cf8ca240ee9 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/resolveCallInSuperConstructorParam.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/resolveCallInSuperConstructorParam.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = /to(: A, other: B): A +KtFunctionCall: +argumentMapping = { } +targetFunction = /to(: A, other: B): A \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/simpleCallWithNonMatchingArgs.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/simpleCallWithNonMatchingArgs.txt index a551f5f9adb..2f425fa265d 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/simpleCallWithNonMatchingArgs.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/simpleCallWithNonMatchingArgs.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = ERR +KtFunctionCall: +argumentMapping = { } +targetFunction = ERR \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunction.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunction.txt index 75cf505d876..684dc4a04c5 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunction.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunction.txt @@ -1 +1,3 @@ -KtFunctionalTypeVariableCall: target = x: kotlin.Function1, targetFunction = kotlin/Function1.invoke(p1: kotlin.Int): kotlin.String +KtFunctionalTypeVariableCall: +target = x: kotlin.Function1 +targetFunction = kotlin/Function1.invoke(p1: kotlin.Int): kotlin.String \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunctionLikeCall.txt b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunctionLikeCall.txt index ee82c2f07a7..9db2187753a 100644 --- a/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunctionLikeCall.txt +++ b/idea/idea-frontend-fir/testData/analysisSession/resolveCall/variableAsFunctionLikeCall.txt @@ -1 +1,3 @@ -KtFunctionCall: targetFunction = /invoke(: kotlin.Int): kotlin.String +KtFunctionCall: +argumentMapping = { } +targetFunction = /invoke(: kotlin.Int): kotlin.String \ No newline at end of file diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/fir/AbstractResolveCallTest.kt b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/fir/AbstractResolveCallTest.kt index 5805e5066b8..c4f1620191b 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/fir/AbstractResolveCallTest.kt +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/fir/AbstractResolveCallTest.kt @@ -69,15 +69,17 @@ private fun KtCall.stringRepresentation(): String { is KtSuccessCallTarget -> symbol.stringValue() is KtErrorCallTarget -> "ERR<${this.diagnostic.defaultMessage}, [${candidates.joinToString { it.stringValue() }}]>" is Boolean -> toString() + is Map<*, *> -> entries.joinToString(prefix = "{ ", postfix = " }") { (k, v) -> "${k?.stringValue()} -> (${v?.stringValue()})" } + is KtValueArgument -> this.text else -> error("unexpected parameter type ${this::class}") } val callInfoClass = this::class return buildString { append(callInfoClass.simpleName!!) - append(": ") + append(":\n") val propertyByName = callInfoClass.memberProperties.associateBy(KProperty1<*, *>::name) - callInfoClass.primaryConstructor!!.parameters.joinTo(this) { parameter -> + callInfoClass.primaryConstructor!!.parameters.joinTo(this, separator = "\n") { parameter -> val value = propertyByName[parameter.name]!!.javaGetter!!(this@stringRepresentation)?.stringValue() "${parameter.name!!} = $value" }