FIR: allow declaring specific set of parameters for FirRenderer

This commit is contained in:
Ilya Kirillov
2021-04-14 16:57:44 +02:00
committed by TeamCityServer
parent fee83051e9
commit 5de4c5fc28
2 changed files with 50 additions and 48 deletions
@@ -125,7 +125,7 @@ fun CFGNode<*>.render(): String =
) )
} }
private object CfgRenderMode : FirRenderer.RenderMode( private val CfgRenderMode = FirRenderer.RenderMode(
renderLambdaBodies = false, renderLambdaBodies = false,
renderCallArguments = false, renderCallArguments = false,
renderCallableFqNames = false, renderCallableFqNames = false,
@@ -51,7 +51,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
) )
} }
abstract class RenderMode( data class RenderMode(
val renderLambdaBodies: Boolean, val renderLambdaBodies: Boolean,
val renderCallArguments: Boolean, val renderCallArguments: Boolean,
val renderCallableFqNames: Boolean, val renderCallableFqNames: Boolean,
@@ -61,7 +61,8 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
val renderPropertyAccessors: Boolean = true, val renderPropertyAccessors: Boolean = true,
val renderDeclarationAttributes: Boolean = false, val renderDeclarationAttributes: Boolean = false,
) { ) {
object Normal : RenderMode( companion object {
val Normal = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = false, renderCallableFqNames = false,
@@ -69,7 +70,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
renderAnnotation = true, renderAnnotation = true,
) )
object WithFqNames : RenderMode( val WithFqNames = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = true, renderCallableFqNames = true,
@@ -77,7 +78,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
renderAnnotation = true, renderAnnotation = true,
) )
object WithFqNamesExceptAnnotationAndBody : RenderMode( val WithFqNamesExceptAnnotationAndBody = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = true, renderCallableFqNames = true,
@@ -86,7 +87,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
renderBodies = false, renderBodies = false,
) )
object WithResolvePhases : RenderMode( val WithResolvePhases = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = false, renderCallableFqNames = false,
@@ -94,7 +95,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
renderAnnotation = true, renderAnnotation = true,
) )
object NoBodies : RenderMode( val NoBodies = RenderMode(
renderLambdaBodies = false, renderLambdaBodies = false,
renderCallArguments = false, renderCallArguments = false,
renderCallableFqNames = false, renderCallableFqNames = false,
@@ -104,7 +105,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
renderPropertyAccessors = false, renderPropertyAccessors = false,
) )
object WithDeclarationAttributes : RenderMode( val WithDeclarationAttributes = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = false, renderCallableFqNames = false,
@@ -113,6 +114,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
renderDeclarationAttributes = true, renderDeclarationAttributes = true,
) )
} }
}
private val printer = Printer(builder) private val printer = Printer(builder)