From d7f1353d3d53126b0d36ea8968a32f5d35a2a692 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 16 Jul 2021 17:10:17 +0200 Subject: [PATCH] HL API: update resolve call tests --- .../resolveCall/functionCallInTheSameFile.txt | 4 +++- .../resolveCall/functionWithReceiverCall.txt | 4 +++- .../resolveCall/functionWithReceiverSafeCall.txt | 4 +++- .../analysisSession/resolveCall/implicitConstuctorCall.txt | 4 +++- .../resolveCall/implicitJavaConstuctorCall.txt | 4 +++- .../analysisSession/resolveCall/javaFunctionCall.txt | 4 +++- .../resolveCall/resolveCallInSuperConstructorParam.txt | 4 +++- .../resolveCall/simpleCallWithNonMatchingArgs.txt | 4 +++- .../analysisSession/resolveCall/variableAsFunction.txt | 4 +++- .../resolveCall/variableAsFunctionLikeCall.txt | 4 +++- .../idea/fir/frontend/api/fir/AbstractResolveCallTest.kt | 6 ++++-- 11 files changed, 34 insertions(+), 12 deletions(-) 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" }