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(
|
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) {
|
private fun FirFunction<*>.name(): String = when (this) {
|
||||||
|
|||||||
@@ -50,11 +50,29 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
abstract class RenderMode(
|
abstract class RenderMode(
|
||||||
val renderLambdaBodies: Boolean,
|
val renderLambdaBodies: Boolean,
|
||||||
val renderCallArguments: 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)
|
private val printer = Printer(builder)
|
||||||
@@ -322,6 +340,9 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitDeclaration(declaration: FirDeclaration) {
|
override fun visitDeclaration(declaration: FirDeclaration) {
|
||||||
|
if (mode.renderDeclatationResovlePhase) {
|
||||||
|
print("[${declaration.resolvePhase}] ")
|
||||||
|
}
|
||||||
print(
|
print(
|
||||||
when (declaration) {
|
when (declaration) {
|
||||||
is FirRegularClass -> declaration.classKind.name.toLowerCase().replace("_", " ")
|
is FirRegularClass -> declaration.classKind.name.toLowerCase().replace("_", " ")
|
||||||
|
|||||||
Reference in New Issue
Block a user