[FIR] Add proper rendering of FirJavaTypeRef

This commit is contained in:
Dmitriy Novozhilov
2021-02-27 13:46:13 +03:00
committed by TeamCityServer
parent b31b293eef
commit 1fac1fc5d3
6 changed files with 33 additions and 3 deletions
@@ -19,6 +19,7 @@ abstract class FirUserTypeRef : FirTypeRefWithNullability() {
abstract override val annotations: List<FirAnnotationCall>
abstract override val isMarkedNullable: Boolean
abstract val qualifier: List<FirQualifierPart>
abstract val customRenderer: Boolean
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitUserTypeRef(this, data)
@@ -947,6 +947,10 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
override fun visitUserTypeRef(userTypeRef: FirUserTypeRef) {
userTypeRef.annotations.renderAnnotations()
if (userTypeRef.customRenderer) {
print(userTypeRef.toString())
return
}
for ((index, qualifier) in userTypeRef.qualifier.withIndex()) {
if (index != 0) {
print(".")
@@ -21,6 +21,8 @@ class FirUserTypeRefImpl(
override val qualifier: MutableList<FirQualifierPart>,
override val annotations: MutableList<FirAnnotationCall>
) : FirUserTypeRef(), FirAnnotationContainer {
override val customRenderer: Boolean
get() = false
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
for (part in qualifier) {
@@ -571,6 +571,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
userTypeRef.configure {
+fieldList("qualifier", firQualifierPartType)
+booleanField("customRenderer")
}
functionTypeRef.configure {