From 807df9a120adef022f7ce910e0a53b6698ed655d Mon Sep 17 00:00:00 2001 From: Bart van Helvert Date: Tue, 20 Jun 2023 13:56:25 +0200 Subject: [PATCH] [AA] Properly render type arguments in short name renderer Render type arguments for short names without nested qualifier. --- .../renderers/KtClassTypeQualifierRenderer.kt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KtClassTypeQualifierRenderer.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KtClassTypeQualifierRenderer.kt index 08221613e36..1856fbeccc4 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KtClassTypeQualifierRenderer.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/renderer/types/renderers/KtClassTypeQualifierRenderer.kt @@ -8,7 +8,9 @@ package org.jetbrains.kotlin.analysis.api.renderer.types.renderers import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.renderer.types.KtTypeRenderer import org.jetbrains.kotlin.analysis.api.types.KtClassType +import org.jetbrains.kotlin.analysis.api.types.KtClassTypeQualifier import org.jetbrains.kotlin.analysis.api.types.KtNonErrorClassType +import org.jetbrains.kotlin.analysis.api.types.KtType import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter import org.jetbrains.kotlin.renderer.render @@ -19,19 +21,14 @@ public interface KtClassTypeQualifierRenderer { public object WITH_SHORT_NAMES : KtClassTypeQualifierRenderer { context(KtAnalysisSession, KtTypeRenderer) override fun renderClassTypeQualifier(type: KtClassType, printer: PrettyPrinter) { - typeNameRenderer.renderName(type.qualifiers.last().name, type, printer) + type.qualifiers.last().render(type, printer) } } public object WITH_SHORT_NAMES_WITH_NESTED_CLASSIFIERS : KtClassTypeQualifierRenderer { context(KtAnalysisSession, KtTypeRenderer) override fun renderClassTypeQualifier(type: KtClassType, printer: PrettyPrinter): Unit = printer { - printCollection(type.qualifiers, separator = ".") { qualifier -> - typeNameRenderer.renderName(qualifier.name, type, printer) - printCollectionIfNotEmpty(qualifier.typeArguments, prefix = "<", postfix = ">") { - typeProjectionRenderer.renderTypeProjection(it, this) - } - } + printCollection(type.qualifiers, separator = ".") { qualifier -> qualifier.render(type, printer) } } } @@ -49,3 +46,11 @@ public interface KtClassTypeQualifierRenderer { } } } + +context(KtAnalysisSession, KtTypeRenderer) +private fun KtClassTypeQualifier.render(type: KtType, printer: PrettyPrinter) = printer { + typeNameRenderer.renderName(name, type, printer) + printCollectionIfNotEmpty(typeArguments, prefix = "<", postfix = ">") { + typeProjectionRenderer.renderTypeProjection(it, this) + } +}