[AA] Properly render type arguments in short name renderer
Render type arguments for short names without nested qualifier.
This commit is contained in:
committed by
Space Team
parent
26dbeb9b6f
commit
807df9a120
+12
-7
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user