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
@@ -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}"
}
}
@@ -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."
}
@@ -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
|