[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.KtAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.renderer.types.KtTypeRenderer
|
import org.jetbrains.kotlin.analysis.api.renderer.types.KtTypeRenderer
|
||||||
import org.jetbrains.kotlin.analysis.api.types.KtClassType
|
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.KtNonErrorClassType
|
||||||
|
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||||
import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter
|
import org.jetbrains.kotlin.analysis.utils.printer.PrettyPrinter
|
||||||
import org.jetbrains.kotlin.renderer.render
|
import org.jetbrains.kotlin.renderer.render
|
||||||
|
|
||||||
@@ -19,19 +21,14 @@ public interface KtClassTypeQualifierRenderer {
|
|||||||
public object WITH_SHORT_NAMES : KtClassTypeQualifierRenderer {
|
public object WITH_SHORT_NAMES : KtClassTypeQualifierRenderer {
|
||||||
context(KtAnalysisSession, KtTypeRenderer)
|
context(KtAnalysisSession, KtTypeRenderer)
|
||||||
override fun renderClassTypeQualifier(type: KtClassType, printer: PrettyPrinter) {
|
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 {
|
public object WITH_SHORT_NAMES_WITH_NESTED_CLASSIFIERS : KtClassTypeQualifierRenderer {
|
||||||
context(KtAnalysisSession, KtTypeRenderer)
|
context(KtAnalysisSession, KtTypeRenderer)
|
||||||
override fun renderClassTypeQualifier(type: KtClassType, printer: PrettyPrinter): Unit = printer {
|
override fun renderClassTypeQualifier(type: KtClassType, printer: PrettyPrinter): Unit = printer {
|
||||||
printCollection(type.qualifiers, separator = ".") { qualifier ->
|
printCollection(type.qualifiers, separator = ".") { qualifier -> qualifier.render(type, printer) }
|
||||||
typeNameRenderer.renderName(qualifier.name, type, printer)
|
|
||||||
printCollectionIfNotEmpty(qualifier.typeArguments, prefix = "<", postfix = ">") {
|
|
||||||
typeProjectionRenderer.renderTypeProjection(it, this)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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