From 801426d0e69305dac82b5ea9b97b521220dcf623 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 8 Jul 2022 16:19:14 +0200 Subject: [PATCH] Simplify creation of FirRenderer --- .../analysis/api/fir/KtSymbolByFirBuilder.kt | 5 +- .../api/fir/components/KtFirTypeProvider.kt | 6 +- .../api/fir/symbols/firSymbolUtils.kt | 5 +- .../AbstractFirLazyDeclarationResolveTest.kt | 3 +- .../api/fir/AbstractFirOnAirResolveTest.kt | 5 +- .../api/fir/AbstractGetOrBuildFirTest.kt | 2 +- .../AbstractPartialRawFirBuilderTestCase.kt | 2 +- ...stractInnerDeclarationsResolvePhaseTest.kt | 5 +- .../diagnostics/FirDiagnosticRenderers.kt | 4 +- .../AbstractLightTree2FirConverterTestCase.kt | 2 +- .../builder/AbstractRawFirBuilderTestCase.kt | 2 +- .../fir/resolve/dfa/cfg/CFGNodeRenderer.kt | 2 +- .../kotlin/fir/renderer/FirRenderer.kt | 91 ++++++------------- .../frontend/fir/handlers/FirDumpHandler.kt | 3 +- .../fir/handlers/FirScopeDumpHandler.kt | 5 +- 15 files changed, 47 insertions(+), 95 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index fd4ae8c8d95..0f45708bcbd 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -28,7 +28,6 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl import org.jetbrains.kotlin.fir.declarations.impl.FirOuterClassTypeParameterRef import org.jetbrains.kotlin.fir.java.declarations.FirJavaField import org.jetbrains.kotlin.fir.renderer.FirRenderer -import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer import org.jetbrains.kotlin.fir.resolve.getContainingClass import org.jetbrains.kotlin.fir.resolve.getSymbolByLookupTag import org.jetbrains.kotlin.fir.resolve.inference.ConeTypeParameterBasedTypeVariable @@ -584,9 +583,7 @@ internal class KtSymbolByFirBuilder constructor( returns() implies requirement } require(requirement) { - val renderedSymbol = FirRenderer().with( - resolvePhaseRenderer = FirResolvePhaseRenderer() - ).renderElementWithTypeAsString(firSymbol.fir) + val renderedSymbol = FirRenderer.withResolvePhase().renderElementWithTypeAsString(firSymbol.fir) "Cannot build ${S::class.simpleName} for $renderedSymbol}" } } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt index 9c7bc429c08..fe79c791941 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirTypeProvider.kt @@ -30,7 +30,6 @@ import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall import org.jetbrains.kotlin.fir.expressions.FirGetClassCall -import org.jetbrains.kotlin.fir.renderer.FirCallNoArgumentsRenderer import org.jetbrains.kotlin.fir.renderer.FirRenderer import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.toSymbol @@ -160,10 +159,7 @@ internal class KtFirTypeProvider( ?: this.typeArguments.mapNotNull { it.type }) require(typeParameterSymbols.size == argumentTypes.size) { - val renderedSymbol = FirRenderer().with( - annotationRenderer = null, bodyRenderer = null, propertyAccessorRenderer = null, - callArgumentsRenderer = FirCallNoArgumentsRenderer() - ).renderElementAsString(symbol.fir) + val renderedSymbol = FirRenderer.noAnnotationBodiesAccessorAndArguments().renderElementAsString(symbol.fir) "'$renderedSymbol' expects '${typeParameterSymbols.size}' type arguments " + "but type '${this.renderForDebugging()}' has ${argumentTypes.size} type arguments." } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/firSymbolUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/firSymbolUtils.kt index b260d6e9c8c..235a7411ed3 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/firSymbolUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/firSymbolUtils.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.fir.renderer.FirRenderer -import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.ensureResolved import org.jetbrains.kotlin.fir.symbols.impl.* @@ -32,9 +31,7 @@ import org.jetbrains.kotlin.psi.KtDeclaration internal fun FirCallableSymbol<*>.invalidModalityError(): Nothing { - val rendered = FirRenderer().with( - resolvePhaseRenderer = FirResolvePhaseRenderer() - ).renderElementWithTypeAsString(fir) + val rendered = FirRenderer.withResolvePhase().renderElementWithTypeAsString(fir) error( """|Symbol modality should not be null, looks like the FIR symbol was not properly resolved | diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt index 90c6636394f..43cad476144 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt @@ -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() ) diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirOnAirResolveTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirOnAirResolveTest.kt index 8392f37068b..1f928a4cb14 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirOnAirResolveTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirOnAirResolveTest.kt @@ -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) } } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractGetOrBuildFirTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractGetOrBuildFirTest.kt index 5d82a6abf28..7cb75d36d7a 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractGetOrBuildFirTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractGetOrBuildFirTest.kt @@ -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() { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractPartialRawFirBuilderTestCase.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractPartialRawFirBuilderTestCase.kt index 0cbddee8494..90a2e80ece9 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractPartialRawFirBuilderTestCase.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractPartialRawFirBuilderTestCase.kt @@ -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) } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/AbstractInnerDeclarationsResolvePhaseTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/AbstractInnerDeclarationsResolvePhaseTest.kt index 4639a8268c2..673eea6ba2b 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/AbstractInnerDeclarationsResolvePhaseTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/resolve/AbstractInnerDeclarationsResolvePhaseTest.kt @@ -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(firResolveSession) - val actual = FirRenderer().with( - resolvePhaseRenderer = FirResolvePhaseRenderer() - ).renderElementAsString(firFile) + val actual = FirRenderer.withResolvePhase().renderElementAsString(firFile) testServices.assertions.assertEqualsToTestDataFileSibling(actual, extension = ".fir.txt") } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt index d63fc911f3c..3becaa10076 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt @@ -27,7 +27,7 @@ object FirDiagnosticRenderers { val SYMBOL = Renderer { symbol: FirBasedSymbol<*> -> when (symbol) { is FirClassLikeSymbol<*>, - is FirCallableSymbol<*> -> FirRenderer().with( + is FirCallableSymbol<*> -> FirRenderer( typeRenderer = ConeTypeRenderer(), idRenderer = ConeIdShortRenderer(), classMemberRenderer = FirNoClassMemberRenderer(), @@ -103,7 +103,7 @@ object FirDiagnosticRenderers { val FQ_NAMES_IN_TYPES = Renderer { symbol: FirBasedSymbol<*> -> @OptIn(SymbolInternals::class) - FirRenderer().with( + FirRenderer( annotationRenderer = null, bodyRenderer = null, idRenderer = ConeIdFullRenderer() ).renderElementAsString(symbol.fir) } diff --git a/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/AbstractLightTree2FirConverterTestCase.kt b/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/AbstractLightTree2FirConverterTestCase.kt index 27d4fe1c8eb..f062082bb10 100644 --- a/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/AbstractLightTree2FirConverterTestCase.kt +++ b/compiler/fir/raw-fir/light-tree2fir/tests/org/jetbrains/kotlin/fir/lightTree/AbstractLightTree2FirConverterTestCase.kt @@ -24,7 +24,7 @@ abstract class AbstractLightTree2FirConverterTestCase : AbstractRawFirBuilderTes scopeProvider = StubFirScopeProvider, diagnosticsReporter = null ).buildFirFile(Paths.get(filePath)) - val firDump = FirRenderer().with(declarationRenderer = FirDeclarationRendererWithAttributes()).renderElementAsString(firFile) + val firDump = FirRenderer.withDeclarationAttributes().renderElementAsString(firFile) val expectedFile = File(filePath.replace(".kt", ".txt")) KotlinTestUtils.assertEqualsToFile(expectedFile, firDump) diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt index cf233c6a813..36c08f1cde8 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt @@ -66,7 +66,7 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase( protected open fun doRawFirTest(filePath: String) { val file = createKtFile(filePath) val firFile = file.toFirFile(BodyBuildingMode.NORMAL) - val firFileDump = FirRenderer().with(declarationRenderer = FirDeclarationRendererWithAttributes()).renderElementAsString(firFile) + val firFileDump = FirRenderer.withDeclarationAttributes().renderElementAsString(firFile) val expectedPath = filePath.replace(".kt", ".txt") KotlinTestUtils.assertEqualsToFile(File(expectedPath), firFileDump) } diff --git a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt index 92a2db24607..44dd29f8a23 100644 --- a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt +++ b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt @@ -134,7 +134,7 @@ fun CFGNode<*>.render(): String = // NB: renderer has a state, so we have to create it each time private val CfgRenderer - get() = FirRenderer().with(annotationRenderer = null, callArgumentsRenderer = FirCallNoArgumentsRenderer()) + get() = FirRenderer(annotationRenderer = null, callArgumentsRenderer = FirCallNoArgumentsRenderer()) private fun FirFunction.name(): String = when (this) { is FirSimpleFunction -> name.asString() diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt index 027959a684d..f6b1554b25d 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/renderer/FirRenderer.kt @@ -28,27 +28,41 @@ import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly import org.jetbrains.kotlin.utils.addToStdlib.safeAs import java.util.* -class FirRenderer private constructor( - private val builder: StringBuilder, - components: FirComponentsImpl, - private val annotationRenderer: FirAnnotationRenderer?, - private val bodyRenderer: FirBodyRenderer?, - private val callArgumentsRenderer: FirCallArgumentsRenderer, - private val classMemberRenderer: FirClassMemberRenderer, - private val contractRenderer: ConeContractRenderer?, - private val declarationRenderer: FirDeclarationRenderer, - private val idRenderer: ConeIdRenderer, - private val modifierRenderer: FirModifierRenderer, - private val packageDirectiveRenderer: FirPackageDirectiveRenderer?, - private val propertyAccessorRenderer: FirPropertyAccessorRenderer?, - private val resolvePhaseRenderer: FirResolvePhaseRenderer?, - private val typeRenderer: ConeTypeRenderer, - private val valueParameterRenderer: FirValueParameterRenderer, +class FirRenderer( + builder: StringBuilder = StringBuilder(), + private val annotationRenderer: FirAnnotationRenderer? = FirAnnotationRenderer(), + private val bodyRenderer: FirBodyRenderer? = FirBodyRenderer(), + private val callArgumentsRenderer: FirCallArgumentsRenderer = FirCallArgumentsRenderer(), + private val classMemberRenderer: FirClassMemberRenderer = FirClassMemberRenderer(), + private val contractRenderer: ConeContractRenderer? = ConeContractRenderer(), + private val declarationRenderer: FirDeclarationRenderer = FirDeclarationRenderer(), + private val idRenderer: ConeIdRenderer = ConeIdRendererForDebugging(), + private val modifierRenderer: FirModifierRenderer = FirAllModifierRenderer(), + private val packageDirectiveRenderer: FirPackageDirectiveRenderer? = null, + private val propertyAccessorRenderer: FirPropertyAccessorRenderer? = FirPropertyAccessorRenderer(), + resolvePhaseRenderer: FirResolvePhaseRenderer? = null, + private val typeRenderer: ConeTypeRenderer = ConeTypeRendererForDebugging(), + private val valueParameterRenderer: FirValueParameterRenderer = FirValueParameterRenderer(), ) : FirPrinter(builder) { private val visitor = Visitor() + companion object { + fun noAnnotationBodiesAccessorAndArguments(): FirRenderer = + FirRenderer( + annotationRenderer = null, bodyRenderer = null, propertyAccessorRenderer = null, + callArgumentsRenderer = FirCallNoArgumentsRenderer() + ) + + fun withResolvePhase(): FirRenderer = + FirRenderer(resolvePhaseRenderer = FirResolvePhaseRenderer()) + + fun withDeclarationAttributes(): FirRenderer = + FirRenderer(declarationRenderer = FirDeclarationRendererWithAttributes()) + } + init { + val components = FirComponentsImpl() components.visitor = visitor components.annotationRenderer = annotationRenderer components.bodyRenderer = bodyRenderer @@ -80,51 +94,6 @@ class FirRenderer private constructor( valueParameterRenderer.components = components } - private constructor( - builder: StringBuilder, - components: FirComponentsImpl, - ) : this( - builder, - components, - FirAnnotationRenderer(), - FirBodyRenderer(), - FirCallArgumentsRenderer(), - FirClassMemberRenderer(), - ConeContractRenderer(), - FirDeclarationRenderer(), - ConeIdRendererForDebugging(), - FirAllModifierRenderer(), - packageDirectiveRenderer = null, - FirPropertyAccessorRenderer(), - resolvePhaseRenderer = null, - ConeTypeRendererForDebugging(), - FirValueParameterRenderer(), - ) - - constructor(builder: StringBuilder = StringBuilder()) : this(builder, FirComponentsImpl()) - - fun with( - annotationRenderer: FirAnnotationRenderer? = this.annotationRenderer, - bodyRenderer: FirBodyRenderer? = this.bodyRenderer, - callArgumentsRenderer: FirCallArgumentsRenderer = this.callArgumentsRenderer, - classMemberRenderer: FirClassMemberRenderer = this.classMemberRenderer, - contractRenderer: ConeContractRenderer? = this.contractRenderer, - declarationRenderer: FirDeclarationRenderer = this.declarationRenderer, - idRenderer: ConeIdRenderer = this.idRenderer, - modifierRenderer: FirModifierRenderer = this.modifierRenderer, - packageDirectiveRenderer: FirPackageDirectiveRenderer? = this.packageDirectiveRenderer, - propertyAccessorRenderer: FirPropertyAccessorRenderer? = this.propertyAccessorRenderer, - resolvePhaseRenderer: FirResolvePhaseRenderer? = this.resolvePhaseRenderer, - typeRenderer: ConeTypeRenderer = this.typeRenderer, - valueParameterRenderer: FirValueParameterRenderer = this.valueParameterRenderer, - ): FirRenderer = FirRenderer( - builder, FirComponentsImpl(), - annotationRenderer, bodyRenderer, callArgumentsRenderer, classMemberRenderer, - contractRenderer, declarationRenderer, idRenderer, modifierRenderer, - packageDirectiveRenderer, propertyAccessorRenderer, - resolvePhaseRenderer, typeRenderer, valueParameterRenderer - ) - fun renderElementAsString(element: FirElement): String { element.accept(visitor) return toString() diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDumpHandler.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDumpHandler.kt index 6a2fdf30a5d..b937379d2a3 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDumpHandler.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDumpHandler.kt @@ -39,7 +39,8 @@ class FirDumpHandler( addAll(info.session.createFilesWithGeneratedDeclarations()) } - val renderer = FirRenderer(builderForModule).with( + val renderer = FirRenderer( + builder = builderForModule, packageDirectiveRenderer = FirPackageDirectiveRenderer(), classMemberRenderer = FirClassMemberRendererWithGeneratedDeclarations(info.session) ) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt index 7a0a412481b..dee01831486 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt @@ -137,10 +137,7 @@ class FirScopeDumpHandler(testServices: TestServices) : FirAnalysisHandler(testS private fun SmartPrinter.printInfo(declaration: FirCallableDeclaration, scope: FirTypeScope, counter: SymbolCounter) { print("[${declaration.origin}]: ") - val renderedDeclaration = FirRenderer().with( - annotationRenderer = null, bodyRenderer = null, propertyAccessorRenderer = null, - callArgumentsRenderer = FirCallNoArgumentsRenderer() - ).renderElementAsString(declaration).trim() + val renderedDeclaration = FirRenderer.noAnnotationBodiesAccessorAndArguments().renderElementAsString(declaration).trim() print(renderedDeclaration) print(" from $scope") println(" [id: ${counter.getIndex(declaration.symbol)}]")