From b67294982092e4563c090d6d52b39e71d49359b4 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 14 Nov 2022 16:35:32 +0100 Subject: [PATCH] [AA] replace KtCallableReceiverTypeRenderer with KtCallableReceiverRenderer ^KT-54417 --- .../declarations/KtDeclarationRenderer.kt | 8 ++++---- .../impl/KtDeclarationRendererForSource.kt | 2 +- ...eRenderer.kt => KtCallableReceiverRenderer.kt} | 15 +++++++-------- .../callables/KtCallableSignatureRender.kt | 6 +++++- 4 files changed, 17 insertions(+), 14 deletions(-) rename analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/{KtCallableReceiverTypeRenderer.kt => KtCallableReceiverRenderer.kt} (56%) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/KtDeclarationRenderer.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/KtDeclarationRenderer.kt index 0cd1d89b379..0730d1667a4 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/KtDeclarationRenderer.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/KtDeclarationRenderer.kt @@ -49,7 +49,7 @@ public class KtDeclarationRenderer private constructor( public val accessorBodyRenderer: KtPropertyAccessorBodyRenderer, public val returnTypeRenderer: KtCallableReturnTypeRenderer, - public val receiverTyperRenderer: KtCallableReceiverTypeRenderer, + public val callableReceiverRenderer: KtCallableReceiverRenderer, public val valueParametersRenderer: KtCallableParameterRenderer, public val typeParametersRenderer: KtTypeParametersRenderer, @@ -131,7 +131,7 @@ public class KtDeclarationRenderer private constructor( this.accessorBodyRenderer = renderer.accessorBodyRenderer this.returnTypeRenderer = renderer.returnTypeRenderer - this.receiverTyperRenderer = renderer.receiverTyperRenderer + this.callableReceiverRenderer = renderer.callableReceiverRenderer this.valueParametersRenderer = renderer.valueParametersRenderer this.typeParametersRenderer = renderer.typeParametersRenderer @@ -196,7 +196,7 @@ public class KtDeclarationRenderer private constructor( public lateinit var accessorBodyRenderer: KtPropertyAccessorBodyRenderer public lateinit var returnTypeRenderer: KtCallableReturnTypeRenderer - public lateinit var receiverTyperRenderer: KtCallableReceiverTypeRenderer + public lateinit var callableReceiverRenderer: KtCallableReceiverRenderer public lateinit var valueParametersRenderer: KtCallableParameterRenderer public lateinit var typeParametersRenderer: KtTypeParametersRenderer @@ -250,7 +250,7 @@ public class KtDeclarationRenderer private constructor( accessorBodyRenderer, returnTypeRenderer, - receiverTyperRenderer, + callableReceiverRenderer, valueParametersRenderer, typeParametersRenderer, diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/impl/KtDeclarationRendererForSource.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/impl/KtDeclarationRendererForSource.kt index e84dd45f8df..87518a212cd 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/impl/KtDeclarationRendererForSource.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/impl/KtDeclarationRendererForSource.kt @@ -73,7 +73,7 @@ public object KtDeclarationRendererForSource { singleTypeParameterRenderer = KtSingleTypeParameterSymbolRenderer.WITHOUT_BOUNDS propertyAccessorsRenderer = KtPropertyAccessorsRenderer.NO_DEFAULT - receiverTyperRenderer = KtCallableReceiverTypeRenderer.WITH_IN_APPROXIMATION + callableReceiverRenderer = KtCallableReceiverRenderer.AS_TYPE_WITH_IN_APPROXIMATION returnTypeRenderer = KtCallableReturnTypeRenderer.WITH_OUT_APPROXIMATION typeRenderer = KtTypeRendererForSource.WITH_QUALIFIED_NAMES diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableReceiverTypeRenderer.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableReceiverRenderer.kt similarity index 56% rename from analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableReceiverTypeRenderer.kt rename to analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableReceiverRenderer.kt index 9b4582fc797..4f3b8ea4f6b 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableReceiverTypeRenderer.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableReceiverRenderer.kt @@ -7,20 +7,19 @@ package org.jetbrains.kotlin.analysis.api.renderer.declarations.renderers.callab import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.renderer.declarations.KtDeclarationRenderer -import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol -import org.jetbrains.kotlin.analysis.api.symbols.receiverType +import org.jetbrains.kotlin.analysis.api.symbols.KtReceiverParameterSymbol import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter import org.jetbrains.kotlin.types.Variance -public interface KtCallableReceiverTypeRenderer { +public interface KtCallableReceiverRenderer { context(KtAnalysisSession, KtDeclarationRenderer) - public fun renderReceiverType(symbol: KtCallableSymbol, printer: PrettyPrinter) + public fun renderReceiver(symbol: KtReceiverParameterSymbol, printer: PrettyPrinter) - public object WITH_IN_APPROXIMATION : KtCallableReceiverTypeRenderer { + public object AS_TYPE_WITH_IN_APPROXIMATION : KtCallableReceiverRenderer { context(KtAnalysisSession, KtDeclarationRenderer) - override fun renderReceiverType(symbol: KtCallableSymbol, printer: PrettyPrinter) { - val receiverType = symbol.receiverType?.let { declarationTypeApproximator.approximateType(it, Variance.IN_VARIANCE) } ?: return + override fun renderReceiver(symbol: KtReceiverParameterSymbol, printer: PrettyPrinter) { + val receiverType = declarationTypeApproximator.approximateType(symbol.type, Variance.IN_VARIANCE) typeRenderer.renderType(receiverType, printer) } } -} \ No newline at end of file +} diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableSignatureRender.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableSignatureRender.kt index 8a152ecee32..c9887413820 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableSignatureRender.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/declarations/renderers/callables/KtCallableSignatureRender.kt @@ -27,7 +27,11 @@ public interface KtCallableSignatureRender { }, { typeParametersRenderer.renderTypeParameters(symbol, printer) }, { - withSuffix(".") { receiverTyperRenderer.renderReceiverType(symbol, printer) } + val receiverSymbol = symbol.receiverParameter + if (receiverSymbol != null) { + withSuffix(".") { callableReceiverRenderer.renderReceiver(receiverSymbol, printer) } + } + if (symbol is KtNamedSymbol) { nameRenderer.renderName(symbol, printer) }