FirRenderer: slightly change/refactor declaration rendering
This commit is contained in:
+1
-1
@@ -17,7 +17,7 @@ FILE: annotation.kt
|
||||
}
|
||||
|
||||
@base() public? final? [IsFromPrimaryConstructor=true] val x: Int = R|<local>/x|
|
||||
[ContainingClassKey=correct] public? get(): Int
|
||||
public? [ContainingClassKey=correct] get(): Int
|
||||
|
||||
@base() public? [ContainingClassKey=correct] constructor(): R|correct| {
|
||||
this<R|correct|>(IntegerLiteral(0))
|
||||
|
||||
+4
-4
@@ -16,16 +16,16 @@ FILE: annotationsOnNullableParenthesizedTypes.kt
|
||||
public? final? fun returnArgument(): B<@A() C?>
|
||||
|
||||
public? final? val lambdaType: @A() ( () -> C )?
|
||||
[ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] public? get(): @A() ( () -> C )?
|
||||
public? [ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] get(): @A() ( () -> C )?
|
||||
|
||||
public? final? val lambdaParameter: ( (@A() C?) -> C )
|
||||
[ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] public? get(): ( (@A() C?) -> C )
|
||||
public? [ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] get(): ( (@A() C?) -> C )
|
||||
|
||||
public? final? val lambdaReturnValue: ( () -> @A() C? )
|
||||
[ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] public? get(): ( () -> @A() C? )
|
||||
public? [ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] get(): ( () -> @A() C? )
|
||||
|
||||
public? final? val lambdaReceiver: ( @A() C?.() -> C )
|
||||
[ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] public? get(): ( @A() C?.() -> C )
|
||||
public? [ContainingClassKey=AnnotationsOnNullableParenthesizedTypes] get(): ( @A() C?.() -> C )
|
||||
|
||||
}
|
||||
@Target(AnnotationTarget#.TYPE#, AnnotationTarget#.TYPE_PARAMETER#) public? final? annotation class A : R|kotlin/Annotation| {
|
||||
|
||||
Vendored
+5
-5
@@ -16,19 +16,19 @@ FILE: annotationsOnParenthesizedTypes.kt
|
||||
public? final? fun returnArgument(): B<@A() C>
|
||||
|
||||
public? final? val lambdaType: @A() ( () -> C )
|
||||
[ContainingClassKey=AnnotationsOnParenthesizedTypes] public? get(): @A() ( () -> C )
|
||||
public? [ContainingClassKey=AnnotationsOnParenthesizedTypes] get(): @A() ( () -> C )
|
||||
|
||||
public? final? val lambdaParameter: ( (@A() C) -> C )
|
||||
[ContainingClassKey=AnnotationsOnParenthesizedTypes] public? get(): ( (@A() C) -> C )
|
||||
public? [ContainingClassKey=AnnotationsOnParenthesizedTypes] get(): ( (@A() C) -> C )
|
||||
|
||||
public? final? val lambdaReturnValue: ( () -> @A() C )
|
||||
[ContainingClassKey=AnnotationsOnParenthesizedTypes] public? get(): ( () -> @A() C )
|
||||
public? [ContainingClassKey=AnnotationsOnParenthesizedTypes] get(): ( () -> @A() C )
|
||||
|
||||
public? final? val lambdaReceiver: ( @A() C.() -> C )
|
||||
[ContainingClassKey=AnnotationsOnParenthesizedTypes] public? get(): ( @A() C.() -> C )
|
||||
public? [ContainingClassKey=AnnotationsOnParenthesizedTypes] get(): ( @A() C.() -> C )
|
||||
|
||||
public? final? val lambdaParameterNP: ( (@A() C) -> C )
|
||||
[ContainingClassKey=AnnotationsOnParenthesizedTypes] public? get(): ( (@A() C) -> C )
|
||||
public? [ContainingClassKey=AnnotationsOnParenthesizedTypes] get(): ( (@A() C) -> C )
|
||||
|
||||
}
|
||||
@Target(AnnotationTarget#.TYPE#, AnnotationTarget#.TYPE_PARAMETER#) public? final? annotation class A : R|kotlin/Annotation| {
|
||||
|
||||
+1
-1
@@ -14,6 +14,6 @@ FILE: complexTypes.kt
|
||||
}
|
||||
public? final? interface Test : R|kotlin/Any| {
|
||||
public? final? val x: a.b.C<out CharSequence, *>.D<in List<*>, *>
|
||||
[ContainingClassKey=Test] public? get(): a.b.C<out CharSequence, *>.D<in List<*>, *>
|
||||
public? [ContainingClassKey=Test] get(): a.b.C<out CharSequence, *>.D<in List<*>, *>
|
||||
|
||||
}
|
||||
|
||||
+6
-6
@@ -5,14 +5,14 @@ FILE: propertyAccessorsContractDescription.kt
|
||||
}
|
||||
|
||||
public? final? var myInt: Int = IntegerLiteral(0)
|
||||
[ContainingClassKey=MyClass] public? get(): Int
|
||||
public? [ContainingClassKey=MyClass] get(): Int
|
||||
[Contract description] <
|
||||
returnsNotNull#()
|
||||
>
|
||||
{
|
||||
^ IntegerLiteral(1)
|
||||
}
|
||||
[ContainingClassKey=MyClass] public? set(value: Int): R|kotlin/Unit| {
|
||||
public? [ContainingClassKey=MyClass] set(value: Int): R|kotlin/Unit| {
|
||||
field# = value#.times#(IntegerLiteral(10))
|
||||
}
|
||||
|
||||
@@ -23,14 +23,14 @@ FILE: propertyAccessorsContractDescription.kt
|
||||
}
|
||||
|
||||
public? final? var anotherInt: Int = IntegerLiteral(0)
|
||||
[ContainingClassKey=AnotherClass] public? get(): Int
|
||||
public? [ContainingClassKey=AnotherClass] get(): Int
|
||||
[Contract description] <
|
||||
returnsNotNull#()
|
||||
>
|
||||
{
|
||||
^ IntegerLiteral(1)
|
||||
}
|
||||
[ContainingClassKey=AnotherClass] public? set(value: Int): R|kotlin/Unit|
|
||||
public? [ContainingClassKey=AnotherClass] set(value: Int): R|kotlin/Unit|
|
||||
[Contract description] <
|
||||
returns#()
|
||||
>
|
||||
@@ -45,14 +45,14 @@ FILE: propertyAccessorsContractDescription.kt
|
||||
}
|
||||
|
||||
public? final? var someInt: Int = IntegerLiteral(0)
|
||||
[ContainingClassKey=SomeClass] public? get(): Int
|
||||
public? [ContainingClassKey=SomeClass] get(): Int
|
||||
[Contract description] <
|
||||
returnsNotNull#()
|
||||
>
|
||||
{
|
||||
^ IntegerLiteral(1)
|
||||
}
|
||||
[ContainingClassKey=SomeClass] public? set(value: Int): R|kotlin/Unit|
|
||||
public? [ContainingClassKey=SomeClass] set(value: Int): R|kotlin/Unit|
|
||||
[Contract description] <
|
||||
returns#().implies#(!=(value#, Null(null)))
|
||||
>
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ FILE: derivedClass.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val x: T = R|<local>/x|
|
||||
[ContainingClassKey=Base] public? get(): T
|
||||
public? [ContainingClassKey=Base] get(): T
|
||||
|
||||
}
|
||||
public? final? class Derived<T : Any> : Base<T> {
|
||||
|
||||
@@ -20,10 +20,10 @@ FILE: enums.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val m: Double = R|<local>/m|
|
||||
[ContainingClassKey=Planet] public? get(): Double
|
||||
public? [ContainingClassKey=Planet] get(): Double
|
||||
|
||||
internal final? [IsFromPrimaryConstructor=true] val r: Double = R|<local>/r|
|
||||
[ContainingClassKey=Planet] internal get(): Double
|
||||
internal [ContainingClassKey=Planet] get(): Double
|
||||
|
||||
public final static [ContainingClassKey=Planet] enum entry MERCURY: R|Planet| = object : R|Planet| {
|
||||
private [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
|
||||
@@ -59,7 +59,7 @@ FILE: enums.kt
|
||||
}
|
||||
|
||||
public? final? val g: Double = G#.times#(m#).div#(r#.times#(r#))
|
||||
[ContainingClassKey=Planet] public? get(): Double
|
||||
public? [ContainingClassKey=Planet] get(): Double
|
||||
|
||||
public? abstract fun sayHello(): R|kotlin/Unit|
|
||||
|
||||
@@ -69,7 +69,7 @@ FILE: enums.kt
|
||||
}
|
||||
|
||||
public? final? const val G: <implicit> = Double(6.67E-11)
|
||||
[ContainingClassKey=Companion] public? get(): <implicit>
|
||||
public? [ContainingClassKey=Companion] get(): <implicit>
|
||||
|
||||
}
|
||||
|
||||
@@ -86,7 +86,7 @@ FILE: enums.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val signature: String = R|<local>/signature|
|
||||
[ContainingClassKey=PseudoInsn] public? get(): String
|
||||
public? [ContainingClassKey=PseudoInsn] get(): String
|
||||
|
||||
public final static [ContainingClassKey=PseudoInsn] enum entry FIX_STACK_BEFORE_JUMP: R|PseudoInsn| = object : R|PseudoInsn| {
|
||||
private [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
|
||||
|
||||
@@ -19,7 +19,7 @@ FILE: enums2.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val x: Some = R|<local>/x|
|
||||
[ContainingClassKey=SomeEnum] public? get(): Some
|
||||
public? [ContainingClassKey=SomeEnum] get(): Some
|
||||
|
||||
public final static [ContainingClassKey=SomeEnum] enum entry FIRST: R|SomeEnum| = object : R|SomeEnum| {
|
||||
private [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
|
||||
|
||||
@@ -16,8 +16,8 @@ FILE: external.kt
|
||||
public? final? external fun bar(): String
|
||||
|
||||
public? final? var y: Int
|
||||
[ContainingClassKey=NotExternal] public? external get(): Int
|
||||
[ContainingClassKey=NotExternal] public? set(value: Int): R|kotlin/Unit| {
|
||||
public? external [ContainingClassKey=NotExternal] get(): Int
|
||||
public? [ContainingClassKey=NotExternal] set(value: Int): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ FILE: nestedClass.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val s: String = R|<local>/s|
|
||||
[ContainingClassKey=Base] public? get(): String
|
||||
public? [ContainingClassKey=Base] get(): String
|
||||
|
||||
}
|
||||
public? final? class Outer : R|kotlin/Any| {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE: noPrimaryConstructor.kt
|
||||
public? final? class NoPrimary : R|kotlin/Any| {
|
||||
public? final? val x: String
|
||||
[ContainingClassKey=NoPrimary] public? get(): String
|
||||
public? [ContainingClassKey=NoPrimary] get(): String
|
||||
|
||||
public? [ContainingClassKey=NoPrimary] constructor(x: String): R|NoPrimary| {
|
||||
super<R|kotlin/Any|>()
|
||||
|
||||
+6
-6
@@ -3,7 +3,7 @@ FILE: simpleClass.kt
|
||||
public? final? fun foo(x: Int, y: String): String
|
||||
|
||||
public? final? val bar: Boolean
|
||||
[ContainingClassKey=SomeInterface] public? get(): Boolean
|
||||
public? [ContainingClassKey=SomeInterface] get(): Boolean
|
||||
|
||||
}
|
||||
public? final? class SomeClass : SomeInterface {
|
||||
@@ -12,22 +12,22 @@ FILE: simpleClass.kt
|
||||
}
|
||||
|
||||
private final? val baz: <implicit> = IntegerLiteral(42)
|
||||
[ContainingClassKey=SomeClass] private get(): <implicit>
|
||||
private [ContainingClassKey=SomeClass] get(): <implicit>
|
||||
|
||||
public? open? override fun foo(x: Int, y: String): String {
|
||||
^foo y#.plus#(x#).plus#(baz#)
|
||||
}
|
||||
|
||||
public? open? override var bar: Boolean
|
||||
[ContainingClassKey=SomeClass] public? get(): Boolean {
|
||||
public? [ContainingClassKey=SomeClass] get(): Boolean {
|
||||
^ Boolean(true)
|
||||
}
|
||||
[ContainingClassKey=SomeClass] public? set(value: Boolean): R|kotlin/Unit| {
|
||||
public? [ContainingClassKey=SomeClass] set(value: Boolean): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
public? final? lateinit var fau: Double
|
||||
[ContainingClassKey=SomeClass] public? get(): Double
|
||||
[ContainingClassKey=SomeClass] public? set(value: Double): R|kotlin/Unit|
|
||||
public? [ContainingClassKey=SomeClass] get(): Double
|
||||
public? [ContainingClassKey=SomeClass] set(value: Double): R|kotlin/Unit|
|
||||
|
||||
}
|
||||
public? final? inline class InlineClass : R|kotlin/Any| {
|
||||
|
||||
+3
-3
@@ -14,15 +14,15 @@ FILE: typeParameterVsNested.kt
|
||||
}
|
||||
|
||||
public? abstract val x: T
|
||||
[ContainingClassKey=My] public? get(): T
|
||||
public? [ContainingClassKey=My] get(): T
|
||||
|
||||
public? abstract fun foo(arg: T): R|kotlin/Unit|
|
||||
|
||||
public? abstract val y: My.T
|
||||
[ContainingClassKey=My] public? get(): My.T
|
||||
public? [ContainingClassKey=My] get(): My.T
|
||||
|
||||
public? abstract val z: test.My.T
|
||||
[ContainingClassKey=My] public? get(): test.My.T
|
||||
public? [ContainingClassKey=My] get(): test.My.T
|
||||
|
||||
public? final? class Some : T {
|
||||
public? [ContainingClassKey=Some] constructor(): R|test/My.Some| {
|
||||
|
||||
@@ -26,10 +26,10 @@ FILE: annotated.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val x: Int = R|<local>/x|
|
||||
[ContainingClassKey=Two] public? get(): Int
|
||||
public? [ContainingClassKey=Two] get(): Int
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val y: Int = R|<local>/y|
|
||||
[ContainingClassKey=Two] public? get(): Int
|
||||
public? [ContainingClassKey=Two] get(): Int
|
||||
|
||||
public final operator fun component1(): Int
|
||||
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ FILE: arrayAccess.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val v: IntArray = R|<local>/v|
|
||||
[ContainingClassKey=Wrapper] public? get(): IntArray
|
||||
public? [ContainingClassKey=Wrapper] get(): IntArray
|
||||
|
||||
}
|
||||
public? final? fun test(a: IntArray, w: Wrapper): <implicit> {
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ FILE: callableReferences.kt
|
||||
}
|
||||
|
||||
public? final? val bar: <implicit> = IntegerLiteral(0)
|
||||
[ContainingClassKey=A] public? get(): <implicit>
|
||||
public? [ContainingClassKey=A] get(): <implicit>
|
||||
|
||||
}
|
||||
public? final? fun A.qux(): R|kotlin/Unit| {
|
||||
|
||||
@@ -14,8 +14,8 @@ FILE: calls.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] var x: Int = R|<local>/x|
|
||||
[ContainingClassKey=My] public? get(): Int
|
||||
[ContainingClassKey=My] public? set(value: Int): R|kotlin/Unit|
|
||||
public? [ContainingClassKey=My] get(): Int
|
||||
public? [ContainingClassKey=My] set(value: Int): R|kotlin/Unit|
|
||||
|
||||
public? final? operator fun invoke(): <implicit> {
|
||||
^invoke x#
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@ FILE: collectionLiterals.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val arr: IntArray = R|<local>/arr|
|
||||
[ContainingClassKey=Ann1] public? get(): IntArray
|
||||
public? [ContainingClassKey=Ann1] get(): IntArray
|
||||
|
||||
}
|
||||
public? final? annotation class Ann2 : R|kotlin/Annotation| {
|
||||
@@ -14,7 +14,7 @@ FILE: collectionLiterals.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val arr: DoubleArray = R|<local>/arr|
|
||||
[ContainingClassKey=Ann2] public? get(): DoubleArray
|
||||
public? [ContainingClassKey=Ann2] get(): DoubleArray
|
||||
|
||||
}
|
||||
public? final? annotation class Ann3 : R|kotlin/Annotation| {
|
||||
@@ -23,7 +23,7 @@ FILE: collectionLiterals.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val arr: Array<String> = R|<local>/arr|
|
||||
[ContainingClassKey=Ann3] public? get(): Array<String>
|
||||
public? [ContainingClassKey=Ann3] get(): Array<String>
|
||||
|
||||
}
|
||||
@Ann1(<implicitArrayOf>()) @Ann2(<implicitArrayOf>()) @Ann3(<implicitArrayOf>()) public? final? class Zero : R|kotlin/Any| {
|
||||
|
||||
+3
-3
@@ -5,13 +5,13 @@ FILE: destructuring.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val first: Int = R|<local>/first|
|
||||
[ContainingClassKey=Some] public? get(): Int
|
||||
public? [ContainingClassKey=Some] get(): Int
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val second: Double = R|<local>/second|
|
||||
[ContainingClassKey=Some] public? get(): Double
|
||||
public? [ContainingClassKey=Some] get(): Double
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val third: String = R|<local>/third|
|
||||
[ContainingClassKey=Some] public? get(): String
|
||||
public? [ContainingClassKey=Some] get(): String
|
||||
|
||||
public final operator fun component1(): Int
|
||||
|
||||
|
||||
@@ -55,10 +55,10 @@ FILE: for.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val x: Int = R|<local>/x|
|
||||
[ContainingClassKey=Some] public? get(): Int
|
||||
public? [ContainingClassKey=Some] get(): Int
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val y: Int = R|<local>/y|
|
||||
[ContainingClassKey=Some] public? get(): Int
|
||||
public? [ContainingClassKey=Some] get(): Int
|
||||
|
||||
public final operator fun component1(): Int
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ FILE: init.kt
|
||||
}
|
||||
|
||||
public? final? val x: Int
|
||||
[ContainingClassKey=WithInit] public? get(): Int
|
||||
public? [ContainingClassKey=WithInit] get(): Int
|
||||
|
||||
init {
|
||||
this#.x# = x#
|
||||
|
||||
@@ -5,10 +5,10 @@ FILE: lambda.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val x: Int = R|<local>/x|
|
||||
[ContainingClassKey=Tuple] public? get(): Int
|
||||
public? [ContainingClassKey=Tuple] get(): Int
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val y: Int = R|<local>/y|
|
||||
[ContainingClassKey=Tuple] public? get(): Int
|
||||
public? [ContainingClassKey=Tuple] get(): Int
|
||||
|
||||
public final operator fun component1(): Int
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ FILE: locals.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val pp: Int = R|<local>/pp|
|
||||
[ContainingClassKey=Local] public? get(): Int
|
||||
public? [ContainingClassKey=Local] get(): Int
|
||||
|
||||
public? final? fun diff(): <implicit> {
|
||||
^diff pp#.minus#(p#)
|
||||
|
||||
@@ -13,7 +13,7 @@ FILE: these.kt
|
||||
}
|
||||
|
||||
public? final? val instance: Some
|
||||
[ContainingClassKey=Some] public? get(): Some {
|
||||
public? [ContainingClassKey=Some] get(): Some {
|
||||
^ this@Some#
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ FILE: unary.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val i: Int = R|<local>/i|
|
||||
[ContainingClassKey=X] public? get(): Int
|
||||
public? [ContainingClassKey=X] get(): Int
|
||||
|
||||
}
|
||||
public? final? fun test2(x: X): R|kotlin/Unit| {
|
||||
@@ -79,7 +79,7 @@ FILE: unary.kt
|
||||
}
|
||||
|
||||
public? final? [IsFromPrimaryConstructor=true] val arr: Array<Int> = R|<local>/arr|
|
||||
[ContainingClassKey=Y] public? get(): Array<Int>
|
||||
public? [ContainingClassKey=Y] get(): Array<Int>
|
||||
|
||||
}
|
||||
public? final? fun test4(y: Y): R|kotlin/Unit| {
|
||||
|
||||
@@ -5,15 +5,45 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.renderer
|
||||
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
|
||||
open class FirDeclarationRenderer {
|
||||
|
||||
internal lateinit var components: FirRendererComponents
|
||||
protected val printer get() = components.printer
|
||||
private val resolvePhaseRenderer get() = components.resolvePhaseRenderer
|
||||
private val typeRenderer get() = components.typeRenderer
|
||||
|
||||
fun render(declaration: FirDeclaration) {
|
||||
renderPhaseAndAttributes(declaration)
|
||||
if (declaration is FirConstructor) {
|
||||
declaration.dispatchReceiverType?.let {
|
||||
typeRenderer.render(it)
|
||||
printer.print(".")
|
||||
}
|
||||
printer.print("constructor")
|
||||
return
|
||||
}
|
||||
printer.print(
|
||||
when (declaration) {
|
||||
is FirRegularClass -> declaration.classKind.name.toLowerCaseAsciiOnly().replace("_", " ")
|
||||
is FirTypeAlias -> "typealias"
|
||||
is FirAnonymousFunction -> (declaration.label?.let { "${it.name}@" } ?: "") + "fun"
|
||||
is FirSimpleFunction -> "fun"
|
||||
is FirProperty -> {
|
||||
val prefix = if (declaration.isLocal) "l" else ""
|
||||
prefix + if (declaration.isVal) "val" else "var"
|
||||
}
|
||||
is FirPropertyAccessor -> if (declaration.isGetter) "get" else "set"
|
||||
is FirField -> "field"
|
||||
is FirEnumEntry -> "enum entry"
|
||||
else -> "unknown"
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
internal fun renderPhaseAndAttributes(declaration: FirDeclaration) {
|
||||
resolvePhaseRenderer?.render(declaration)
|
||||
with(declaration) {
|
||||
renderDeclarationAttributes()
|
||||
|
||||
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.types.Variance
|
||||
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
import java.util.*
|
||||
|
||||
@@ -243,7 +242,7 @@ class FirRenderer(
|
||||
|
||||
override fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration) {
|
||||
modifierRenderer.renderModifiers(memberDeclaration)
|
||||
visitDeclaration(memberDeclaration as FirDeclaration)
|
||||
declarationRenderer.render(memberDeclaration)
|
||||
when (memberDeclaration) {
|
||||
is FirClassLikeDeclaration -> {
|
||||
if (memberDeclaration is FirRegularClass) {
|
||||
@@ -264,24 +263,6 @@ class FirRenderer(
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitDeclaration(declaration: FirDeclaration) {
|
||||
declarationRenderer.render(declaration)
|
||||
print(
|
||||
when (declaration) {
|
||||
is FirRegularClass -> declaration.classKind.name.toLowerCaseAsciiOnly().replace("_", " ")
|
||||
is FirTypeAlias -> "typealias"
|
||||
is FirSimpleFunction -> "fun"
|
||||
is FirProperty -> {
|
||||
val prefix = if (declaration.isLocal) "l" else ""
|
||||
prefix + if (declaration.isVal) "val" else "var"
|
||||
}
|
||||
is FirField -> "field"
|
||||
is FirEnumEntry -> "enum entry"
|
||||
else -> "unknown"
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
override fun visitRegularClass(regularClass: FirRegularClass) {
|
||||
renderContexts(regularClass.contextReceivers)
|
||||
annotationRenderer?.render(regularClass)
|
||||
@@ -356,11 +337,6 @@ class FirRenderer(
|
||||
modifierRenderer.renderModifiers(constructor)
|
||||
declarationRenderer.render(constructor)
|
||||
|
||||
constructor.dispatchReceiverType?.let {
|
||||
typeRenderer.render(it)
|
||||
print(".")
|
||||
}
|
||||
print("constructor")
|
||||
constructor.typeParameters.renderTypeParameters()
|
||||
valueParameterRenderer.renderParameters(constructor.valueParameters)
|
||||
print(": ")
|
||||
@@ -374,10 +350,9 @@ class FirRenderer(
|
||||
}
|
||||
|
||||
override fun visitPropertyAccessor(propertyAccessor: FirPropertyAccessor) {
|
||||
declarationRenderer.render(propertyAccessor)
|
||||
annotationRenderer?.render(propertyAccessor)
|
||||
modifierRenderer.renderModifiers(propertyAccessor)
|
||||
print(if (propertyAccessor.isGetter) "get" else "set")
|
||||
declarationRenderer.render(propertyAccessor)
|
||||
valueParameterRenderer.renderParameters(propertyAccessor.valueParameters)
|
||||
print(": ")
|
||||
propertyAccessor.returnTypeRef.accept(this)
|
||||
@@ -390,13 +365,9 @@ class FirRenderer(
|
||||
}
|
||||
|
||||
override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction) {
|
||||
declarationRenderer.render(anonymousFunction)
|
||||
annotationRenderer?.render(anonymousFunction)
|
||||
val label = anonymousFunction.label
|
||||
if (label != null) {
|
||||
print("${label.name}@")
|
||||
}
|
||||
print("fun ")
|
||||
declarationRenderer.render(anonymousFunction)
|
||||
print(" ")
|
||||
val receiverType = anonymousFunction.receiverTypeRef
|
||||
if (receiverType != null) {
|
||||
receiverType.accept(this)
|
||||
@@ -422,7 +393,7 @@ class FirRenderer(
|
||||
|
||||
override fun visitFunction(function: FirFunction) {
|
||||
valueParameterRenderer.renderParameters(function.valueParameters)
|
||||
visitDeclaration(function)
|
||||
declarationRenderer.render(function)
|
||||
bodyRenderer?.render(function)
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ open class FirValueParameterRenderer {
|
||||
}
|
||||
|
||||
fun renderParameter(valueParameter: FirValueParameter) {
|
||||
declarationRenderer.render(valueParameter)
|
||||
declarationRenderer.renderPhaseAndAttributes(valueParameter)
|
||||
annotationRenderer?.render(valueParameter)
|
||||
modifierRenderer.renderModifiers(valueParameter)
|
||||
if (valueParameter.name != SpecialNames.NO_NAME_PROVIDED) {
|
||||
|
||||
Reference in New Issue
Block a user