FirRenderer: partially get rid of RenderMode
This commit is contained in:
+7
-1
@@ -27,7 +27,9 @@ 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.FirRenderer.RenderMode.Companion.Normal
|
||||
import org.jetbrains.kotlin.fir.resolve.getContainingClass
|
||||
import org.jetbrains.kotlin.fir.resolve.getSymbolByLookupTag
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.ConeTypeParameterBasedTypeVariable
|
||||
@@ -583,7 +585,11 @@ internal class KtSymbolByFirBuilder constructor(
|
||||
returns() implies requirement
|
||||
}
|
||||
require(requirement) {
|
||||
"Cannot build ${S::class.simpleName} for ${firSymbol.fir.renderWithType(FirRenderer.RenderMode.WithResolvePhases)}"
|
||||
// TODO: renderWithTypes!!!
|
||||
val renderedSymbol = FirRenderer().with(
|
||||
declarationRenderer = FirDeclarationRendererWithResolvePhase()
|
||||
).renderElementAsString(firSymbol.fir)
|
||||
"Cannot build ${S::class.simpleName} for $renderedSymbol}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -160,7 +160,10 @@ internal class KtFirTypeProvider(
|
||||
?: this.typeArguments.mapNotNull { it.type })
|
||||
|
||||
require(typeParameterSymbols.size == argumentTypes.size) {
|
||||
"'${symbol.fir.render(FirRenderer.RenderMode.NoBodies)}' expects '${typeParameterSymbols.size}' type arguments " +
|
||||
val renderedSymbol = FirRenderer(mode = FirRenderer.RenderMode.NoBodies).with(
|
||||
annotationRenderer = null, bodyRenderer = null
|
||||
).renderElementAsString(symbol.fir)
|
||||
"'$renderedSymbol' expects '${typeParameterSymbols.size}' type arguments " +
|
||||
"but type '${this.renderForDebugging()}' has ${argumentTypes.size} type arguments."
|
||||
}
|
||||
|
||||
|
||||
+7
-2
@@ -21,8 +21,9 @@ 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.renderWithType
|
||||
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithResolvePhase
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer.RenderMode.Companion.Normal
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ensureResolved
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
@@ -32,10 +33,14 @@ import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
|
||||
|
||||
internal fun FirCallableSymbol<*>.invalidModalityError(): Nothing {
|
||||
// TODO: renderWithTypes!!!
|
||||
val rendered = FirRenderer().with(
|
||||
declarationRenderer = FirDeclarationRendererWithResolvePhase()
|
||||
).renderElementAsString(fir)
|
||||
error(
|
||||
"""|Symbol modality should not be null, looks like the FIR symbol was not properly resolved
|
||||
|
|
||||
|${fir.renderWithType(FirRenderer.RenderMode.WithResolvePhases)}
|
||||
|$rendered
|
||||
|
|
||||
|${(fir.psi as? KtDeclaration)?.getElementTextInContext()}""".trimMargin()
|
||||
)
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.ideSessionComponents
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.renderWithType
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer.RenderMode.Companion.Normal
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
@@ -54,7 +54,7 @@ internal fun FirBasedSymbol<*>.createSignature(): IdSignature =
|
||||
internal fun FirDeclaration.createSignature(): IdSignature {
|
||||
val signatureComposer = moduleData.session.ideSessionComponents.signatureComposer
|
||||
return signatureComposer.composeSignature(this)
|
||||
?: error("Could not compose signature for ${this.renderWithType(FirRenderer.RenderMode.WithResolvePhases)}, looks like it is private or local")
|
||||
?: error("Could not compose signature for ${this.renderWithType(Normal)}, looks like it is private or local")
|
||||
}
|
||||
|
||||
internal fun KtFirAnalysisSession.getClassLikeSymbol(classId: ClassId) =
|
||||
|
||||
Reference in New Issue
Block a user