From 603655d63f1909c5ab836fc2768a799785b31991 Mon Sep 17 00:00:00 2001 From: Tianyu Geng Date: Wed, 13 Oct 2021 14:26:12 -0700 Subject: [PATCH] FIR IDE: add option to render type without type args This is useful for rendering type annotation for `super`, which does not require type arguments. --- .../kotlin/analysis/api/fir/renderer/ConeTypeIdeRenderer.kt | 4 ++-- .../api/components/KtSymbolDeclarationRendererProvider.kt | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/renderer/ConeTypeIdeRenderer.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/renderer/ConeTypeIdeRenderer.kt index 886ae2878db..42e9dd30dd9 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/renderer/ConeTypeIdeRenderer.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/renderer/ConeTypeIdeRenderer.kt @@ -236,7 +236,7 @@ internal class ConeTypeIdeRenderer( if (classSymbolToRender !is FirRegularClassSymbol) { append(classSymbolToRender.classId.shortClassName) - if (type.typeArguments.any()) { + if (options.renderTypeArguments && type.typeArguments.any()) { type.typeArguments.joinTo(this, ", ", prefix = "<", postfix = ">") { renderTypeProjection(it) } @@ -263,7 +263,7 @@ internal class ConeTypeIdeRenderer( if (index != 0) append(".") append(currentClass.name) - if (needToRenderTypeParameters(index)) { + if (options.renderTypeArguments && needToRenderTypeParameters(index)) { val typeParametersCount = currentClass.typeParameters.count { it is FirTypeParameter } val begin = typeParametersLeft - typeParametersCount val end = typeParametersLeft 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 4862e884a6a..cbaaeae4591 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 @@ -31,6 +31,11 @@ public data class KtTypeRendererOptions( * When `false` will render as "ERROR_TYPE " */ public val renderUnresolvedTypeAsResolved: Boolean = true, + + /** + * Whether to render type arguments. + */ + public val renderTypeArguments: Boolean = true ) { public companion object { public val DEFAULT: KtTypeRendererOptions = KtTypeRendererOptions()