Partial raw FIR building

This commit is contained in:
Roman Golyshev
2020-06-18 17:48:34 +03:00
committed by Ilya Kirillov
parent a1b621d987
commit 6129f4bcef
13 changed files with 186 additions and 9 deletions
@@ -50,8 +50,14 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
)
}
abstract class RenderMode(val renderLambdaBodies: Boolean, val renderCallArguments: Boolean) {
object Normal : RenderMode(renderLambdaBodies = true, renderCallArguments = true)
abstract class RenderMode(
val renderLambdaBodies: Boolean,
val renderCallArguments: Boolean,
val renderCallableFqNames: Boolean
) {
object Normal : RenderMode(renderLambdaBodies = true, renderCallArguments = true, renderCallableFqNames = false)
object WithFqNames: RenderMode(renderLambdaBodies = true, renderCallArguments = true, renderCallableFqNames = true)
}
private val printer = Printer(builder)
@@ -150,8 +156,20 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
print(".")
}
when (callableDeclaration) {
is FirSimpleFunction -> print(callableDeclaration.name)
is FirVariable<*> -> print(callableDeclaration.name)
is FirSimpleFunction -> {
if (!mode.renderCallableFqNames) {
print(callableDeclaration.name)
} else {
print(callableDeclaration.symbol.callableId)
}
}
is FirVariable<*> -> {
if (!mode.renderCallableFqNames) {
print(callableDeclaration.name)
} else {
print(callableDeclaration.symbol.callableId)
}
}
}
if (callableDeclaration is FirFunction<*>) {