FIR2IR: generate specific sources for property accessors

Related to KT-60111
This commit is contained in:
Mikhail Glukhikh
2023-10-02 12:08:08 +02:00
committed by Space Team
parent f38b8fd8cb
commit 0fb4c9b4fe
27 changed files with 99 additions and 142 deletions
@@ -75,6 +75,12 @@ internal inline fun <T : IrElement> FirElement.convertWithOffsets(f: (startOffse
return source.convertWithOffsets(f)
}
internal inline fun <T : IrElement> FirPropertyAccessor?.convertWithOffsets(
defaultStartOffset: Int, defaultEndOffset: Int, f: (startOffset: Int, endOffset: Int) -> T
): T {
return if (this == null) return f(defaultStartOffset, defaultEndOffset) else source.convertWithOffsets(f)
}
internal inline fun <T : IrElement> KtSourceElement?.convertWithOffsets(f: (startOffset: Int, endOffset: Int) -> T): T {
val startOffset: Int
val endOffset: Int
@@ -359,36 +359,40 @@ class Fir2IrCallableDeclarationsGenerator(val components: Fir2IrComponents) : Fi
if (irParent != null) {
backingField?.parent = irParent
}
this.getter = createIrPropertyAccessor(
getter, property, this, type, irParent, false,
when {
origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB -> origin
origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> origin
delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR
origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin
origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin
getter == null || getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
else -> origin
},
startOffset, endOffset,
dontUseSignature = signature == null, fakeOverrideOwnerLookupTag,
property.unwrapFakeOverrides().getter,
)
if (property.isVar) {
this.setter = createIrPropertyAccessor(
setter, property, this, type, irParent, true,
this.getter = getter.convertWithOffsets(startOffset, endOffset) { startOffset, endOffset ->
createIrPropertyAccessor(
getter, property, this, type, irParent, false,
when {
origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB -> origin
origin == IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER -> origin
delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR
origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin
origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin
setter is FirDefaultPropertySetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
getter == null || getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
else -> origin
},
startOffset, endOffset,
dontUseSignature = signature == null, fakeOverrideOwnerLookupTag,
property.unwrapFakeOverrides().setter,
property.unwrapFakeOverrides().getter,
)
}
if (property.isVar) {
this.setter = setter.convertWithOffsets(startOffset, endOffset) { startOffset, endOffset ->
createIrPropertyAccessor(
setter, property, this, type, irParent, true,
when {
delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR
origin == IrDeclarationOrigin.FAKE_OVERRIDE -> origin
origin == IrDeclarationOrigin.DELEGATED_MEMBER -> origin
setter is FirDefaultPropertySetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
else -> origin
},
startOffset, endOffset,
dontUseSignature = signature == null, fakeOverrideOwnerLookupTag,
property.unwrapFakeOverrides().setter,
)
}
}
}
}
}
+3 -3
View File
@@ -1,9 +1,9 @@
compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:2:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I):
compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:3:9: error: platform declaration clash: The following declarations have the same JVM signature (getX()I):
fun `<get-x>`(): Int defined in Foo
fun getX(): Int defined in Foo
fun getY(): Int defined in Foo
val x: Int
^
get() = 42
^
compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:8:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I):
fun `<get-x>`(): Int defined in Foo
fun getX(): Int defined in Foo
+3 -3
View File
@@ -1,9 +1,9 @@
compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:2:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I):
compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:3:9: error: platform declaration clash: The following declarations have the same JVM signature (getX()I):
fun `<get-x>`(): Int defined in Foo
fun getX(): Int defined in Foo
fun getY(): Int defined in Foo
val x: Int
^
get() = 42
^
compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:8:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I):
fun `<get-x>`(): Int defined in Foo
fun getX(): Int defined in Foo
@@ -23,13 +23,13 @@ expect var onSetter: String
// MODULE: m1-jvm()()(m1-common)
// FILE: jvm.kt
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT, ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>actual val <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onGetter<!>: String
get() = ""<!>
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>actual val <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onGetter<!>: String
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>get() = ""<!><!>
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT, ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>actual val <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onGetterImplicit<!>: String = ""<!>
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT, ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>actual val <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onGetterWithExplicitTarget<!>: String
get() = ""<!>
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>actual val <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onGetterWithExplicitTarget<!>: String
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>get() = ""<!><!>
actual val explicitTargetMatchesWithoutTarget: String
@Ann get() = ""
@@ -37,6 +37,6 @@ actual val explicitTargetMatchesWithoutTarget: String
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT, ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>@Ann
actual val <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>setOnPropertyWithoutTargetNotMatch<!>: String = ""<!>
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT, ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>actual var <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onSetter<!>: String
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>actual var <!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>onSetter<!>: String
get() = ""
set(_) {}<!>
<!ACTUAL_ANNOTATIONS_NOT_MATCH_EXPECT!>set(_) {}<!><!>
@@ -1,8 +0,0 @@
open class B {
fun getX() = 1
}
class C : B() {
<!ACCIDENTAL_OVERRIDE!>val x: Int
get() = 1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
open class B {
fun getX() = 1
}
@@ -1,8 +0,0 @@
interface T {
fun getX() = 1
}
class C : T {
<!ACCIDENTAL_OVERRIDE!>val x: Int
get() = 1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun getX() = 1
}
@@ -1,8 +0,0 @@
interface T {
fun getX(): Int
}
abstract class C : T {
<!ACCIDENTAL_OVERRIDE!>val x: Int
get() = 1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun getX(): Int
}
@@ -1,7 +0,0 @@
class G<T>
<!CONFLICTING_JVM_DECLARATIONS!>val <T> G<T>.foo: Int
get() = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>val G<String>.foo: Int
get() = 1<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
class G<T>
val <T> G<T>.foo: Int
@@ -1,7 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!CONFLICTING_JVM_DECLARATIONS!>fun getX(t: Any) = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>val Any.x: Int
get() = 1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@@ -1,8 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int) {}<!>
<!CONFLICTING_JVM_DECLARATIONS!>var x: Int = 1
set(v) {}<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@@ -1,3 +0,0 @@
<!CONFLICTING_JVM_DECLARATIONS!>val x: Int
get() = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
val x: Int
<!CONFLICTING_JVM_DECLARATIONS!>get() = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
@@ -1,5 +0,0 @@
interface T {
<!CONFLICTING_JVM_DECLARATIONS!>val x: Int
get() = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
val x: Int
<!CONFLICTING_JVM_DECLARATIONS!>get() = 1<!>
@@ -1,8 +0,0 @@
interface T {
fun getX() = 1
}
interface C : T {
<!ACCIDENTAL_OVERRIDE!>val x: Int
get() = 1<!>
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface T {
fun getX() = 1
}
+2 -2
View File
@@ -27,8 +27,8 @@
@25:4..27:25 FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:private [final]
@25:17..19 EXPRESSION_BODY
@25:17..19 CONST Int type=kotlin.Int value=42
@25:4..27:25 FUN name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Foo) returnType:kotlin.Int
@25:4..27:25 VALUE_PARAMETER name:<this> type:<root>.Foo
@27:8..25 FUN name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Foo) returnType:kotlin.Int
@27:8..25 VALUE_PARAMETER name:<this> type:<root>.Foo
@27:16..25 BLOCK_BODY
@27:25..25 RETURN type=kotlin.Nothing from='public final fun <get-x> (): kotlin.Int declared in <root>.Foo'
@27:22..25 CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=PLUS
@@ -49,30 +49,30 @@
@19:4..20:18 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null
@19:4..20:18 GET_VAR '<this>: test.Test declared in test.Test.<get-test3>' type=test.Test origin=null
@23:4..24 PROPERTY name:test4 visibility:public modality:FINAL [val]
@23:4..24 FUN name:<get-test4> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
@23:4..24 VALUE_PARAMETER name:<this> type:test.Test
@23:14..24 FUN name:<get-test4> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
@23:14..24 VALUE_PARAMETER name:<this> type:test.Test
@23:22..24 BLOCK_BODY
@23:24..24 RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Int declared in test.Test'
@23:22..24 CONST Int type=kotlin.Int value=42
@26:4..27:18 PROPERTY name:test5 visibility:public modality:FINAL [val]
@26:4..27:18 FUN name:<get-test5> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
@26:4..27:18 VALUE_PARAMETER name:<this> type:test.Test
@27:8..18 FUN name:<get-test5> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
@27:8..18 VALUE_PARAMETER name:<this> type:test.Test
@27:16..18 BLOCK_BODY
@27:18..18 RETURN type=kotlin.Nothing from='public final fun <get-test5> (): kotlin.Int declared in test.Test'
@27:16..18 CONST Int type=kotlin.Int value=42
@30:4..34:18 PROPERTY name:test6 visibility:public modality:FINAL [val]
@30:4..34:18 FUN name:<get-test6> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
@30:4..34:18 VALUE_PARAMETER name:<this> type:test.Test
@34:8..18 FUN name:<get-test6> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
@34:8..18 VALUE_PARAMETER name:<this> type:test.Test
@34:16..18 BLOCK_BODY
@34:18..18 RETURN type=kotlin.Nothing from='public final fun <get-test6> (): kotlin.Int declared in test.Test'
@34:16..18 CONST Int type=kotlin.Int value=42
@37:4..41:18 PROPERTY name:test7 visibility:public modality:FINAL [val]
@37:4..41:18 FUN name:<get-test7> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
@38:8..41:18 FUN name:<get-test7> visibility:public modality:FINAL <> ($this:test.Test) returnType:kotlin.Int
annotations:
@38:8..40:9 CONSTRUCTOR_CALL 'public constructor <init> (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null
@39:12..29 VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
@39:12..29 CONST String type=kotlin.String value="UNUSED_VARIABLE"
@37:4..41:18 VALUE_PARAMETER name:<this> type:test.Test
@38:8..41:18 VALUE_PARAMETER name:<this> type:test.Test
@41:16..18 BLOCK_BODY
@41:18..18 RETURN type=kotlin.Nothing from='public final fun <get-test7> (): kotlin.Int declared in test.Test'
@41:16..18 CONST Int type=kotlin.Int value=42
@@ -103,13 +103,13 @@
@47:4..31 RETURN type=kotlin.Nothing from='public final fun <get-test9> (): kotlin.Int declared in test.Test'
@47:4..31 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
@47:4..31 GET_VAR '<this>: test.Test declared in test.Test.<get-test9>' type=test.Test origin=null
@47:4..31 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test9> visibility:private modality:FINAL <> ($this:test.Test, <set-?>:kotlin.Int) returnType:kotlin.Unit
@47:4..31 VALUE_PARAMETER name:<this> type:test.Test
@47:4..31 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@47:4..31 BLOCK_BODY
@47:4..31 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
@47:4..31 GET_VAR '<this>: test.Test declared in test.Test.<set-test9>' type=test.Test origin=null
@47:4..31 GET_VAR '<set-?>: kotlin.Int declared in test.Test.<set-test9>' type=kotlin.Int origin=null
@47:20..31 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test9> visibility:private modality:FINAL <> ($this:test.Test, <set-?>:kotlin.Int) returnType:kotlin.Unit
@47:20..31 VALUE_PARAMETER name:<this> type:test.Test
@47:20..31 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@47:20..31 BLOCK_BODY
@47:20..31 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
@47:20..31 GET_VAR '<this>: test.Test declared in test.Test.<set-test9>' type=test.Test origin=null
@47:20..31 GET_VAR '<set-?>: kotlin.Int declared in test.Test.<set-test9>' type=kotlin.Int origin=null
@50:4..51:19 PROPERTY name:test10 visibility:public modality:FINAL [var]
@50:4..51:19 FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private
@50:17..19 EXPRESSION_BODY
@@ -120,13 +120,13 @@
@50:4..51:19 RETURN type=kotlin.Nothing from='public final fun <get-test10> (): kotlin.Int declared in test.Test'
@50:4..51:19 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
@50:4..51:19 GET_VAR '<this>: test.Test declared in test.Test.<get-test10>' type=test.Test origin=null
@50:4..51:19 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test10> visibility:private modality:FINAL <> ($this:test.Test, <set-?>:kotlin.Int) returnType:kotlin.Unit
@50:4..51:19 VALUE_PARAMETER name:<this> type:test.Test
@50:4..51:19 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@50:4..51:19 BLOCK_BODY
@50:4..51:19 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
@50:4..51:19 GET_VAR '<this>: test.Test declared in test.Test.<set-test10>' type=test.Test origin=null
@50:4..51:19 GET_VAR '<set-?>: kotlin.Int declared in test.Test.<set-test10>' type=kotlin.Int origin=null
@51:8..19 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test10> visibility:private modality:FINAL <> ($this:test.Test, <set-?>:kotlin.Int) returnType:kotlin.Unit
@51:8..19 VALUE_PARAMETER name:<this> type:test.Test
@51:8..19 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@51:8..19 BLOCK_BODY
@51:8..19 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private' type=kotlin.Unit origin=null
@51:8..19 GET_VAR '<this>: test.Test declared in test.Test.<set-test10>' type=test.Test origin=null
@51:8..19 GET_VAR '<set-?>: kotlin.Int declared in test.Test.<set-test10>' type=kotlin.Int origin=null
@54:4..57:9 PROPERTY name:test11 visibility:public modality:FINAL [var]
@54:4..57:9 FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private
@54:17..19 EXPRESSION_BODY
@@ -137,8 +137,8 @@
@54:4..57:9 RETURN type=kotlin.Nothing from='public final fun <get-test11> (): kotlin.Int declared in test.Test'
@54:4..57:9 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
@54:4..57:9 GET_VAR '<this>: test.Test declared in test.Test.<get-test11>' type=test.Test origin=null
@54:4..57:9 FUN name:<set-test11> visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit
@54:4..57:9 VALUE_PARAMETER name:<this> type:test.Test
@55:8..57:9 FUN name:<set-test11> visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit
@55:8..57:9 VALUE_PARAMETER name:<this> type:test.Test
@55:12..17 VALUE_PARAMETER name:value index:0 type:kotlin.Int
@55:19..57:9 BLOCK_BODY
@56:12..25 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private' type=kotlin.Unit origin=EQ
@@ -154,8 +154,8 @@
@60:4..66:9 RETURN type=kotlin.Nothing from='public final fun <get-test12> (): kotlin.Int declared in test.Test'
@60:4..66:9 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
@60:4..66:9 GET_VAR '<this>: test.Test declared in test.Test.<get-test12>' type=test.Test origin=null
@60:4..66:9 FUN name:<set-test12> visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit
@60:4..66:9 VALUE_PARAMETER name:<this> type:test.Test
@64:8..66:9 FUN name:<set-test12> visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit
@64:8..66:9 VALUE_PARAMETER name:<this> type:test.Test
@64:12..17 VALUE_PARAMETER name:value index:0 type:kotlin.Int
@64:19..66:9 BLOCK_BODY
@65:12..25 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private' type=kotlin.Unit origin=EQ
@@ -171,12 +171,12 @@
@69:4..75:9 RETURN type=kotlin.Nothing from='public final fun <get-test13> (): kotlin.Int declared in test.Test'
@69:4..75:9 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Int visibility:private' type=kotlin.Int origin=null
@69:4..75:9 GET_VAR '<this>: test.Test declared in test.Test.<get-test13>' type=test.Test origin=null
@69:4..75:9 FUN name:<set-test13> visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit
@70:8..75:9 FUN name:<set-test13> visibility:public modality:FINAL <> ($this:test.Test, value:kotlin.Int) returnType:kotlin.Unit
annotations:
@70:8..72:9 CONSTRUCTOR_CALL 'public constructor <init> (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null
@71:12..29 VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
@71:12..29 CONST String type=kotlin.String value="UNUSED_VARIABLE"
@69:4..75:9 VALUE_PARAMETER name:<this> type:test.Test
@70:8..75:9 VALUE_PARAMETER name:<this> type:test.Test
@73:12..17 VALUE_PARAMETER name:value index:0 type:kotlin.Int
@73:19..75:9 BLOCK_BODY
@74:12..25 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Int visibility:private' type=kotlin.Unit origin=EQ
@@ -36,22 +36,22 @@
@18:0..19:14 RETURN type=kotlin.Nothing from='private final fun <get-test3> (): kotlin.Int declared in test'
@18:0..19:14 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Int visibility:private [final,static]' type=kotlin.Int origin=null
@22:0..20 PROPERTY name:test4 visibility:public modality:FINAL [val]
@22:0..20 FUN name:<get-test4> visibility:public modality:FINAL <> () returnType:kotlin.Int
@22:10..20 FUN name:<get-test4> visibility:public modality:FINAL <> () returnType:kotlin.Int
@22:18..20 BLOCK_BODY
@22:20..20 RETURN type=kotlin.Nothing from='public final fun <get-test4> (): kotlin.Int declared in test'
@22:18..20 CONST Int type=kotlin.Int value=42
@25:0..26:14 PROPERTY name:test5 visibility:public modality:FINAL [val]
@25:0..26:14 FUN name:<get-test5> visibility:public modality:FINAL <> () returnType:kotlin.Int
@26:4..14 FUN name:<get-test5> visibility:public modality:FINAL <> () returnType:kotlin.Int
@26:12..14 BLOCK_BODY
@26:14..14 RETURN type=kotlin.Nothing from='public final fun <get-test5> (): kotlin.Int declared in test'
@26:12..14 CONST Int type=kotlin.Int value=42
@29:0..33:14 PROPERTY name:test6 visibility:public modality:FINAL [val]
@29:0..33:14 FUN name:<get-test6> visibility:public modality:FINAL <> () returnType:kotlin.Int
@33:4..14 FUN name:<get-test6> visibility:public modality:FINAL <> () returnType:kotlin.Int
@33:12..14 BLOCK_BODY
@33:14..14 RETURN type=kotlin.Nothing from='public final fun <get-test6> (): kotlin.Int declared in test'
@33:12..14 CONST Int type=kotlin.Int value=42
@36:0..40:14 PROPERTY name:test7 visibility:public modality:FINAL [val]
@36:0..40:14 FUN name:<get-test7> visibility:public modality:FINAL <> () returnType:kotlin.Int
@37:4..40:14 FUN name:<get-test7> visibility:public modality:FINAL <> () returnType:kotlin.Int
annotations:
@37:4..39:5 CONSTRUCTOR_CALL 'public constructor <init> (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null
@38:8..25 VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
@@ -80,11 +80,11 @@
@46:0..27 BLOCK_BODY
@46:0..27 RETURN type=kotlin.Nothing from='public final fun <get-test9> (): kotlin.Int declared in test'
@46:0..27 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null
@46:0..27 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test9> visibility:private modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit
@46:0..27 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@46:0..27 BLOCK_BODY
@46:0..27 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
@46:0..27 GET_VAR '<set-?>: kotlin.Int declared in test.<set-test9>' type=kotlin.Int origin=null
@46:16..27 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test9> visibility:private modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit
@46:16..27 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@46:16..27 BLOCK_BODY
@46:16..27 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test9 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
@46:16..27 GET_VAR '<set-?>: kotlin.Int declared in test.<set-test9>' type=kotlin.Int origin=null
@49:0..50:15 PROPERTY name:test10 visibility:public modality:FINAL [var]
@49:0..50:15 FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static]
@49:13..15 EXPRESSION_BODY
@@ -93,11 +93,11 @@
@49:0..50:15 BLOCK_BODY
@49:0..50:15 RETURN type=kotlin.Nothing from='public final fun <get-test10> (): kotlin.Int declared in test'
@49:0..50:15 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null
@49:0..50:15 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test10> visibility:private modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit
@49:0..50:15 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@49:0..50:15 BLOCK_BODY
@49:0..50:15 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
@49:0..50:15 GET_VAR '<set-?>: kotlin.Int declared in test.<set-test10>' type=kotlin.Int origin=null
@50:4..15 FUN DEFAULT_PROPERTY_ACCESSOR name:<set-test10> visibility:private modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit
@50:4..15 VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int
@50:4..15 BLOCK_BODY
@50:4..15 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test10 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
@50:4..15 GET_VAR '<set-?>: kotlin.Int declared in test.<set-test10>' type=kotlin.Int origin=null
@53:0..54:32 PROPERTY name:test11 visibility:public modality:FINAL [var]
@53:0..54:32 FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private [static]
@53:13..15 EXPRESSION_BODY
@@ -106,7 +106,7 @@
@53:0..54:32 BLOCK_BODY
@53:0..54:32 RETURN type=kotlin.Nothing from='public final fun <get-test11> (): kotlin.Int declared in test'
@53:0..54:32 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null
@53:0..54:32 FUN name:<set-test11> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
@54:4..32 FUN name:<set-test11> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
@54:8..13 VALUE_PARAMETER name:value index:0 type:kotlin.Int
@54:15..32 BLOCK_BODY
@54:17..30 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test11 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=EQ
@@ -119,7 +119,7 @@
@57:0..61:32 BLOCK_BODY
@57:0..61:32 RETURN type=kotlin.Nothing from='public final fun <get-test12> (): kotlin.Int declared in test'
@57:0..61:32 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null
@57:0..61:32 FUN name:<set-test12> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
@61:4..32 FUN name:<set-test12> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
@61:8..13 VALUE_PARAMETER name:value index:0 type:kotlin.Int
@61:15..32 BLOCK_BODY
@61:17..30 SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test12 type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=EQ
@@ -132,7 +132,7 @@
@64:0..68:32 BLOCK_BODY
@64:0..68:32 RETURN type=kotlin.Nothing from='public final fun <get-test13> (): kotlin.Int declared in test'
@64:0..68:32 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test13 type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null
@64:0..68:32 FUN name:<set-test13> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
@65:4..68:32 FUN name:<set-test13> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
annotations:
@65:4..67:5 CONSTRUCTOR_CALL 'public constructor <init> (vararg names: kotlin.String) [primary] declared in kotlin.Suppress' type=kotlin.Suppress origin=null
@66:8..25 VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
+1 -1
View File
@@ -19,7 +19,7 @@
@3:0..28 RETURN type=kotlin.Nothing from='public final fun <get-bangBangExpr> (): kotlin.Int declared in <root>'
@3:0..28 GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:bangBangExpr type:kotlin.Int visibility:private [final,static]' type=kotlin.Int origin=null
@5:0..6:13 PROPERTY name:x visibility:public modality:FINAL [val]
@5:0..6:13 FUN name:<get-x> visibility:public modality:FINAL <> () returnType:kotlin.Int
@6:4..13 FUN name:<get-x> visibility:public modality:FINAL <> () returnType:kotlin.Int
@6:12..13 BLOCK_BODY
@6:13..13 RETURN type=kotlin.Nothing from='public final fun <get-x> (): kotlin.Int declared in <root>'
@6:12..13 CONST Int type=kotlin.Int value=5