Introduce new naming convention for captured receiver backing fields
'receiver$0' -> '$this_<label>'
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block {
|
||||
val y = false
|
||||
block {
|
||||
val z = true
|
||||
block {
|
||||
this@foo + this@block.toString() + x + y + z + count
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline fun block(block: Long.() -> Unit) = 5L.block()
|
||||
@@ -0,0 +1,25 @@
|
||||
public final class DeepInlineKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
1 $i$f$block: I
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String $receiver, int $i$a$1$block) {
|
||||
Local variables:
|
||||
9 $receiver: J
|
||||
11 $i$a$1$block: I
|
||||
12 $i$f$block: I
|
||||
8 z: Z
|
||||
6 $receiver: J
|
||||
13 $i$a$1$block: I
|
||||
14 $i$f$block: I
|
||||
5 y: Z
|
||||
3 $receiver: J
|
||||
15 $i$a$1$block: I
|
||||
16 $i$f$block: I
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block b1@ {
|
||||
val y = false
|
||||
block b2@ {
|
||||
val z = true
|
||||
block b3@ {
|
||||
this@foo + this@b1 + this@b2 + this@b3 + x + y + z + count
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline fun block(block: Long.() -> Unit) = 5L.block()
|
||||
@@ -0,0 +1,25 @@
|
||||
public final class DeepInlineWithLabelsKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
1 $i$f$block: I
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String $receiver, int $i$a$1$block) {
|
||||
Local variables:
|
||||
9 $receiver: J
|
||||
11 $i$a$1$block: I
|
||||
12 $i$f$block: I
|
||||
8 z: Z
|
||||
6 $receiver: J
|
||||
13 $i$a$1$block: I
|
||||
14 $i$f$block: I
|
||||
5 y: Z
|
||||
3 $receiver: J
|
||||
15 $i$a$1$block: I
|
||||
16 $i$f$block: I
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
// LANGUAGE_VERSION: 1.3
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block b1@ {
|
||||
val y = false
|
||||
block b2@ {
|
||||
val z = true
|
||||
block b3@ {
|
||||
this@foo + this@b1 + this@b2 + this@b3 + x + y + z + count
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun block(block: Long.() -> Unit) = 5L.block()
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
final class DeepNoinlineWithLabels_afterKt$foo$1$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final long $this_b2
|
||||
|
||||
final boolean $z
|
||||
|
||||
final DeepNoinlineWithLabels_afterKt$foo$1$1 this$0
|
||||
|
||||
void <init>(DeepNoinlineWithLabels_afterKt$foo$1$1 p0, long p1, boolean p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long $receiver) {
|
||||
Local variables:
|
||||
0 this: LDeepNoinlineWithLabels_afterKt$foo$1$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinlineWithLabels_afterKt$foo$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final long $this_b1
|
||||
|
||||
final boolean $y
|
||||
|
||||
final DeepNoinlineWithLabels_afterKt$foo$1 this$0
|
||||
|
||||
void <init>(DeepNoinlineWithLabels_afterKt$foo$1 p0, long p1, boolean p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 z: Z
|
||||
0 this: LDeepNoinlineWithLabels_afterKt$foo$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinlineWithLabels_afterKt$foo$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final int $count
|
||||
|
||||
final java.lang.String $this_foo
|
||||
|
||||
final boolean $x
|
||||
|
||||
void <init>(java.lang.String p0, boolean p1, int p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 y: Z
|
||||
0 this: LDeepNoinlineWithLabels_afterKt$foo$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
public final class DeepNoinlineWithLabels_afterKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String x, int $receiver) {
|
||||
Local variables:
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// !LANGUAGE: -NewCapturedReceiverFieldNamingConvention
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block b1@ {
|
||||
val y = false
|
||||
block b2@ {
|
||||
val z = true
|
||||
block b3@ {
|
||||
this@foo + this@b1 + this@b2 + this@b3 + x + y + z + count
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun block(block: Long.() -> Unit) = 5L.block()
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
final class DeepNoinlineWithLabels_beforeKt$foo$1$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final boolean $z
|
||||
|
||||
final long receiver$0
|
||||
|
||||
final DeepNoinlineWithLabels_beforeKt$foo$1$1 this$0
|
||||
|
||||
void <init>(DeepNoinlineWithLabels_beforeKt$foo$1$1 p0, long p1, boolean p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long $receiver) {
|
||||
Local variables:
|
||||
0 this: LDeepNoinlineWithLabels_beforeKt$foo$1$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinlineWithLabels_beforeKt$foo$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final boolean $y
|
||||
|
||||
final long receiver$0
|
||||
|
||||
final DeepNoinlineWithLabels_beforeKt$foo$1 this$0
|
||||
|
||||
void <init>(DeepNoinlineWithLabels_beforeKt$foo$1 p0, long p1, boolean p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 z: Z
|
||||
0 this: LDeepNoinlineWithLabels_beforeKt$foo$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinlineWithLabels_beforeKt$foo$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final int $count
|
||||
|
||||
final boolean $x
|
||||
|
||||
final java.lang.String receiver$0
|
||||
|
||||
void <init>(java.lang.String p0, boolean p1, int p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 y: Z
|
||||
0 this: LDeepNoinlineWithLabels_beforeKt$foo$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
public final class DeepNoinlineWithLabels_beforeKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String x, int $receiver) {
|
||||
Local variables:
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
// LANGUAGE_VERSION: 1.3
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block {
|
||||
val y = false
|
||||
block {
|
||||
val z = true
|
||||
block {
|
||||
this@foo + this@block.toString() + x + y + z + count
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun block(block: Long.() -> Unit) = 5L.block()
|
||||
@@ -0,0 +1,65 @@
|
||||
final class DeepNoinline_afterKt$foo$1$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final boolean $z
|
||||
|
||||
final DeepNoinline_afterKt$foo$1$1 this$0
|
||||
|
||||
void <init>(DeepNoinline_afterKt$foo$1$1 p0, boolean p1)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long $receiver) {
|
||||
Local variables:
|
||||
0 this: LDeepNoinline_afterKt$foo$1$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinline_afterKt$foo$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final boolean $y
|
||||
|
||||
final DeepNoinline_afterKt$foo$1 this$0
|
||||
|
||||
void <init>(DeepNoinline_afterKt$foo$1 p0, boolean p1)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 z: Z
|
||||
0 this: LDeepNoinline_afterKt$foo$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinline_afterKt$foo$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final int $count
|
||||
|
||||
final java.lang.String $this_foo
|
||||
|
||||
final boolean $x
|
||||
|
||||
void <init>(java.lang.String p0, boolean p1, int p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 y: Z
|
||||
0 this: LDeepNoinline_afterKt$foo$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
public final class DeepNoinline_afterKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String x, int $receiver) {
|
||||
Local variables:
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// !LANGUAGE: -NewCapturedReceiverFieldNamingConvention
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block {
|
||||
val y = false
|
||||
block {
|
||||
val z = true
|
||||
block {
|
||||
this@foo + this@block.toString() + x + y + z + count
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun block(block: Long.() -> Unit) = 5L.block()
|
||||
@@ -0,0 +1,65 @@
|
||||
final class DeepNoinline_beforeKt$foo$1$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final boolean $z
|
||||
|
||||
final DeepNoinline_beforeKt$foo$1$1 this$0
|
||||
|
||||
void <init>(DeepNoinline_beforeKt$foo$1$1 p0, boolean p1)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long $receiver) {
|
||||
Local variables:
|
||||
0 this: LDeepNoinline_beforeKt$foo$1$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinline_beforeKt$foo$1$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final boolean $y
|
||||
|
||||
final DeepNoinline_beforeKt$foo$1 this$0
|
||||
|
||||
void <init>(DeepNoinline_beforeKt$foo$1 p0, boolean p1)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 z: Z
|
||||
0 this: LDeepNoinline_beforeKt$foo$1$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
final class DeepNoinline_beforeKt$foo$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final int $count
|
||||
|
||||
final boolean $x
|
||||
|
||||
final java.lang.String receiver$0
|
||||
|
||||
void <init>(java.lang.String p0, boolean p1, int p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long this) {
|
||||
Local variables:
|
||||
3 y: Z
|
||||
0 this: LDeepNoinline_beforeKt$foo$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
public final class DeepNoinline_beforeKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String x, int $receiver) {
|
||||
Local variables:
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
class Foo {
|
||||
fun foo() {
|
||||
block {
|
||||
this@Foo
|
||||
}
|
||||
}
|
||||
|
||||
inner class Bar {
|
||||
fun bar() {
|
||||
block {
|
||||
this@Foo
|
||||
this@Bar
|
||||
|
||||
block {
|
||||
this@Foo
|
||||
this@Bar
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline fun block(block: () -> Unit) = block()
|
||||
@@ -0,0 +1,40 @@
|
||||
public final class Foo$Bar : java/lang/Object {
|
||||
final Foo this$0
|
||||
|
||||
public void <init>(Foo $outer) {
|
||||
Local variables:
|
||||
0 this: LFoo$Bar;
|
||||
1 $outer: LFoo;
|
||||
}
|
||||
|
||||
public final void bar() {
|
||||
Local variables:
|
||||
1 $i$a$1$block: I
|
||||
2 $i$f$block: I
|
||||
3 $i$a$1$block: I
|
||||
4 $i$f$block: I
|
||||
0 this: LFoo$Bar;
|
||||
}
|
||||
}
|
||||
|
||||
public final class Foo : java/lang/Object {
|
||||
public void <init>() {
|
||||
Local variables:
|
||||
0 this: LFoo;
|
||||
}
|
||||
|
||||
public final void foo() {
|
||||
Local variables:
|
||||
1 $i$a$1$block: I
|
||||
2 $i$f$block: I
|
||||
0 this: LFoo;
|
||||
}
|
||||
}
|
||||
|
||||
public final class InlineClassCaptureKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function0 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function0;
|
||||
1 $i$f$block: I
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x: Boolean = false
|
||||
|
||||
block {
|
||||
this@foo + this@block.toString() + x.toString() + count.toString()
|
||||
}
|
||||
}
|
||||
|
||||
inline fun block(block: Long.() -> Unit) = 5L.block()
|
||||
@@ -0,0 +1,17 @@
|
||||
public final class InlineReceiversKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
1 $i$f$block: I
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String $receiver, int $i$a$1$block) {
|
||||
Local variables:
|
||||
3 $receiver: J
|
||||
5 $i$a$1$block: I
|
||||
6 $i$f$block: I
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class Foo {
|
||||
inner class Bar
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
public final class Foo$Bar : java/lang/Object {
|
||||
final Foo this$0
|
||||
|
||||
public void <init>(Foo $outer)
|
||||
}
|
||||
|
||||
public final class Foo : java/lang/Object {
|
||||
public void <init>()
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block {
|
||||
this@foo + this@block.toString() + x.toString() + count.toString()
|
||||
}
|
||||
}
|
||||
|
||||
fun block(block: Long.() -> Unit) = 5L.block()
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
final class NonInlineReceivers_afterKt$foo$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final int $count
|
||||
|
||||
final java.lang.String $this_foo
|
||||
|
||||
final boolean $x
|
||||
|
||||
void <init>(java.lang.String p0, boolean p1, int p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long $receiver) {
|
||||
Local variables:
|
||||
0 this: LNonInlineReceivers_afterKt$foo$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
public final class NonInlineReceivers_afterKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String x, int $receiver) {
|
||||
Local variables:
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// !LANGUAGE: -NewCapturedReceiverFieldNamingConvention
|
||||
// LOCAL_VARIABLE_TABLE
|
||||
|
||||
fun String.foo(count: Int) {
|
||||
val x = false
|
||||
|
||||
block {
|
||||
this@foo + this@block.toString() + x.toString() + count.toString()
|
||||
}
|
||||
}
|
||||
|
||||
fun block(block: Long.() -> Unit) = 5L.block()
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
final class NonInlineReceivers_beforeKt$foo$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function1 {
|
||||
final int $count
|
||||
|
||||
final boolean $x
|
||||
|
||||
final java.lang.String receiver$0
|
||||
|
||||
void <init>(java.lang.String p0, boolean p1, int p2)
|
||||
|
||||
public java.lang.Object invoke(java.lang.Object p0)
|
||||
|
||||
public final void invoke(long $receiver) {
|
||||
Local variables:
|
||||
0 this: LNonInlineReceivers_beforeKt$foo$1;
|
||||
1 $receiver: J
|
||||
}
|
||||
}
|
||||
|
||||
public final class NonInlineReceivers_beforeKt : java/lang/Object {
|
||||
public final static void block(kotlin.jvm.functions.Function1 block) {
|
||||
Local variables:
|
||||
0 block: Lkotlin/jvm/functions/Function1;
|
||||
}
|
||||
|
||||
public final static void foo(java.lang.String x, int $receiver) {
|
||||
Local variables:
|
||||
2 x: Z
|
||||
0 $receiver: Ljava/lang/String;
|
||||
1 count: I
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
fun String.foo(a: Int) {}
|
||||
@@ -0,0 +1,3 @@
|
||||
public final class SimpleKt : java/lang/Object {
|
||||
public final static void foo(java.lang.String $receiver, int a)
|
||||
}
|
||||
Reference in New Issue
Block a user