JVM_IR: generate $delegate methods for val x by ::y

This commit is contained in:
pyos
2021-06-30 19:26:18 +02:00
committed by Alexander Udalov
parent 7ae4303e1b
commit 5d0102a966
4 changed files with 76 additions and 23 deletions
@@ -30,9 +30,15 @@ fun local() {
// 0 kotlin/jvm/internal/PropertyReference[0-2]Impl\.\<init\>
// JVM_IR_TEMPLATES
// Optimized all to direct accesses:
// 0 kotlin/jvm/internal/MutablePropertyReference[0-2]Impl\.\<init\>
// Optimized all to direct accesses, with `$delegate` methods generating reflected references on demand:
// 0 extends kotlin/jvm/internal/MutablePropertyReference[0-2]Impl
// 0 private final( static)? Lkotlin/reflect/KMutableProperty[0-2]; [xyz]m?\$delegate
// 0 LOCALVARIABLE [xyz]m? Lkotlin/reflect/KMutableProperty[0-2];
// 12 static get[XYZ]m?\$delegate
// JVM_TEMPLATES
// Not optimized:
// 16 kotlin/jvm/internal/MutablePropertyReference[0-2]Impl\.\<init\>
// Not optimized, references created as classes and stored in fields:
// 16 extends kotlin/jvm/internal/MutablePropertyReference[0-2]Impl
// 12 private final( static)? Lkotlin/reflect/KMutableProperty[0-2]; [xyz]m?\$delegate
// 4 LOCALVARIABLE [xyz]m? Lkotlin/reflect/KMutableProperty[0-2];
// 0 static get[XYZ]m?\$delegate