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,57 +61,59 @@ 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 {
renderLambdaBodies = true, val Normal = RenderMode(
renderCallArguments = true, renderLambdaBodies = true,
renderCallableFqNames = false, renderCallArguments = true,
renderDeclarationResolvePhase = false, renderCallableFqNames = false,
renderAnnotation = true, renderDeclarationResolvePhase = false,
) renderAnnotation = true,
)
object WithFqNames : RenderMode( val WithFqNames = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = true, renderCallableFqNames = true,
renderDeclarationResolvePhase = false, renderDeclarationResolvePhase = false,
renderAnnotation = true, renderAnnotation = true,
) )
object WithFqNamesExceptAnnotationAndBody : RenderMode( val WithFqNamesExceptAnnotationAndBody = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = true, renderCallableFqNames = true,
renderDeclarationResolvePhase = false, renderDeclarationResolvePhase = false,
renderAnnotation = false, renderAnnotation = false,
renderBodies = false, renderBodies = false,
) )
object WithResolvePhases : RenderMode( val WithResolvePhases = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = false, renderCallableFqNames = false,
renderDeclarationResolvePhase = true, renderDeclarationResolvePhase = true,
renderAnnotation = true, renderAnnotation = true,
) )
object NoBodies : RenderMode( val NoBodies = RenderMode(
renderLambdaBodies = false, renderLambdaBodies = false,
renderCallArguments = false, renderCallArguments = false,
renderCallableFqNames = false, renderCallableFqNames = false,
renderDeclarationResolvePhase = false, renderDeclarationResolvePhase = false,
renderAnnotation = false, renderAnnotation = false,
renderBodies = false, renderBodies = false,
renderPropertyAccessors = false, renderPropertyAccessors = false,
) )
object WithDeclarationAttributes : RenderMode( val WithDeclarationAttributes = RenderMode(
renderLambdaBodies = true, renderLambdaBodies = true,
renderCallArguments = true, renderCallArguments = true,
renderCallableFqNames = false, renderCallableFqNames = false,
renderDeclarationResolvePhase = false, renderDeclarationResolvePhase = false,
renderAnnotation = true, renderAnnotation = true,
renderDeclarationAttributes = true, renderDeclarationAttributes = true,
) )
}
} }
private val printer = Printer(builder) private val printer = Printer(builder)