Use fields for spilled variables for lambda parameters as well

In other words, do not generate p$ fields if we can use L$ fields,
which are being cleaned up.
 #KT-16222 Fixed
This commit is contained in:
Ilmir Usmanov
2020-08-11 18:51:14 +02:00
parent f5ab3a445f
commit bcbb050326
16 changed files with 192 additions and 96 deletions
@@ -42,9 +42,8 @@ final class CoroutineFieldsKt$box$1 {
// source: 'coroutineFields.kt'
synthetic final field $result: kotlin.jvm.internal.Ref$ObjectRef
field J$0: long
field L$0: java.lang.Object
private synthetic field L$0: java.lang.Object
field L$1: java.lang.Object
private synthetic field p$: Controller
inner (anonymous) class CoroutineFieldsKt$box$1
method <init>(p0: kotlin.jvm.internal.Ref$ObjectRef, p1: COROUTINES_PACKAGE.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: COROUTINES_PACKAGE.Continuation): COROUTINES_PACKAGE.Continuation
@@ -41,10 +41,9 @@ final class CoroutineFieldsKt$box$1 {
// source: 'coroutineFields.kt'
synthetic final field $result: kotlin.jvm.internal.Ref$ObjectRef
field J$0: long
field L$0: java.lang.Object
private synthetic field L$0: java.lang.Object
field L$1: java.lang.Object
field label: int
private synthetic field p$: Controller
inner (anonymous) class CoroutineFieldsKt$box$1
method <init>(p0: kotlin.jvm.internal.Ref$ObjectRef, p1: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -2,8 +2,8 @@
@kotlin.Metadata
final class Component1Kt$test$1 {
// source: 'component1.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$: Foo
inner (anonymous) class Component1Kt$test$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -0,0 +1,40 @@
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class Component1Kt$test$1 {
// source: 'component1.kt'
field label: int
private synthetic field p$: Foo
inner (anonymous) class Component1Kt$test$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
public final method invoke(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
public final class Component1Kt {
// source: 'component1.kt'
inner (anonymous) class Component1Kt$test$1
public final static @org.jetbrains.annotations.NotNull method generate(): Result
public final static method test(): void
public final static method use(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function2): void
}
@kotlin.Metadata
public final class Foo$DefaultImpls {
// source: 'component1.kt'
public static @org.jetbrains.annotations.Nullable method component1(@org.jetbrains.annotations.NotNull p0: Foo, @org.jetbrains.annotations.NotNull p1: Result, @org.jetbrains.annotations.NotNull p2: kotlin.coroutines.Continuation): java.lang.Object
public final inner class Foo$DefaultImpls
}
@kotlin.Metadata
public interface Foo {
// source: 'component1.kt'
public abstract @org.jetbrains.annotations.Nullable method component1(@org.jetbrains.annotations.NotNull p0: Result, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): java.lang.Object
public final inner class Foo$DefaultImpls
}
@kotlin.Metadata
public interface Result {
// source: 'component1.kt'
}
@@ -14,8 +14,8 @@ final class DestructuredKt$test$1 {
@kotlin.Metadata
final class DestructuredKt$test$2 {
// source: 'destructured.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: kotlin.Pair
inner (anonymous) class DestructuredKt$test$2
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -27,8 +27,8 @@ final class DestructuredKt$test$2 {
@kotlin.Metadata
final class DestructuredKt$test$3 {
// source: 'destructured.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: kotlin.Pair
inner (anonymous) class DestructuredKt$test$3
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -40,8 +40,8 @@ final class DestructuredKt$test$3 {
@kotlin.Metadata
final class DestructuredKt$test$4 {
// source: 'destructured.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: kotlin.Pair
inner (anonymous) class DestructuredKt$test$4
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -2,8 +2,8 @@
@kotlin.Metadata
final class FieldKt$test$1 {
// source: 'field.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$: Foo
inner (anonymous) class FieldKt$test$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -0,0 +1,40 @@
@kotlin.coroutines.jvm.internal.DebugMetadata
@kotlin.Metadata
final class FieldKt$test$1 {
// source: 'field.kt'
field label: int
private synthetic field p$: Foo
inner (anonymous) class FieldKt$test$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
public final method invoke(p0: java.lang.Object, p1: java.lang.Object): java.lang.Object
public final @org.jetbrains.annotations.Nullable method invokeSuspend(@org.jetbrains.annotations.NotNull p0: java.lang.Object): java.lang.Object
}
@kotlin.Metadata
public final class FieldKt {
// source: 'field.kt'
inner (anonymous) class FieldKt$test$1
public final static @org.jetbrains.annotations.NotNull method generate(): Result
public final static method test(): void
public final static method use(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function2): void
}
@kotlin.Metadata
public final class Foo$DefaultImpls {
// source: 'field.kt'
public static @org.jetbrains.annotations.NotNull method getValue(@org.jetbrains.annotations.NotNull p0: Foo, @org.jetbrains.annotations.NotNull p1: Result): java.lang.Object
public final inner class Foo$DefaultImpls
}
@kotlin.Metadata
public interface Foo {
// source: 'field.kt'
public abstract @org.jetbrains.annotations.NotNull method getValue(@org.jetbrains.annotations.NotNull p0: Result): java.lang.Object
public final inner class Foo$DefaultImpls
}
@kotlin.Metadata
public interface Result {
// source: 'field.kt'
}
@@ -2,9 +2,9 @@
@kotlin.Metadata
final class LambdaKt$test$1 {
// source: 'lambda.kt'
private synthetic field D$0: double
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: double
private synthetic field p$1: java.lang.String
inner (anonymous) class LambdaKt$test$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -16,9 +16,9 @@ final class LambdaKt$test$1 {
@kotlin.Metadata
final class LambdaKt$test$10 {
// source: 'lambda.kt'
private synthetic field J$0: long
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$1: java.lang.String
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$10
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -30,8 +30,8 @@ final class LambdaKt$test$10 {
@kotlin.Metadata
final class LambdaKt$test$11 {
// source: 'lambda.kt'
private synthetic field J$0: long
field label: int
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$11
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -55,9 +55,9 @@ final class LambdaKt$test$12 {
@kotlin.Metadata
final class LambdaKt$test$13 {
// source: 'lambda.kt'
private synthetic field J$0: long
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: java.lang.String
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$13
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, @org.jetbrains.annotations.NotNull p1: java.lang.String, @org.jetbrains.annotations.NotNull p2: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -69,8 +69,8 @@ final class LambdaKt$test$13 {
@kotlin.Metadata
final class LambdaKt$test$14 {
// source: 'lambda.kt'
private synthetic field J$0: long
field label: int
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$14
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, @org.jetbrains.annotations.NotNull p1: java.lang.String, @org.jetbrains.annotations.NotNull p2: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -82,8 +82,8 @@ final class LambdaKt$test$14 {
@kotlin.Metadata
final class LambdaKt$test$15 {
// source: 'lambda.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: java.lang.String
inner (anonymous) class LambdaKt$test$15
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, @org.jetbrains.annotations.NotNull p1: java.lang.String, @org.jetbrains.annotations.NotNull p2: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -107,8 +107,8 @@ final class LambdaKt$test$16 {
@kotlin.Metadata
final class LambdaKt$test$17 {
// source: 'lambda.kt'
private synthetic field J$0: long
field label: int
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$17
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, @org.jetbrains.annotations.NotNull p1: java.lang.String, @org.jetbrains.annotations.NotNull p2: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -120,8 +120,8 @@ final class LambdaKt$test$17 {
@kotlin.Metadata
final class LambdaKt$test$2 {
// source: 'lambda.kt'
private synthetic field D$0: double
field label: int
private synthetic field p$0: double
inner (anonymous) class LambdaKt$test$2
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -133,8 +133,8 @@ final class LambdaKt$test$2 {
@kotlin.Metadata
final class LambdaKt$test$3 {
// source: 'lambda.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$1: java.lang.String
inner (anonymous) class LambdaKt$test$3
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -146,8 +146,8 @@ final class LambdaKt$test$3 {
@kotlin.Metadata
final class LambdaKt$test$4 {
// source: 'lambda.kt'
private synthetic field D$0: double
field label: int
private synthetic field p$0: double
inner (anonymous) class LambdaKt$test$4
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -159,8 +159,8 @@ final class LambdaKt$test$4 {
@kotlin.Metadata
final class LambdaKt$test$5 {
// source: 'lambda.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$1: java.lang.String
inner (anonymous) class LambdaKt$test$5
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -172,10 +172,10 @@ final class LambdaKt$test$5 {
@kotlin.Metadata
final class LambdaKt$test$6 {
// source: 'lambda.kt'
private synthetic field D$0: double
private synthetic field J$0: long
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: double
private synthetic field p$1: java.lang.String
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$6
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -187,9 +187,9 @@ final class LambdaKt$test$6 {
@kotlin.Metadata
final class LambdaKt$test$7 {
// source: 'lambda.kt'
private synthetic field D$0: double
private synthetic field J$0: long
field label: int
private synthetic field p$0: double
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$7
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -201,9 +201,9 @@ final class LambdaKt$test$7 {
@kotlin.Metadata
final class LambdaKt$test$8 {
// source: 'lambda.kt'
private synthetic field J$0: long
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$1: java.lang.String
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$8
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -215,9 +215,9 @@ final class LambdaKt$test$8 {
@kotlin.Metadata
final class LambdaKt$test$9 {
// source: 'lambda.kt'
private synthetic field D$0: double
private synthetic field J$0: long
field label: int
private synthetic field p$0: double
private synthetic field p$: long
inner (anonymous) class LambdaKt$test$9
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(p0: long, p1: double, @org.jetbrains.annotations.NotNull p2: java.lang.String, @org.jetbrains.annotations.NotNull p3: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -41,8 +41,8 @@ final class SelectKt$produceNumbers$1$1$1 {
@kotlin.Metadata
final class SelectKt$produceNumbers$1 {
// source: 'select.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$: ProducerScope
inner (anonymous) class SelectKt$produceNumbers$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation
@@ -2,8 +2,8 @@
@kotlin.Metadata
final class UnreachableKt$test$1 {
// source: 'unreachable.kt'
private synthetic field L$0: java.lang.Object
field label: int
private synthetic field p$0: java.lang.String
inner (anonymous) class UnreachableKt$test$1
method <init>(p0: kotlin.coroutines.Continuation): void
public final @org.jetbrains.annotations.NotNull method create(@org.jetbrains.annotations.Nullable p0: java.lang.Object, @org.jetbrains.annotations.NotNull p1: kotlin.coroutines.Continuation): kotlin.coroutines.Continuation