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