Extract separate FirPackageDirectiveRenderer
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.renderer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.FirPackageDirective
|
||||||
|
|
||||||
|
class FirPackageDirectiveRenderer internal constructor(components: FirRendererComponents) : FirRendererComponents by components {
|
||||||
|
fun render(packageDirective: FirPackageDirective) {
|
||||||
|
if (!packageDirective.packageFqName.isRoot) {
|
||||||
|
printer.println("package ${packageDirective.packageFqName.asString()}")
|
||||||
|
printer.println()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -67,6 +67,8 @@ open class FirRenderer private constructor(
|
|||||||
|
|
||||||
override var bodyRenderer: FirBodyRenderer? = null
|
override var bodyRenderer: FirBodyRenderer? = null
|
||||||
|
|
||||||
|
override var packageDirectiveRenderer: FirPackageDirectiveRenderer? = null
|
||||||
|
|
||||||
override lateinit var declarationRenderer: FirDeclarationRenderer
|
override lateinit var declarationRenderer: FirDeclarationRenderer
|
||||||
|
|
||||||
override lateinit var typeRenderer: ConeTypeRenderer
|
override lateinit var typeRenderer: ConeTypeRenderer
|
||||||
@@ -174,6 +176,8 @@ open class FirRenderer private constructor(
|
|||||||
else -> FirDeclarationRenderer(components)
|
else -> FirDeclarationRenderer(components)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val packageDirectiveRenderer = if (mode.renderPackageDirective) FirPackageDirectiveRenderer(components) else null
|
||||||
|
|
||||||
@Suppress("LeakingThis")
|
@Suppress("LeakingThis")
|
||||||
private val typeRenderer =
|
private val typeRenderer =
|
||||||
if (mode.renderDetailedTypeReferences) ConeTypeRendererForDebugging(builder) else ConeTypeRenderer(builder)
|
if (mode.renderDetailedTypeReferences) ConeTypeRendererForDebugging(builder) else ConeTypeRenderer(builder)
|
||||||
@@ -183,6 +187,7 @@ open class FirRenderer private constructor(
|
|||||||
components.annotationRenderer = annotationRenderer
|
components.annotationRenderer = annotationRenderer
|
||||||
components.bodyRenderer = bodyRenderer
|
components.bodyRenderer = bodyRenderer
|
||||||
components.declarationRenderer = declarationRenderer
|
components.declarationRenderer = declarationRenderer
|
||||||
|
components.packageDirectiveRenderer = packageDirectiveRenderer
|
||||||
components.typeRenderer = typeRenderer
|
components.typeRenderer = typeRenderer
|
||||||
@Suppress("LeakingThis")
|
@Suppress("LeakingThis")
|
||||||
components.printer = this
|
components.printer = this
|
||||||
@@ -1406,12 +1411,7 @@ open class FirRenderer private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitPackageDirective(packageDirective: FirPackageDirective) {
|
override fun visitPackageDirective(packageDirective: FirPackageDirective) {
|
||||||
if (mode.renderPackageDirective) {
|
packageDirectiveRenderer?.render(packageDirective)
|
||||||
if (!packageDirective.packageFqName.isRoot) {
|
|
||||||
println("package ${packageDirective.packageFqName.asString()}")
|
|
||||||
println()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,5 +11,6 @@ internal interface FirRendererComponents {
|
|||||||
val declarationRenderer: FirDeclarationRenderer
|
val declarationRenderer: FirDeclarationRenderer
|
||||||
val annotationRenderer: FirAnnotationRenderer?
|
val annotationRenderer: FirAnnotationRenderer?
|
||||||
val bodyRenderer: FirBodyRenderer?
|
val bodyRenderer: FirBodyRenderer?
|
||||||
|
val packageDirectiveRenderer: FirPackageDirectiveRenderer?
|
||||||
val typeRenderer: ConeTypeRenderer
|
val typeRenderer: ConeTypeRenderer
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user