FirRenderer: partially get rid of RenderMode
This commit is contained in:
+9
-11
@@ -10,6 +10,8 @@ import org.jetbrains.kotlin.fir.backend.createFilesWithGeneratedDeclarations
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.extensions.generatedMembers
|
||||
import org.jetbrains.kotlin.fir.extensions.generatedNestedClassifiers
|
||||
import org.jetbrains.kotlin.fir.renderer.FirClassMemberRenderer
|
||||
import org.jetbrains.kotlin.fir.renderer.FirPackageDirectiveRenderer
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||
@@ -37,7 +39,10 @@ class FirDumpHandler(
|
||||
addAll(info.session.createFilesWithGeneratedDeclarations())
|
||||
}
|
||||
|
||||
val renderer = FirRendererWithGeneratedDeclarations(info.session, builderForModule)
|
||||
val renderer = FirRenderer(builderForModule).with(
|
||||
packageDirectiveRenderer = FirPackageDirectiveRenderer(),
|
||||
classMemberRenderer = FirClassMemberRendererWithGeneratedDeclarations(info.session)
|
||||
)
|
||||
allFiles.forEach {
|
||||
renderer.renderElementAsString(it)
|
||||
}
|
||||
@@ -52,21 +57,14 @@ class FirDumpHandler(
|
||||
assertions.assertEqualsToFile(expectedFile, actualText, message = { "Content is not equal" })
|
||||
}
|
||||
|
||||
private class FirRendererWithGeneratedDeclarations(
|
||||
val session: FirSession,
|
||||
builder: StringBuilder,
|
||||
) : FirRenderer(builder, modeWithPackageDirective) {
|
||||
companion object {
|
||||
val modeWithPackageDirective = RenderMode.Normal.copy(renderPackageDirective = true)
|
||||
}
|
||||
|
||||
override fun renderClassDeclarations(regularClass: FirRegularClass) {
|
||||
private class FirClassMemberRendererWithGeneratedDeclarations(val session: FirSession) : FirClassMemberRenderer() {
|
||||
override fun render(regularClass: FirRegularClass) {
|
||||
val allDeclarations = buildList {
|
||||
addAll(regularClass.declarations)
|
||||
addAll(regularClass.generatedMembers(session))
|
||||
addAll(regularClass.generatedNestedClassifiers(session))
|
||||
}
|
||||
allDeclarations.renderDeclarations()
|
||||
render(allDeclarations)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -136,7 +136,10 @@ class FirScopeDumpHandler(testServices: TestServices) : FirAnalysisHandler(testS
|
||||
|
||||
private fun SmartPrinter.printInfo(declaration: FirCallableDeclaration, scope: FirTypeScope, counter: SymbolCounter) {
|
||||
print("[${declaration.origin}]: ")
|
||||
print(declaration.render(FirRenderer.RenderMode.NoBodies).trim())
|
||||
val renderedDeclaration = FirRenderer(mode = FirRenderer.RenderMode.NoBodies).with(
|
||||
annotationRenderer = null, bodyRenderer = null
|
||||
).renderElementAsString(declaration).trim()
|
||||
print(renderedDeclaration)
|
||||
print(" from $scope")
|
||||
println(" [id: ${counter.getIndex(declaration.symbol)}]")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user