Extract separate ConeIdRenderer and get rid of FirRenderer.RenderMode
This commit is contained in:
-1
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceResolveS
|
|||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest
|
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.FirDeclarationRendererWithResolvePhase
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer.RenderMode.Companion.Normal
|
|
||||||
import org.jetbrains.kotlin.psi.KtAnnotated
|
import org.jetbrains.kotlin.psi.KtAnnotated
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
|||||||
+2
-1
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.builder.PsiHandlingMode
|
|||||||
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.psi
|
import org.jetbrains.kotlin.fir.psi
|
||||||
|
import org.jetbrains.kotlin.fir.renderer.ConeIdFullRenderer
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
|
import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope
|
||||||
@@ -126,7 +127,7 @@ abstract class AbstractPartialRawFirBuilderTestCase : AbstractLowLevelApiSingleF
|
|||||||
null
|
null
|
||||||
)
|
)
|
||||||
|
|
||||||
val firDump = FirRenderer(mode = FirRenderer.RenderMode.WithFqNames).renderElementAsString(firElement)
|
val firDump = FirRenderer().with(idRenderer = ConeIdFullRenderer()).renderElementAsString(firElement)
|
||||||
JUnit5Assertions.assertEqualsToTestDataFileSibling(firDump)
|
JUnit5Assertions.assertEqualsToTestDataFileSibling(firDump)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-1
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLeve
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithResolvePhase
|
import org.jetbrains.kotlin.fir.renderer.FirDeclarationRendererWithResolvePhase
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
import org.jetbrains.kotlin.fir.renderer.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer.RenderMode.Companion.Normal
|
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
||||||
import org.jetbrains.kotlin.test.services.TestServices
|
import org.jetbrains.kotlin.test.services.TestServices
|
||||||
|
|||||||
+3
-3
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.fir.FirModuleData
|
|||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.renderer.*
|
import org.jetbrains.kotlin.fir.renderer.*
|
||||||
import org.jetbrains.kotlin.fir.renderer.FirRenderer.RenderMode.Companion.WithFqNames
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
|
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
@@ -30,6 +29,7 @@ object FirDiagnosticRenderers {
|
|||||||
is FirClassLikeSymbol<*>,
|
is FirClassLikeSymbol<*>,
|
||||||
is FirCallableSymbol<*> -> FirRenderer().with(
|
is FirCallableSymbol<*> -> FirRenderer().with(
|
||||||
typeRenderer = ConeTypeRenderer(),
|
typeRenderer = ConeTypeRenderer(),
|
||||||
|
idRenderer = ConeIdShortRenderer(),
|
||||||
classMemberRenderer = FirNoClassMemberRenderer(),
|
classMemberRenderer = FirNoClassMemberRenderer(),
|
||||||
bodyRenderer = null,
|
bodyRenderer = null,
|
||||||
propertyAccessorRenderer = null,
|
propertyAccessorRenderer = null,
|
||||||
@@ -103,8 +103,8 @@ object FirDiagnosticRenderers {
|
|||||||
|
|
||||||
val FQ_NAMES_IN_TYPES = Renderer { symbol: FirBasedSymbol<*> ->
|
val FQ_NAMES_IN_TYPES = Renderer { symbol: FirBasedSymbol<*> ->
|
||||||
@OptIn(SymbolInternals::class)
|
@OptIn(SymbolInternals::class)
|
||||||
FirRenderer(mode = WithFqNames).with(
|
FirRenderer().with(
|
||||||
annotationRenderer = null, bodyRenderer = null
|
annotationRenderer = null, bodyRenderer = null, idRenderer = ConeIdFullRenderer()
|
||||||
).renderElementAsString(symbol.fir)
|
).renderElementAsString(symbol.fir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.renderer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
|
class ConeIdFullRenderer : ConeIdRenderer() {
|
||||||
|
override fun renderClassId(classId: ClassId) {
|
||||||
|
builder.append(classId.asString())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun renderCallableId(callableId: CallableId) {
|
||||||
|
builder.append(callableId)
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
-7
@@ -5,15 +5,13 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.renderer
|
package org.jetbrains.kotlin.fir.renderer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
open class ConeTypeRendererWithFqNames() : ConeTypeRenderer() {
|
abstract class ConeIdRenderer {
|
||||||
|
|
||||||
constructor(builder: StringBuilder) : this() {
|
lateinit var builder: StringBuilder
|
||||||
this.builder = builder
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun ClassId.render() {
|
abstract fun renderClassId(classId: ClassId)
|
||||||
builder.append(asString())
|
abstract fun renderCallableId(callableId: CallableId)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.renderer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
|
class ConeIdRendererForDebugging : ConeIdRenderer() {
|
||||||
|
override fun renderClassId(classId: ClassId) {
|
||||||
|
builder.append(classId.asString())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun renderCallableId(callableId: CallableId) {
|
||||||
|
builder.append(callableId.callableName)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.renderer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
|
||||||
|
open class ConeIdShortRenderer : ConeIdRenderer() {
|
||||||
|
override fun renderClassId(classId: ClassId) {
|
||||||
|
builder.append(classId.relativeClassName.asString())
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun renderCallableId(callableId: CallableId) {
|
||||||
|
builder.append(callableId.callableName)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,16 +7,18 @@ package org.jetbrains.kotlin.fir.renderer
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
|
||||||
import kotlin.contracts.ExperimentalContracts
|
import kotlin.contracts.ExperimentalContracts
|
||||||
import kotlin.contracts.contract
|
import kotlin.contracts.contract
|
||||||
|
|
||||||
open class ConeTypeRenderer() {
|
open class ConeTypeRenderer() {
|
||||||
|
|
||||||
lateinit var builder: StringBuilder
|
lateinit var builder: StringBuilder
|
||||||
|
lateinit var idRenderer: ConeIdRenderer
|
||||||
|
|
||||||
constructor(builder: StringBuilder) : this() {
|
constructor(builder: StringBuilder, idRenderer: ConeIdRenderer) : this() {
|
||||||
this.builder = builder
|
this.builder = builder
|
||||||
|
this.idRenderer = idRenderer
|
||||||
|
idRenderer.builder = builder
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun renderAsPossibleFunctionType(
|
open fun renderAsPossibleFunctionType(
|
||||||
@@ -137,7 +139,7 @@ open class ConeTypeRenderer() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun ConeClassLikeType.render() {
|
private fun ConeClassLikeType.render() {
|
||||||
lookupTag.classId.render()
|
idRenderer.renderClassId(lookupTag.classId)
|
||||||
if (typeArguments.isEmpty()) return
|
if (typeArguments.isEmpty()) return
|
||||||
builder.append("<")
|
builder.append("<")
|
||||||
for ((index, typeArgument) in typeArguments.withIndex()) {
|
for ((index, typeArgument) in typeArguments.withIndex()) {
|
||||||
@@ -149,10 +151,6 @@ open class ConeTypeRenderer() {
|
|||||||
builder.append(">")
|
builder.append(">")
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun ClassId.render() {
|
|
||||||
builder.append(relativeClassName.asString())
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun ConeFlexibleType.render() {
|
private fun ConeFlexibleType.render() {
|
||||||
val lowerBound = lowerBound
|
val lowerBound = lowerBound
|
||||||
val upperBound = upperBound
|
val upperBound = upperBound
|
||||||
|
|||||||
+3
-1
@@ -8,10 +8,12 @@ package org.jetbrains.kotlin.fir.renderer
|
|||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.ConeTypeProjection
|
import org.jetbrains.kotlin.fir.types.ConeTypeProjection
|
||||||
|
|
||||||
class ConeTypeRendererForDebugging() : ConeTypeRendererWithFqNames() {
|
class ConeTypeRendererForDebugging() : ConeTypeRenderer() {
|
||||||
|
|
||||||
constructor(builder: StringBuilder) : this() {
|
constructor(builder: StringBuilder) : this() {
|
||||||
this.builder = builder
|
this.builder = builder
|
||||||
|
this.idRenderer = ConeIdRendererForDebugging()
|
||||||
|
idRenderer.builder = builder
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun renderAsPossibleFunctionType(type: ConeKotlinType, renderType: ConeTypeProjection.() -> Unit) {
|
override fun renderAsPossibleFunctionType(type: ConeKotlinType, renderType: ConeTypeProjection.() -> Unit) {
|
||||||
|
|||||||
@@ -6,9 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.types
|
package org.jetbrains.kotlin.fir.types
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
import org.jetbrains.kotlin.builtins.functions.FunctionClassKind
|
||||||
import org.jetbrains.kotlin.fir.renderer.ConeTypeRenderer
|
import org.jetbrains.kotlin.fir.renderer.*
|
||||||
import org.jetbrains.kotlin.fir.renderer.ConeTypeRendererForDebugging
|
|
||||||
import org.jetbrains.kotlin.fir.renderer.ConeTypeRendererWithFqNames
|
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.types.Variance
|
import org.jetbrains.kotlin.types.Variance
|
||||||
@@ -128,13 +126,13 @@ fun ConeKotlinType.renderForDebugging(): String {
|
|||||||
|
|
||||||
fun ConeKotlinType.renderReadable(): String {
|
fun ConeKotlinType.renderReadable(): String {
|
||||||
val builder = StringBuilder()
|
val builder = StringBuilder()
|
||||||
ConeTypeRenderer(builder).render(this)
|
ConeTypeRenderer(builder, idRenderer = ConeIdShortRenderer()).render(this)
|
||||||
return builder.toString()
|
return builder.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ConeKotlinType.renderReadableWithFqNames(): String {
|
fun ConeKotlinType.renderReadableWithFqNames(): String {
|
||||||
val builder = StringBuilder()
|
val builder = StringBuilder()
|
||||||
ConeTypeRendererWithFqNames(builder).render(this)
|
ConeTypeRenderer(builder, idRenderer = ConeIdRendererForDebugging()).render(this)
|
||||||
return builder.toString()
|
return builder.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ import java.util.*
|
|||||||
|
|
||||||
class FirRenderer private constructor(
|
class FirRenderer private constructor(
|
||||||
private val builder: StringBuilder,
|
private val builder: StringBuilder,
|
||||||
private val mode: RenderMode,
|
|
||||||
components: FirComponentsImpl,
|
components: FirComponentsImpl,
|
||||||
private val annotationRenderer: FirAnnotationRenderer?,
|
private val annotationRenderer: FirAnnotationRenderer?,
|
||||||
private val bodyRenderer: FirBodyRenderer?,
|
private val bodyRenderer: FirBodyRenderer?,
|
||||||
@@ -38,6 +37,7 @@ class FirRenderer private constructor(
|
|||||||
private val classMemberRenderer: FirClassMemberRenderer,
|
private val classMemberRenderer: FirClassMemberRenderer,
|
||||||
private val contractRenderer: ConeContractRenderer?,
|
private val contractRenderer: ConeContractRenderer?,
|
||||||
private val declarationRenderer: FirDeclarationRenderer,
|
private val declarationRenderer: FirDeclarationRenderer,
|
||||||
|
private val idRenderer: ConeIdRenderer,
|
||||||
private val modifierRenderer: FirModifierRenderer,
|
private val modifierRenderer: FirModifierRenderer,
|
||||||
private val packageDirectiveRenderer: FirPackageDirectiveRenderer?,
|
private val packageDirectiveRenderer: FirPackageDirectiveRenderer?,
|
||||||
private val propertyAccessorRenderer: FirPropertyAccessorRenderer?,
|
private val propertyAccessorRenderer: FirPropertyAccessorRenderer?,
|
||||||
@@ -54,6 +54,7 @@ class FirRenderer private constructor(
|
|||||||
components.callArgumentsRenderer = callArgumentsRenderer
|
components.callArgumentsRenderer = callArgumentsRenderer
|
||||||
components.classMemberRenderer = classMemberRenderer
|
components.classMemberRenderer = classMemberRenderer
|
||||||
components.declarationRenderer = declarationRenderer
|
components.declarationRenderer = declarationRenderer
|
||||||
|
components.idRenderer = idRenderer
|
||||||
components.modifierRenderer = modifierRenderer
|
components.modifierRenderer = modifierRenderer
|
||||||
components.packageDirectiveRenderer = packageDirectiveRenderer
|
components.packageDirectiveRenderer = packageDirectiveRenderer
|
||||||
components.propertyAccessorRenderer = propertyAccessorRenderer
|
components.propertyAccessorRenderer = propertyAccessorRenderer
|
||||||
@@ -67,20 +68,20 @@ class FirRenderer private constructor(
|
|||||||
classMemberRenderer.components = components
|
classMemberRenderer.components = components
|
||||||
contractRenderer?.components = components
|
contractRenderer?.components = components
|
||||||
declarationRenderer.components = components
|
declarationRenderer.components = components
|
||||||
|
idRenderer.builder = builder
|
||||||
modifierRenderer.components = components
|
modifierRenderer.components = components
|
||||||
packageDirectiveRenderer?.components = components
|
packageDirectiveRenderer?.components = components
|
||||||
propertyAccessorRenderer?.components = components
|
propertyAccessorRenderer?.components = components
|
||||||
typeRenderer.builder = builder
|
typeRenderer.builder = builder
|
||||||
|
typeRenderer.idRenderer = idRenderer
|
||||||
valueParameterRenderer.components = components
|
valueParameterRenderer.components = components
|
||||||
}
|
}
|
||||||
|
|
||||||
private constructor(
|
private constructor(
|
||||||
builder: StringBuilder,
|
builder: StringBuilder,
|
||||||
mode: RenderMode,
|
|
||||||
components: FirComponentsImpl,
|
components: FirComponentsImpl,
|
||||||
) : this(
|
) : this(
|
||||||
builder,
|
builder,
|
||||||
mode,
|
|
||||||
components,
|
components,
|
||||||
FirAnnotationRenderer(),
|
FirAnnotationRenderer(),
|
||||||
FirBodyRenderer(),
|
FirBodyRenderer(),
|
||||||
@@ -88,6 +89,7 @@ class FirRenderer private constructor(
|
|||||||
FirClassMemberRenderer(),
|
FirClassMemberRenderer(),
|
||||||
ConeContractRenderer(),
|
ConeContractRenderer(),
|
||||||
FirDeclarationRenderer(),
|
FirDeclarationRenderer(),
|
||||||
|
ConeIdRendererForDebugging(),
|
||||||
FirAllModifierRenderer(),
|
FirAllModifierRenderer(),
|
||||||
packageDirectiveRenderer = null,
|
packageDirectiveRenderer = null,
|
||||||
FirPropertyAccessorRenderer(),
|
FirPropertyAccessorRenderer(),
|
||||||
@@ -95,7 +97,7 @@ class FirRenderer private constructor(
|
|||||||
FirValueParameterRenderer(),
|
FirValueParameterRenderer(),
|
||||||
)
|
)
|
||||||
|
|
||||||
constructor(builder: StringBuilder = StringBuilder(), mode: RenderMode = RenderMode.Normal) : this(builder, mode, FirComponentsImpl())
|
constructor(builder: StringBuilder = StringBuilder()) : this(builder, FirComponentsImpl())
|
||||||
|
|
||||||
fun with(
|
fun with(
|
||||||
annotationRenderer: FirAnnotationRenderer? = this.annotationRenderer,
|
annotationRenderer: FirAnnotationRenderer? = this.annotationRenderer,
|
||||||
@@ -104,16 +106,17 @@ class FirRenderer private constructor(
|
|||||||
classMemberRenderer: FirClassMemberRenderer = this.classMemberRenderer,
|
classMemberRenderer: FirClassMemberRenderer = this.classMemberRenderer,
|
||||||
contractRenderer: ConeContractRenderer? = this.contractRenderer,
|
contractRenderer: ConeContractRenderer? = this.contractRenderer,
|
||||||
declarationRenderer: FirDeclarationRenderer = this.declarationRenderer,
|
declarationRenderer: FirDeclarationRenderer = this.declarationRenderer,
|
||||||
|
idRenderer: ConeIdRenderer = this.idRenderer,
|
||||||
modifierRenderer: FirModifierRenderer = this.modifierRenderer,
|
modifierRenderer: FirModifierRenderer = this.modifierRenderer,
|
||||||
packageDirectiveRenderer: FirPackageDirectiveRenderer? = this.packageDirectiveRenderer,
|
packageDirectiveRenderer: FirPackageDirectiveRenderer? = this.packageDirectiveRenderer,
|
||||||
propertyAccessorRenderer: FirPropertyAccessorRenderer? = this.propertyAccessorRenderer,
|
propertyAccessorRenderer: FirPropertyAccessorRenderer? = this.propertyAccessorRenderer,
|
||||||
typeRenderer: ConeTypeRenderer = this.typeRenderer,
|
typeRenderer: ConeTypeRenderer = this.typeRenderer,
|
||||||
valueParameterRenderer: FirValueParameterRenderer = this.valueParameterRenderer,
|
valueParameterRenderer: FirValueParameterRenderer = this.valueParameterRenderer,
|
||||||
): FirRenderer = FirRenderer(
|
): FirRenderer = FirRenderer(
|
||||||
builder, mode, FirComponentsImpl(),
|
builder, FirComponentsImpl(),
|
||||||
annotationRenderer, bodyRenderer, callArgumentsRenderer, classMemberRenderer,
|
annotationRenderer, bodyRenderer, callArgumentsRenderer, classMemberRenderer,
|
||||||
contractRenderer, declarationRenderer, modifierRenderer, packageDirectiveRenderer,
|
contractRenderer, declarationRenderer, idRenderer, modifierRenderer,
|
||||||
propertyAccessorRenderer, typeRenderer, valueParameterRenderer
|
packageDirectiveRenderer, propertyAccessorRenderer, typeRenderer, valueParameterRenderer
|
||||||
)
|
)
|
||||||
|
|
||||||
fun renderElementAsString(element: FirElement): String {
|
fun renderElementAsString(element: FirElement): String {
|
||||||
@@ -153,6 +156,8 @@ class FirRenderer private constructor(
|
|||||||
|
|
||||||
override lateinit var declarationRenderer: FirDeclarationRenderer
|
override lateinit var declarationRenderer: FirDeclarationRenderer
|
||||||
|
|
||||||
|
override lateinit var idRenderer: ConeIdRenderer
|
||||||
|
|
||||||
override lateinit var modifierRenderer: FirModifierRenderer
|
override lateinit var modifierRenderer: FirModifierRenderer
|
||||||
|
|
||||||
override lateinit var typeRenderer: ConeTypeRenderer
|
override lateinit var typeRenderer: ConeTypeRenderer
|
||||||
@@ -164,20 +169,6 @@ class FirRenderer private constructor(
|
|||||||
override lateinit var printer: FirPrinter
|
override lateinit var printer: FirPrinter
|
||||||
}
|
}
|
||||||
|
|
||||||
data class RenderMode(
|
|
||||||
val renderCallableFqNames: Boolean,
|
|
||||||
) {
|
|
||||||
companion object {
|
|
||||||
val Normal = RenderMode(
|
|
||||||
renderCallableFqNames = false,
|
|
||||||
)
|
|
||||||
|
|
||||||
val WithFqNames = RenderMode(
|
|
||||||
renderCallableFqNames = true,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun List<ConeKotlinType>.renderTypesSeparated() {
|
private fun List<ConeKotlinType>.renderTypesSeparated() {
|
||||||
for ((index, element) in this.withIndex()) {
|
for ((index, element) in this.withIndex()) {
|
||||||
if (index > 0) {
|
if (index > 0) {
|
||||||
@@ -285,18 +276,10 @@ class FirRenderer private constructor(
|
|||||||
}
|
}
|
||||||
when (callableDeclaration) {
|
when (callableDeclaration) {
|
||||||
is FirSimpleFunction -> {
|
is FirSimpleFunction -> {
|
||||||
if (!mode.renderCallableFqNames) {
|
idRenderer.renderCallableId(callableDeclaration.symbol.callableId)
|
||||||
print(callableDeclaration.name)
|
|
||||||
} else {
|
|
||||||
print(callableDeclaration.symbol.callableId)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
is FirVariable -> {
|
is FirVariable -> {
|
||||||
if (!mode.renderCallableFqNames) {
|
idRenderer.renderCallableId(callableDeclaration.symbol.callableId)
|
||||||
print(callableDeclaration.name)
|
|
||||||
} else {
|
|
||||||
print(callableDeclaration.symbol.callableId)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ internal interface FirRendererComponents {
|
|||||||
val callArgumentsRenderer: FirCallArgumentsRenderer
|
val callArgumentsRenderer: FirCallArgumentsRenderer
|
||||||
val classMemberRenderer: FirClassMemberRenderer
|
val classMemberRenderer: FirClassMemberRenderer
|
||||||
val contractRenderer: ConeContractRenderer?
|
val contractRenderer: ConeContractRenderer?
|
||||||
|
val idRenderer: ConeIdRenderer
|
||||||
val modifierRenderer: FirModifierRenderer
|
val modifierRenderer: FirModifierRenderer
|
||||||
val packageDirectiveRenderer: FirPackageDirectiveRenderer?
|
val packageDirectiveRenderer: FirPackageDirectiveRenderer?
|
||||||
val propertyAccessorRenderer: FirPropertyAccessorRenderer?
|
val propertyAccessorRenderer: FirPropertyAccessorRenderer?
|
||||||
|
|||||||
Reference in New Issue
Block a user