From 1f834aa99c0418daad66574d46c39626f4253c8a Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 10 Feb 2023 18:11:20 +0100 Subject: [PATCH] [Analysis API FIR] avoid redundant resolve in renderer Before we resolved all declarations to body resolve. It was rarely needed and badly affects performance. If the resolution will still be needed, it will be lazily performed by KtSymbol --- .../api/fir/components/KtFirRendererProvider.kt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirRendererProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirRendererProvider.kt index eb61e0bdc62..110d40b4fab 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirRendererProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirRendererProvider.kt @@ -7,21 +7,11 @@ package org.jetbrains.kotlin.analysis.api.fir.components import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals import org.jetbrains.kotlin.analysis.api.KtAnalysisSession -import org.jetbrains.kotlin.analysis.api.fir.utils.firSymbol import org.jetbrains.kotlin.analysis.api.impl.base.components.KtRendererProviderImpl import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken -import org.jetbrains.kotlin.analysis.api.renderer.declarations.KtDeclarationRenderer -import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol -import org.jetbrains.kotlin.fir.declarations.FirResolvePhase -import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase @OptIn(KtAnalysisApiInternals::class) internal class KtFirRendererProvider( analysisSession: KtAnalysisSession, token: KtLifetimeToken -) : KtRendererProviderImpl(analysisSession, token) { - override fun renderDeclaration(symbol: KtDeclarationSymbol, renderer: KtDeclarationRenderer): String { - symbol.firSymbol.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE) - return super.renderDeclaration(symbol, renderer) - } -} \ No newline at end of file +) : KtRendererProviderImpl(analysisSession, token) \ No newline at end of file