FIR: add ability to render declaration phase in FirRenderer
This commit is contained in:
+1
-1
@@ -122,7 +122,7 @@ fun CFGNode<*>.render(): String =
|
||||
}
|
||||
|
||||
private object CfgRenderMode : FirRenderer.RenderMode(
|
||||
renderLambdaBodies = false, renderCallArguments = false, renderCallableFqNames = false
|
||||
renderLambdaBodies = false, renderCallArguments = false, renderCallableFqNames = false, renderDeclatationResovlePhase = false
|
||||
)
|
||||
|
||||
private fun FirFunction<*>.name(): String = when (this) {
|
||||
|
||||
@@ -50,11 +50,29 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
||||
abstract class RenderMode(
|
||||
val renderLambdaBodies: Boolean,
|
||||
val renderCallArguments: Boolean,
|
||||
val renderCallableFqNames: Boolean
|
||||
val renderCallableFqNames: Boolean,
|
||||
val renderDeclatationResovlePhase: Boolean
|
||||
) {
|
||||
object Normal : RenderMode(renderLambdaBodies = true, renderCallArguments = true, renderCallableFqNames = false)
|
||||
object Normal : RenderMode(
|
||||
renderLambdaBodies = true,
|
||||
renderCallArguments = true,
|
||||
renderCallableFqNames = false,
|
||||
renderDeclatationResovlePhase = false
|
||||
)
|
||||
|
||||
object WithFqNames: RenderMode(renderLambdaBodies = true, renderCallArguments = true, renderCallableFqNames = true)
|
||||
object WithFqNames : RenderMode(
|
||||
renderLambdaBodies = true,
|
||||
renderCallArguments = true,
|
||||
renderCallableFqNames = true,
|
||||
renderDeclatationResovlePhase = false
|
||||
)
|
||||
|
||||
object WithResolvePhases : RenderMode(
|
||||
renderLambdaBodies = true,
|
||||
renderCallArguments = true,
|
||||
renderCallableFqNames = false,
|
||||
renderDeclatationResovlePhase = true
|
||||
)
|
||||
}
|
||||
|
||||
private val printer = Printer(builder)
|
||||
@@ -322,6 +340,9 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
||||
}
|
||||
|
||||
override fun visitDeclaration(declaration: FirDeclaration) {
|
||||
if (mode.renderDeclatationResovlePhase) {
|
||||
print("[${declaration.resolvePhase}] ")
|
||||
}
|
||||
print(
|
||||
when (declaration) {
|
||||
is FirRegularClass -> declaration.classKind.name.toLowerCase().replace("_", " ")
|
||||
|
||||
Reference in New Issue
Block a user