From ffdfa05015cd1e44ad844c267cc15502a31be5ae Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 9 Jun 2022 19:47:46 +0200 Subject: [PATCH] [Analysis API] use existing test utilities for rendering --- ...KtFe10SymbolDeclarationRendererProvider.kt | 4 -- .../KtFirSymbolDeclarationRendererProvider.kt | 17 ------ ...actAnalysisApiSignatureSubstitutionTest.kt | 5 +- ...bstractAnalysisApiSymbolAsSignatureTest.kt | 3 +- ...stractAnalysisApiSymbolSubstitutionTest.kt | 7 ++- .../AbstractSubstitutorBuilderTest.kt | 10 ++-- .../base/test/cases/components/testUtils.kt | 2 + .../KtSymbolDeclarationRendererProvider.kt | 5 -- .../signatureSubstitution/function.txt | 52 ++++++++++++++++++- .../signatureSubstitution/property.txt | 14 ++++- .../symbolAsSignature/function.txt | 26 +++++++++- .../symbolAsSignature/propertyGetter.txt | 7 ++- .../symbolAsSignature/propertyNoAccessors.txt | 7 ++- .../symbolAsSignature/propertySetter.txt | 14 ++++- .../propertyWithAccessors.txt | 7 ++- .../symbolSubstitution/function.txt | 26 +++++++++- .../symbolSubstitution/property.txt | 7 ++- .../substitutorBuilder/function.txt | 16 +++++- 18 files changed, 176 insertions(+), 53 deletions(-) diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationRendererProvider.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationRendererProvider.kt index df48b5aaa3f..9d8fce4c8a8 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationRendererProvider.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationRendererProvider.kt @@ -36,10 +36,6 @@ internal class KtFe10SymbolDeclarationRendererProvider( return "" } - override fun render(signature: KtCallableSignature<*>, options: KtDeclarationRendererOptions): String { - TODO("Not yet implemented") - } - override fun render(type: KtType, options: KtTypeRendererOptions): String { require(type is KtFe10Type) return prettyPrint { KtFe10TypeRenderer(options).render(type.type, this) } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt index f76779341e0..1eada5f4d3d 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolDeclarationRendererProvider.kt @@ -33,23 +33,6 @@ internal class KtFirSymbolDeclarationRendererProvider( return ConeTypeIdeRenderer(analysisSession.firResolveSession.useSiteFirSession, options).renderType(type.coneType) } - override fun render(signature: KtCallableSignature<*>, options: KtDeclarationRendererOptions): String = prettyPrint { - signature.receiverType?.let { - append(render(it, options.typeRendererOptions)) - append('.') - } - signature.symbol.callableIdIfNonLocal?.callableName?.asString()?.let { append(it) } - if (signature is KtFunctionLikeSignature<*>) { - printCollection(signature.valueParameters, ", ", "(", ")") { parameter -> - append(parameter.name.asString()) - append(": ") - append(render(parameter.returnType, options.typeRendererOptions)) - } - } - append(": ") - append(render(signature.returnType, options.typeRendererOptions)) - } - override fun renderDeclaration(symbol: KtDeclarationSymbol, options: KtDeclarationRendererOptions): String { require(symbol is KtFirSymbol<*>) symbol.firSymbol.ensureResolved(FirResolvePhase.BODY_RESOLVE) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt index ddf361f3ade..c921cebd9df 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSignatureSubstitutionTest.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signatureSubstitution +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest @@ -36,12 +37,12 @@ abstract class AbstractAnalysisApiSignatureSubstitutionTest : AbstractAnalysisAp appendLine() appendLine("Signature before substitution:") - appendLine(signatureBeforeSubstitution.render()) + appendLine(stringRepresentation(signatureBeforeSubstitution)) appendLine() appendLine("Signature after substitution:") - appendLine(signatureAfterSubstitution.render()) + appendLine(stringRepresentation(signatureAfterSubstitution)) } } testServices.assertions.assertEqualsToTestDataFileSibling(actual) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt index c7093bd7fbc..2ea4259e134 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolAsSignatureTest.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signatureSubstitution +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest @@ -23,7 +24,7 @@ abstract class AbstractAnalysisApiSymbolAsSignatureTest : AbstractAnalysisApiSin val symbol = declaration.getSymbolOfType() val signature = symbol.asSignature() val renderedSymbol = symbol.render() - val renderedSignature = signature.render() + val renderedSignature = stringRepresentation(signature) prettyPrint { appendLine("KtDeclaration: ${declaration::class.simpleName}") diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt index fb1928b1ea6..898898e4e19 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/signatureSubstitution/AbstractAnalysisApiSymbolSubstitutionTest.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.signatureSubstitution +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest @@ -26,18 +27,16 @@ abstract class AbstractAnalysisApiSymbolSubstitutionTest : AbstractAnalysisApiSi val substitutor = with(SubstitutionParser) { parseSubstitutors(module, ktFile) }.single() val signature = symbol.substitute(substitutor) - val renderedSymbol = symbol.render() - val renderedSignature = signature.render() prettyPrint { appendLine("KtDeclaration: ${declaration::class.simpleName}") appendLine("Symbol:") - appendLine(renderedSymbol) + appendLine(symbol.render()) appendLine() appendLine("Signature:") - appendLine(renderedSignature) + appendLine(stringRepresentation(signature)) } } testServices.assertions.assertEqualsToTestDataFileSibling(actual) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt index 0b49801f2ee..eb61cd857ce 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/substututorFactory/AbstractSubstitutorBuilderTest.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.analysis.api.components.buildClassType import org.jetbrains.kotlin.analysis.api.components.buildSubstitutor import org.jetbrains.kotlin.analysis.api.components.buildTypeParameterType import org.jetbrains.kotlin.analysis.api.impl.base.KtMapBackedSubstitutor +import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.components.stringRepresentation import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.getSymbolOfType import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest @@ -49,17 +50,12 @@ abstract class AbstractSubstitutorBuilderTest : AbstractAnalysisApiSingleFileTes appendLine() appendLine("Substitutor:") - appendLine( - (substitutor as KtMapBackedSubstitutor) - .getAsMap() - .entries - .joinToString { (k, v) -> "${k.name} -> ${v.render()}" } - ) + appendLine(stringRepresentation(substitutor)) appendLine() appendLine("Signature after substitution:") - appendLine(signatureAfterSubstitution.render()) + appendLine(stringRepresentation(signatureAfterSubstitution)) } } testServices.assertions.assertEqualsToTestDataFileSibling(actual) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/testUtils.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/testUtils.kt index 4e4ab134282..1a5b7925468 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/testUtils.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/testUtils.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.analysis.api.impl.base.KtMapBackedSubstitutor import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.types.KtSubstitutor import org.jetbrains.kotlin.analysis.api.types.KtType +import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.Name import kotlin.reflect.KProperty1 import kotlin.reflect.KVisibility @@ -78,6 +79,7 @@ internal fun KtAnalysisSession.stringRepresentation(any: Any): String = with(any is KtType -> render() is Enum<*> -> name is Name -> asString() + is CallableId -> toString() else -> buildString { val clazz = this@with::class val className = clazz.simpleName!! diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationRendererProvider.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationRendererProvider.kt index 22708cdba2d..34a5978bb2d 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationRendererProvider.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationRendererProvider.kt @@ -129,8 +129,6 @@ public enum class RendererModifier(public val includeByDefault: Boolean) { public abstract class KtSymbolDeclarationRendererProvider : KtAnalysisSessionComponent() { public abstract fun renderDeclaration(symbol: KtDeclarationSymbol, options: KtDeclarationRendererOptions): String - public abstract fun render(signature: KtCallableSignature<*>, options: KtDeclarationRendererOptions): String - public abstract fun render(type: KtType, options: KtTypeRendererOptions): String } @@ -144,9 +142,6 @@ public interface KtSymbolDeclarationRendererMixIn : KtAnalysisSessionMixIn { public fun KtDeclarationSymbol.render(options: KtDeclarationRendererOptions = KtDeclarationRendererOptions.DEFAULT): String = withValidityAssertion { analysisSession.symbolDeclarationRendererProvider.renderDeclaration(this, options) } - public fun KtCallableSignature<*>.render(options: KtDeclarationRendererOptions = KtDeclarationRendererOptions.DEFAULT): String = - withValidityAssertion { analysisSession.symbolDeclarationRendererProvider.render(this, options) } - /** * Render kotlin type into the representable Kotlin type string */ diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/function.txt b/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/function.txt index 41b389af451..5a9a7eee926 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/function.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/function.txt @@ -3,7 +3,55 @@ Symbol: fun foo(x: kotlin.collections.List, y: kotlin.collections.Map>, k: kotlin.String): T Signature before substitution: -foo(x: kotlin.collections.List, y: kotlin.collections.Map>, k: kotlin.String): T +KtFunctionLikeSignature: + receiverType = null + returnType = T + symbol = /foo(x: kotlin.collections.List, y: kotlin.collections.Map>, k: kotlin.String): T + valueParameters = [ + KtVariableLikeSignature: + name = x + receiverType = null + returnType = kotlin.collections.List + symbol = x: kotlin.collections.List + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = y + receiverType = null + returnType = kotlin.collections.Map> + symbol = y: kotlin.collections.Map> + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = k + receiverType = null + returnType = kotlin.String + symbol = k: kotlin.String + callableIdIfNonLocal = null + ] + callableIdIfNonLocal = /foo Signature after substitution: -foo(x: kotlin.collections.List>, y: kotlin.collections.Map, kotlin.collections.List>, k: kotlin.String): kotlin.collections.List +KtFunctionLikeSignature: + receiverType = null + returnType = kotlin.collections.List + symbol = /foo(x: kotlin.collections.List, y: kotlin.collections.Map>, k: kotlin.String): T + valueParameters = [ + KtVariableLikeSignature: + name = x + receiverType = null + returnType = kotlin.collections.List> + symbol = x: kotlin.collections.List + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = y + receiverType = null + returnType = kotlin.collections.Map, kotlin.collections.List> + symbol = y: kotlin.collections.Map> + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = k + receiverType = null + returnType = kotlin.String + symbol = k: kotlin.String + callableIdIfNonLocal = null + ] + callableIdIfNonLocal = /foo diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/property.txt b/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/property.txt index c07809a7e7e..0427c5a993f 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/property.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/signatureSubstitution/property.txt @@ -3,7 +3,17 @@ Symbol: val kotlin.collections.Map.value: kotlin.collections.List Signature before substitution: -kotlin.collections.Map.value: kotlin.collections.List +KtVariableLikeSignature: + name = value + receiverType = kotlin.collections.Map + returnType = kotlin.collections.List + symbol = val value: kotlin.collections.List + callableIdIfNonLocal = /value Signature after substitution: -kotlin.collections.Map, kotlin.Long>.value: kotlin.collections.List +KtVariableLikeSignature: + name = value + receiverType = kotlin.collections.Map, kotlin.Long> + returnType = kotlin.collections.List + symbol = val value: kotlin.collections.List + callableIdIfNonLocal = /value diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/function.txt b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/function.txt index 64323136613..3e0db3cd84f 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/function.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/function.txt @@ -3,4 +3,28 @@ Symbol: fun foo(x: kotlin.collections.List, y: kotlin.collections.Map, k: kotlin.String): kotlin.Int Signature: -foo(x: kotlin.collections.List, y: kotlin.collections.Map, k: kotlin.String): kotlin.Int +KtFunctionLikeSignature: + receiverType = null + returnType = kotlin.Int + symbol = /foo(x: kotlin.collections.List, y: kotlin.collections.Map, k: kotlin.String): kotlin.Int + valueParameters = [ + KtVariableLikeSignature: + name = x + receiverType = null + returnType = kotlin.collections.List + symbol = x: kotlin.collections.List + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = y + receiverType = null + returnType = kotlin.collections.Map + symbol = y: kotlin.collections.Map + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = k + receiverType = null + returnType = kotlin.String + symbol = k: kotlin.String + callableIdIfNonLocal = null + ] + callableIdIfNonLocal = /foo diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyGetter.txt b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyGetter.txt index b460dbcc910..f2782d63165 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyGetter.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyGetter.txt @@ -3,4 +3,9 @@ Symbol: get() Signature: -(): kotlin.Int +KtFunctionLikeSignature: + receiverType = null + returnType = kotlin.Int + symbol = (): kotlin.Int + valueParameters = [] + callableIdIfNonLocal = null diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyNoAccessors.txt b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyNoAccessors.txt index 452e92ee95d..54ac451f953 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyNoAccessors.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyNoAccessors.txt @@ -3,4 +3,9 @@ Symbol: val foo: kotlin.Int Signature: -foo: kotlin.Int +KtVariableLikeSignature: + name = foo + receiverType = null + returnType = kotlin.Int + symbol = val foo: kotlin.Int + callableIdIfNonLocal = /foo diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertySetter.txt b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertySetter.txt index 307f63e0b12..7d2d1af112c 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertySetter.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertySetter.txt @@ -3,4 +3,16 @@ Symbol: set(value: kotlin.Int) Signature: -(value: kotlin.Int): kotlin.Unit +KtFunctionLikeSignature: + receiverType = null + returnType = kotlin.Unit + symbol = (value: kotlin.Int): kotlin.Unit + valueParameters = [ + KtVariableLikeSignature: + name = value + receiverType = null + returnType = kotlin.Int + symbol = value: kotlin.Int + callableIdIfNonLocal = null + ] + callableIdIfNonLocal = null diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyWithAccessors.txt b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyWithAccessors.txt index d1c08419e5c..da0ece705d9 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyWithAccessors.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/symbolAsSignature/propertyWithAccessors.txt @@ -3,4 +3,9 @@ Symbol: var foo: kotlin.Int Signature: -foo: kotlin.Int +KtVariableLikeSignature: + name = foo + receiverType = null + returnType = kotlin.Int + symbol = var foo: kotlin.Int + callableIdIfNonLocal = /foo diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/function.txt b/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/function.txt index 50b22a3b702..94e5cbf84e3 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/function.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/function.txt @@ -3,4 +3,28 @@ Symbol: fun foo(x: kotlin.collections.List, y: kotlin.collections.Map>, k: kotlin.String): T Signature: -foo(x: kotlin.collections.List>, y: kotlin.collections.Map, kotlin.collections.List>, k: kotlin.String): kotlin.collections.List +KtFunctionLikeSignature: + receiverType = null + returnType = kotlin.collections.List + symbol = /foo(x: kotlin.collections.List, y: kotlin.collections.Map>, k: kotlin.String): T + valueParameters = [ + KtVariableLikeSignature: + name = x + receiverType = null + returnType = kotlin.collections.List> + symbol = x: kotlin.collections.List + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = y + receiverType = null + returnType = kotlin.collections.Map, kotlin.collections.List> + symbol = y: kotlin.collections.Map> + callableIdIfNonLocal = null, + KtVariableLikeSignature: + name = k + receiverType = null + returnType = kotlin.String + symbol = k: kotlin.String + callableIdIfNonLocal = null + ] + callableIdIfNonLocal = /foo diff --git a/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/property.txt b/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/property.txt index 4463ab10828..af4d415c8c1 100644 --- a/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/property.txt +++ b/analysis/analysis-api/testData/components/signatureSubstitution/symbolSubstitution/property.txt @@ -3,4 +3,9 @@ Symbol: val kotlin.collections.Map.value: kotlin.collections.List Signature: -kotlin.collections.Map, kotlin.Long>.value: kotlin.collections.List +KtVariableLikeSignature: + name = value + receiverType = kotlin.collections.Map, kotlin.Long> + returnType = kotlin.collections.List + symbol = val value: kotlin.collections.List + callableIdIfNonLocal = /value diff --git a/analysis/analysis-api/testData/components/substitutorFactory/substitutorBuilder/function.txt b/analysis/analysis-api/testData/components/substitutorFactory/substitutorBuilder/function.txt index 570c206a9c1..8565e6b2d1a 100644 --- a/analysis/analysis-api/testData/components/substitutorFactory/substitutorBuilder/function.txt +++ b/analysis/analysis-api/testData/components/substitutorFactory/substitutorBuilder/function.txt @@ -3,7 +3,19 @@ Symbol: fun A.fooo(x: kotlin.collections.List): C Substitutor: -A -> kotlin.Int, B -> kotlin.Long, C -> kotlin.collections.List +}> Signature after substitution: -kotlin.Int.fooo(x: kotlin.collections.List): kotlin.collections.List +KtFunctionLikeSignature: + receiverType = kotlin.Int + returnType = kotlin.collections.List + symbol = /fooo(: A, x: kotlin.collections.List): C + valueParameters = [ + KtVariableLikeSignature: + name = x + receiverType = null + returnType = kotlin.collections.List + symbol = x: kotlin.collections.List + callableIdIfNonLocal = null + ] + callableIdIfNonLocal = /fooo