Get rid of mode argument in FirElement.render(withType)

This commit is contained in:
Mikhail Glukhikh
2022-07-07 08:40:46 +02:00
committed by Space
parent 7c27e6f843
commit abfa33b200
7 changed files with 16 additions and 19 deletions
@@ -29,7 +29,6 @@ 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
@@ -585,10 +584,9 @@ internal class KtSymbolByFirBuilder constructor(
returns() implies requirement
}
require(requirement) {
// TODO: renderWithTypes!!!
val renderedSymbol = FirRenderer().with(
declarationRenderer = FirDeclarationRendererWithResolvePhase()
).renderElementAsString(firSymbol.fir)
).renderElementWithTypeAsString(firSymbol.fir)
"Cannot build ${S::class.simpleName} for $renderedSymbol}"
}
}
@@ -23,7 +23,6 @@ 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.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.*
@@ -33,10 +32,9 @@ import org.jetbrains.kotlin.psi.KtDeclaration
internal fun FirCallableSymbol<*>.invalidModalityError(): Nothing {
// TODO: renderWithTypes!!!
val rendered = FirRenderer().with(
declarationRenderer = FirDeclarationRendererWithResolvePhase()
).renderElementAsString(fir)
).renderElementWithTypeAsString(fir)
error(
"""|Symbol modality should not be null, looks like the FIR symbol was not properly resolved
|
@@ -10,7 +10,6 @@ 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.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 +53,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(Normal)}, looks like it is private or local")
?: error("Could not compose signature for ${this.renderWithType()}, looks like it is private or local")
}
internal fun KtFirAnalysisSession.getClassLikeSymbol(classId: ClassId) =
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.builder.PsiHandlingMode
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.psi
import org.jetbrains.kotlin.fir.render
import org.jetbrains.kotlin.fir.renderer.FirRenderer
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
@@ -127,7 +126,7 @@ abstract class AbstractPartialRawFirBuilderTestCase : AbstractLowLevelApiSingleF
null
)
val firDump = firElement.render(FirRenderer.RenderMode.WithFqNames)
val firDump = FirRenderer(mode = FirRenderer.RenderMode.WithFqNames).renderElementAsString(firElement)
JUnit5Assertions.assertEqualsToTestDataFileSibling(firDump)
}
@@ -20,8 +20,8 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol
import org.jetbrains.kotlin.psi.KtElement
internal fun FirElement.renderWithClassName(renderMode: FirRenderer.RenderMode = FirRenderer.RenderMode.Normal): String =
"${this::class.simpleName} `${render(renderMode)}`"
internal fun FirElement.renderWithClassName(): String =
"${this::class.simpleName} `${render()}`"
internal fun FirBasedSymbol<*>.name(): String = when (this) {
@@ -80,11 +80,8 @@ val FirReference.resolvedSymbol: FirBasedSymbol<*>? get() = resolved?.resolvedSy
val FirContextReceiver.labelName: Name? get() = customLabelName ?: labelNameFromTypeRef
fun FirElement.renderWithType(mode: FirRenderer.RenderMode = FirRenderer.RenderMode.Normal): String = buildString {
append(this@renderWithType)
append(": ")
FirRenderer(this, mode).renderElementAsString(this@renderWithType)
}
fun FirElement.renderWithType(): String =
FirRenderer().renderElementWithTypeAsString(this)
fun FirElement.render(mode: FirRenderer.RenderMode = FirRenderer.RenderMode.Normal): String =
FirRenderer(mode = mode).renderElementAsString(this)
fun FirElement.render(): String =
FirRenderer().renderElementAsString(this)
@@ -108,6 +108,12 @@ open class FirRenderer private constructor(
return toString()
}
fun renderElementWithTypeAsString(element: FirElement): String {
print(element)
print(": ")
return renderElementAsString(element)
}
fun renderAsCallableDeclarationString(callableDeclaration: FirCallableDeclaration): String {
visitor.visitCallableDeclaration(callableDeclaration)
return toString()