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.
This commit is contained in:
Tianyu Geng
2021-10-13 14:26:12 -07:00
committed by Ilya Kirillov
parent bdc71a3281
commit 603655d63f
2 changed files with 7 additions and 2 deletions
@@ -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
@@ -31,6 +31,11 @@ public data class KtTypeRendererOptions(
* When `false` will render as "ERROR_TYPE <symbol not found for UnresolvedQualifier>"
*/
public val renderUnresolvedTypeAsResolved: Boolean = true,
/**
* Whether to render type arguments.
*/
public val renderTypeArguments: Boolean = true
) {
public companion object {
public val DEFAULT: KtTypeRendererOptions = KtTypeRendererOptions()