[AA] replace KtCallableReceiverTypeRenderer with KtCallableReceiverRenderer

^KT-54417
This commit is contained in:
Dmitrii Gridin
2022-11-14 16:35:32 +01:00
committed by Space Team
parent 032026278c
commit b672949820
4 changed files with 17 additions and 14 deletions
@@ -49,7 +49,7 @@ public class KtDeclarationRenderer private constructor(
public val accessorBodyRenderer: KtPropertyAccessorBodyRenderer, public val accessorBodyRenderer: KtPropertyAccessorBodyRenderer,
public val returnTypeRenderer: KtCallableReturnTypeRenderer, public val returnTypeRenderer: KtCallableReturnTypeRenderer,
public val receiverTyperRenderer: KtCallableReceiverTypeRenderer, public val callableReceiverRenderer: KtCallableReceiverRenderer,
public val valueParametersRenderer: KtCallableParameterRenderer, public val valueParametersRenderer: KtCallableParameterRenderer,
public val typeParametersRenderer: KtTypeParametersRenderer, public val typeParametersRenderer: KtTypeParametersRenderer,
@@ -131,7 +131,7 @@ public class KtDeclarationRenderer private constructor(
this.accessorBodyRenderer = renderer.accessorBodyRenderer this.accessorBodyRenderer = renderer.accessorBodyRenderer
this.returnTypeRenderer = renderer.returnTypeRenderer this.returnTypeRenderer = renderer.returnTypeRenderer
this.receiverTyperRenderer = renderer.receiverTyperRenderer this.callableReceiverRenderer = renderer.callableReceiverRenderer
this.valueParametersRenderer = renderer.valueParametersRenderer this.valueParametersRenderer = renderer.valueParametersRenderer
this.typeParametersRenderer = renderer.typeParametersRenderer this.typeParametersRenderer = renderer.typeParametersRenderer
@@ -196,7 +196,7 @@ public class KtDeclarationRenderer private constructor(
public lateinit var accessorBodyRenderer: KtPropertyAccessorBodyRenderer public lateinit var accessorBodyRenderer: KtPropertyAccessorBodyRenderer
public lateinit var returnTypeRenderer: KtCallableReturnTypeRenderer public lateinit var returnTypeRenderer: KtCallableReturnTypeRenderer
public lateinit var receiverTyperRenderer: KtCallableReceiverTypeRenderer public lateinit var callableReceiverRenderer: KtCallableReceiverRenderer
public lateinit var valueParametersRenderer: KtCallableParameterRenderer public lateinit var valueParametersRenderer: KtCallableParameterRenderer
public lateinit var typeParametersRenderer: KtTypeParametersRenderer public lateinit var typeParametersRenderer: KtTypeParametersRenderer
@@ -250,7 +250,7 @@ public class KtDeclarationRenderer private constructor(
accessorBodyRenderer, accessorBodyRenderer,
returnTypeRenderer, returnTypeRenderer,
receiverTyperRenderer, callableReceiverRenderer,
valueParametersRenderer, valueParametersRenderer,
typeParametersRenderer, typeParametersRenderer,
@@ -73,7 +73,7 @@ public object KtDeclarationRendererForSource {
singleTypeParameterRenderer = KtSingleTypeParameterSymbolRenderer.WITHOUT_BOUNDS singleTypeParameterRenderer = KtSingleTypeParameterSymbolRenderer.WITHOUT_BOUNDS
propertyAccessorsRenderer = KtPropertyAccessorsRenderer.NO_DEFAULT propertyAccessorsRenderer = KtPropertyAccessorsRenderer.NO_DEFAULT
receiverTyperRenderer = KtCallableReceiverTypeRenderer.WITH_IN_APPROXIMATION callableReceiverRenderer = KtCallableReceiverRenderer.AS_TYPE_WITH_IN_APPROXIMATION
returnTypeRenderer = KtCallableReturnTypeRenderer.WITH_OUT_APPROXIMATION returnTypeRenderer = KtCallableReturnTypeRenderer.WITH_OUT_APPROXIMATION
typeRenderer = KtTypeRendererForSource.WITH_QUALIFIED_NAMES typeRenderer = KtTypeRendererForSource.WITH_QUALIFIED_NAMES
@@ -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.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.renderer.declarations.KtDeclarationRenderer import org.jetbrains.kotlin.analysis.api.renderer.declarations.KtDeclarationRenderer
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol import org.jetbrains.kotlin.analysis.api.symbols.KtReceiverParameterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.receiverType
import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter
import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.Variance
public interface KtCallableReceiverTypeRenderer { public interface KtCallableReceiverRenderer {
context(KtAnalysisSession, KtDeclarationRenderer) 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) context(KtAnalysisSession, KtDeclarationRenderer)
override fun renderReceiverType(symbol: KtCallableSymbol, printer: PrettyPrinter) { override fun renderReceiver(symbol: KtReceiverParameterSymbol, printer: PrettyPrinter) {
val receiverType = symbol.receiverType?.let { declarationTypeApproximator.approximateType(it, Variance.IN_VARIANCE) } ?: return val receiverType = declarationTypeApproximator.approximateType(symbol.type, Variance.IN_VARIANCE)
typeRenderer.renderType(receiverType, printer) typeRenderer.renderType(receiverType, printer)
} }
} }
} }
@@ -27,7 +27,11 @@ public interface KtCallableSignatureRender {
}, },
{ typeParametersRenderer.renderTypeParameters(symbol, printer) }, { 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) { if (symbol is KtNamedSymbol) {
nameRenderer.renderName(symbol, printer) nameRenderer.renderName(symbol, printer)
} }