FirRenderer: get rid of direct Visitor usages

This commit is contained in:
Mikhail Glukhikh
2022-07-06 13:24:18 +02:00
committed by Space
parent 998ed8849f
commit 089044e5b0
14 changed files with 51 additions and 39 deletions
@@ -37,14 +37,14 @@ abstract class AbstractFirLoadBinariesTest : AbstractFirResolveWithSessionTestCa
for (name in declarationNames) {
for (symbol in provider.getTopLevelCallableSymbols(packageFqName, name)) {
symbol.fir.accept(firRenderer.Visitor())
firRenderer.renderElementAsString(symbol.fir)
builder.appendLine()
}
}
for (name in declarationNames) {
val classLikeSymbol = provider.getClassLikeSymbolByClassId(ClassId.topLevel(packageFqName.child(name))) ?: continue
classLikeSymbol.fir.accept(firRenderer.Visitor())
firRenderer.renderElementAsString(classLikeSymbol.fir)
builder.appendLine()
}
@@ -24,10 +24,9 @@ fun renderJavaClass(renderer: FirRenderer, javaClass: FirJavaClass, session: Fir
val memberScope = javaClass.unsubstitutedScope(session, ScopeSession(), withForcedTypeCalculator = true)
val staticScope = javaClass.scopeProvider.getStaticScope(javaClass, session, ScopeSession())
val visitor = renderer.Visitor()
renderer.renderAnnotations(javaClass)
visitor.visitMemberDeclaration(javaClass)
renderer.renderMemberDeclarationClass(javaClass)
renderer.renderSupertypes(javaClass)
renderer.renderInBraces {
val renderedDeclarations = mutableListOf<FirDeclaration>()
@@ -35,7 +34,7 @@ fun renderJavaClass(renderer: FirRenderer, javaClass: FirJavaClass, session: Fir
fun renderAndCache(symbol: FirCallableSymbol<*>) {
val enhanced = symbol.fir
if (enhanced !in renderedDeclarations) {
enhanced.accept(visitor, null)
renderer.renderElementAsString(enhanced)
renderer.newLine()
renderedDeclarations += enhanced
}
@@ -56,7 +55,7 @@ fun renderJavaClass(renderer: FirRenderer, javaClass: FirJavaClass, session: Fir
is FirJavaField -> scopeToUse!!.processPropertiesByName(declaration.name, ::renderAndCache)
is FirEnumEntry -> scopeToUse!!.processPropertiesByName(declaration.name, ::renderAndCache)
else -> {
declaration.accept(visitor, null)
renderer.renderElementAsString(declaration)
renderer.newLine()
renderedDeclarations += declaration
}