Simplify creation of FirRenderer

This commit is contained in:
Mikhail Glukhikh
2022-07-08 16:19:14 +02:00
committed by Space
parent f9fdb5d3bc
commit 801426d0e6
15 changed files with 47 additions and 95 deletions
@@ -53,7 +53,8 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
override fun doTestByFileStructure(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices) {
val resultBuilder = StringBuilder()
val renderer = FirRenderer(resultBuilder).with(
val renderer = FirRenderer(
builder = resultBuilder,
declarationRenderer = FirDeclarationRendererWithAttributes(),
resolvePhaseRenderer = FirResolvePhaseRenderer()
)
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LowLevelFirApiFacadeF
import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceResolveSession
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest
import org.jetbrains.kotlin.fir.renderer.FirRenderer
import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer
import org.jetbrains.kotlin.psi.KtAnnotated
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtFile
@@ -35,9 +34,7 @@ abstract class AbstractFirOnAirResolveTest : AbstractLowLevelApiSingleFileTest()
resolveWithClearCaches(ktFile) { firResolveSession ->
check(firResolveSession is LLFirSourceResolveSession)
val firElement = LowLevelFirApiFacadeForResolveOnAir.onAirResolveElement(firResolveSession, place, onAir)
val rendered = FirRenderer().with(
resolvePhaseRenderer = FirResolvePhaseRenderer()
).renderElementAsString(firElement)
val rendered = FirRenderer.withResolvePhase().renderElementAsString(firElement)
testServices.assertions.assertEqualsToTestDataFileSibling(rendered)
}
}
@@ -60,7 +60,7 @@ abstract class AbstractGetOrBuildFirTest : AbstractLowLevelApiSingleFileTest() {
private fun render(firElement: FirElement?): String = when (firElement) {
null -> "null"
is FirImport -> "import ${firElement.importedFqName}"
else -> FirRenderer().with(packageDirectiveRenderer = FirPackageDirectiveRenderer()).renderElementAsString(firElement)
else -> FirRenderer(packageDirectiveRenderer = FirPackageDirectiveRenderer()).renderElementAsString(firElement)
}
private object Directives : SimpleDirectivesContainer() {
@@ -127,7 +127,7 @@ abstract class AbstractPartialRawFirBuilderTestCase : AbstractLowLevelApiSingleF
null
)
val firDump = FirRenderer().with(idRenderer = ConeIdFullRenderer()).renderElementAsString(firElement)
val firDump = FirRenderer(idRenderer = ConeIdFullRenderer()).renderElementAsString(firElement)
JUnit5Assertions.assertEqualsToTestDataFileSibling(firDump)
}
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.resolveWithClearCaches
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.renderer.FirRenderer
import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.services.TestModuleStructure
import org.jetbrains.kotlin.test.services.TestServices
@@ -20,9 +19,7 @@ abstract class AbstractInnerDeclarationsResolvePhaseTest : AbstractLowLevelApiSi
override fun doTestByFileStructure(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices) {
resolveWithClearCaches(ktFile) { firResolveSession ->
val firFile = ktFile.getOrBuildFirOfType<FirFile>(firResolveSession)
val actual = FirRenderer().with(
resolvePhaseRenderer = FirResolvePhaseRenderer()
).renderElementAsString(firFile)
val actual = FirRenderer.withResolvePhase().renderElementAsString(firFile)
testServices.assertions.assertEqualsToTestDataFileSibling(actual, extension = ".fir.txt")
}
}