Desugar synthetic Java properties in psi2ir
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
// FILE: javaSyntheticPropertyAccess.kt
|
||||
fun test(j: J) {
|
||||
j.foo += 1
|
||||
}
|
||||
|
||||
// FILE: J.java
|
||||
public class J {
|
||||
private int foo = 42;
|
||||
|
||||
public int getFoo() { return foo; }
|
||||
public void setFoo(int x) {}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
FILE fqName:<root> fileName:/javaSyntheticPropertyAccess.kt
|
||||
FUN name:test visibility:public modality:FINAL <> (j:J) returnType:kotlin.Unit flags:
|
||||
VALUE_PARAMETER name:j index:0 type:J flags:
|
||||
BLOCK_BODY
|
||||
BLOCK type=kotlin.Unit origin=PLUSEQ
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp0_receiver type:J flags:val
|
||||
GET_VAR 'value-parameter j: J' type=J origin=null
|
||||
CALL 'setFoo(Int): Unit' type=kotlin.Unit origin=PLUSEQ
|
||||
$receiver: GET_VAR 'tmp0_receiver: J' type=J origin=null
|
||||
x: CALL 'plus(Int): Int' type=kotlin.Int origin=PLUSEQ
|
||||
$this: CALL 'getFoo(): Int' type=kotlin.Int origin=PLUSEQ
|
||||
$receiver: GET_VAR 'tmp0_receiver: J' type=J origin=null
|
||||
other: CONST Int type=kotlin.Int value=1
|
||||
@@ -2,7 +2,7 @@ FILE fqName:<root> fileName:/javaSyntheticProperty.kt
|
||||
PROPERTY name:test visibility:public modality:FINAL flags:val
|
||||
FIELD PROPERTY_BACKING_FIELD name:test type:kotlin.String? visibility:public flags:final
|
||||
EXPRESSION_BODY
|
||||
CALL '<get-foo>() on J: String!' type=kotlin.String? origin=GET_PROPERTY
|
||||
CALL 'getFoo(): String!' type=kotlin.String? origin=GET_PROPERTY
|
||||
$receiver: CALL 'constructor J()' type=J origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test> visibility:public modality:FINAL <> () returnType:kotlin.String? flags:
|
||||
correspondingProperty: PROPERTY name:test visibility:public modality:FINAL flags:val
|
||||
|
||||
@@ -5,6 +5,6 @@ FILE fqName:<root> fileName:/jdkClassSyntheticProperty.kt
|
||||
$receiver: VALUE_PARAMETER name:<this> type:java.lang.Class<*> flags:
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='<get-test>() on Class<*>: Array<(out) Field!>!'
|
||||
CALL '<get-declaredFields>() on Class<out Any!>: Array<(out) Field!>!' type=kotlin.Array<out java.lang.reflect.Field!>? origin=GET_PROPERTY
|
||||
CALL 'getDeclaredFields(): Array<(out) Field!>!' type=kotlin.Array<out java.lang.reflect.Field!>? origin=GET_PROPERTY
|
||||
<`0>: kotlin.Any?
|
||||
$receiver: GET_VAR 'this@test: Class<*>' type=java.lang.Class<*> origin=null
|
||||
|
||||
Reference in New Issue
Block a user