Extract separate FirResolvePhaseRenderer

This commit is contained in:
Mikhail Glukhikh
2022-07-08 15:37:09 +02:00
committed by Space
parent 42b3adf33a
commit f9fdb5d3bc
10 changed files with 32 additions and 32 deletions
@@ -27,8 +27,8 @@ import org.jetbrains.kotlin.fir.declarations.*
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.FirDeclarationRendererWithResolvePhase
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
@@ -585,7 +585,7 @@ internal class KtSymbolByFirBuilder constructor(
}
require(requirement) {
val renderedSymbol = FirRenderer().with(
declarationRenderer = FirDeclarationRendererWithResolvePhase()
resolvePhaseRenderer = FirResolvePhaseRenderer()
).renderElementWithTypeAsString(firSymbol.fir)
"Cannot build ${S::class.simpleName} for $renderedSymbol}"
}
@@ -21,8 +21,8 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
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.FirDeclarationRendererWithResolvePhase
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.*
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.psi.KtDeclaration
internal fun FirCallableSymbol<*>.invalidModalityError(): Nothing {
val rendered = FirRenderer().with(
declarationRenderer = FirDeclarationRendererWithResolvePhase()
resolvePhaseRenderer = FirResolvePhaseRenderer()
).renderElementWithTypeAsString(fir)
error(
"""|Symbol modality should not be null, looks like the FIR symbol was not properly resolved
@@ -12,8 +12,9 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.realPsi
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithAttributesAndResolvePhase
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithAttributes
import org.jetbrains.kotlin.fir.renderer.FirRenderer
import org.jetbrains.kotlin.fir.renderer.FirResolvePhaseRenderer
import org.jetbrains.kotlin.fir.symbols.ensureResolved
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
import org.jetbrains.kotlin.psi.KtDeclaration
@@ -52,7 +53,10 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle
override fun doTestByFileStructure(ktFile: KtFile, moduleStructure: TestModuleStructure, testServices: TestServices) {
val resultBuilder = StringBuilder()
val renderer = FirRenderer(resultBuilder).with(declarationRenderer = FirDeclarationRendererWithAttributesAndResolvePhase())
val renderer = FirRenderer(resultBuilder).with(
declarationRenderer = FirDeclarationRendererWithAttributes(),
resolvePhaseRenderer = FirResolvePhaseRenderer()
)
resolveWithClearCaches(ktFile) { firResolveSession ->
check(firResolveSession is LLFirSourceResolveSession)
val declarationToResolve = firResolveSession
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LowLevelFirApiFacadeForResolveOnAir
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.FirDeclarationRendererWithResolvePhase
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
@@ -36,7 +36,7 @@ abstract class AbstractFirOnAirResolveTest : AbstractLowLevelApiSingleFileTest()
check(firResolveSession is LLFirSourceResolveSession)
val firElement = LowLevelFirApiFacadeForResolveOnAir.onAirResolveElement(firResolveSession, place, onAir)
val rendered = FirRenderer().with(
declarationRenderer = FirDeclarationRendererWithResolvePhase()
resolvePhaseRenderer = FirResolvePhaseRenderer()
).renderElementAsString(firElement)
testServices.assertions.assertEqualsToTestDataFileSibling(rendered)
}
@@ -9,8 +9,8 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirOfType
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.FirDeclarationRendererWithResolvePhase
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
@@ -21,7 +21,7 @@ abstract class AbstractInnerDeclarationsResolvePhaseTest : AbstractLowLevelApiSi
resolveWithClearCaches(ktFile) { firResolveSession ->
val firFile = ktFile.getOrBuildFirOfType<FirFile>(firResolveSession)
val actual = FirRenderer().with(
declarationRenderer = FirDeclarationRendererWithResolvePhase()
resolvePhaseRenderer = FirResolvePhaseRenderer()
).renderElementAsString(firFile)
testServices.assertions.assertEqualsToTestDataFileSibling(actual, extension = ".fir.txt")
}