FIR renderer: extract separate ConeTypeRenderer

This commit is contained in:
Mikhail Glukhikh
2022-07-05 11:56:50 +02:00
committed by Space
parent 591143be7c
commit a82baf87cb
46 changed files with 438 additions and 266 deletions
@@ -37,14 +37,14 @@ abstract class AbstractFirLoadBinariesTest : AbstractFirResolveWithSessionTestCa
for (name in declarationNames) {
for (symbol in provider.getTopLevelCallableSymbols(packageFqName, name)) {
symbol.fir.accept(firRenderer)
symbol.fir.accept(firRenderer.Visitor())
builder.appendLine()
}
}
for (name in declarationNames) {
val classLikeSymbol = provider.getClassLikeSymbolByClassId(ClassId.topLevel(packageFqName.child(name))) ?: continue
classLikeSymbol.fir.accept(firRenderer)
classLikeSymbol.fir.accept(firRenderer.Visitor())
builder.appendLine()
}
@@ -24,9 +24,10 @@ 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)
renderer.visitMemberDeclaration(javaClass)
visitor.visitMemberDeclaration(javaClass)
renderer.renderSupertypes(javaClass)
renderer.renderInBraces {
val renderedDeclarations = mutableListOf<FirDeclaration>()
@@ -34,7 +35,7 @@ fun renderJavaClass(renderer: FirRenderer, javaClass: FirJavaClass, session: Fir
fun renderAndCache(symbol: FirCallableSymbol<*>) {
val enhanced = symbol.fir
if (enhanced !in renderedDeclarations) {
enhanced.accept(renderer, null)
enhanced.accept(visitor, null)
renderer.newLine()
renderedDeclarations += enhanced
}
@@ -55,7 +56,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(renderer, null)
declaration.accept(visitor, null)
renderer.newLine()
renderedDeclarations += declaration
}