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 packageDirectiveRenderer: FirPackageDirectiveRenderer? = null
|
||||
|
||||
override lateinit var declarationRenderer: FirDeclarationRenderer
|
||||
|
||||
override lateinit var typeRenderer: ConeTypeRenderer
|
||||
@@ -174,6 +176,8 @@ open class FirRenderer private constructor(
|
||||
else -> FirDeclarationRenderer(components)
|
||||
}
|
||||
|
||||
private val packageDirectiveRenderer = if (mode.renderPackageDirective) FirPackageDirectiveRenderer(components) else null
|
||||
|
||||
@Suppress("LeakingThis")
|
||||
private val typeRenderer =
|
||||
if (mode.renderDetailedTypeReferences) ConeTypeRendererForDebugging(builder) else ConeTypeRenderer(builder)
|
||||
@@ -183,6 +187,7 @@ open class FirRenderer private constructor(
|
||||
components.annotationRenderer = annotationRenderer
|
||||
components.bodyRenderer = bodyRenderer
|
||||
components.declarationRenderer = declarationRenderer
|
||||
components.packageDirectiveRenderer = packageDirectiveRenderer
|
||||
components.typeRenderer = typeRenderer
|
||||
@Suppress("LeakingThis")
|
||||
components.printer = this
|
||||
@@ -1406,12 +1411,7 @@ open class FirRenderer private constructor(
|
||||
}
|
||||
|
||||
override fun visitPackageDirective(packageDirective: FirPackageDirective) {
|
||||
if (mode.renderPackageDirective) {
|
||||
if (!packageDirective.packageFqName.isRoot) {
|
||||
println("package ${packageDirective.packageFqName.asString()}")
|
||||
println()
|
||||
}
|
||||
}
|
||||
packageDirectiveRenderer?.render(packageDirective)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,5 +11,6 @@ internal interface FirRendererComponents {
|
||||
val declarationRenderer: FirDeclarationRenderer
|
||||
val annotationRenderer: FirAnnotationRenderer?
|
||||
val bodyRenderer: FirBodyRenderer?
|
||||
val packageDirectiveRenderer: FirPackageDirectiveRenderer?
|
||||
val typeRenderer: ConeTypeRenderer
|
||||
}
|
||||
Reference in New Issue
Block a user