diff --git a/test/org/jetbrains/java/decompiler/SingleClassesTest.java b/test/org/jetbrains/java/decompiler/SingleClassesTest.java index b2df702..7482741 100644 --- a/test/org/jetbrains/java/decompiler/SingleClassesTest.java +++ b/test/org/jetbrains/java/decompiler/SingleClassesTest.java @@ -123,7 +123,7 @@ public class SingleClassesTest { @Test public void testGroovyClass() { doTest("pkg/TestGroovyClass"); } @Test public void testGroovyTrait() { doTest("pkg/TestGroovyTrait"); } @Test public void testPrivateClasses() { doTest("pkg/PrivateClasses"); } - @Test public void testSuspendLambdaKt() { doTest("pkg/TestSuspendLambdaKt"); } + @Test public void testSuspendLambda() { doTest("pkg/TestSuspendLambdaKt"); } private void doTest(String testFile, String... companionFiles) { ConsoleDecompiler decompiler = fixture.getDecompiler(); diff --git a/testData/classes/pkg/TestSuspendLambdaKt$sl1$1.class b/testData/classes/pkg/TestSuspendLambdaKt$sl1$1.class index dd1fe0e..47b0abe 100644 Binary files a/testData/classes/pkg/TestSuspendLambdaKt$sl1$1.class and b/testData/classes/pkg/TestSuspendLambdaKt$sl1$1.class differ diff --git a/testData/classes/pkg/TestSuspendLambdaKt.class b/testData/classes/pkg/TestSuspendLambdaKt.class index c686101..37db783 100644 Binary files a/testData/classes/pkg/TestSuspendLambdaKt.class and b/testData/classes/pkg/TestSuspendLambdaKt.class differ diff --git a/testData/results/TestSuspendLambdaKt.dec b/testData/results/TestSuspendLambdaKt.dec index 2193908..f4623b2 100644 --- a/testData/results/TestSuspendLambdaKt.dec +++ b/testData/results/TestSuspendLambdaKt.dec @@ -1,8 +1,11 @@ +package pkg; + import kotlin.Metadata; import kotlin.Unit; -import kotlin.SuccessOrFailure.Failure; +import kotlin.Result.Failure; import kotlin.coroutines.Continuation; import kotlin.coroutines.intrinsics.IntrinsicsKt; +import kotlin.coroutines.jvm.internal.DebugMetadata; import kotlin.coroutines.jvm.internal.SuspendLambda; import kotlin.jvm.functions.Function1; import kotlin.jvm.internal.Intrinsics; @@ -10,10 +13,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @Metadata( - mv = {1, 1, 11}, - bv = {1, 0, 2}, + mv = {1, 1, 13}, + bv = {1, 0, 3}, k = 2, - xi = 2, d1 = {"\u0000\u0016\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\u0010\u0000\n\u0002\b\u0003\",\u0010\u0000\u001a\u0018\b\u0001\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u00030\u0002\u0012\u0006\u0012\u0004\u0018\u00010\u00040\u0001ø\u0001\u0000¢\u0006\n\n\u0002\u0010\u0007\u001a\u0004\b\u0005\u0010\u0006\u0082\u0002\u0004\n\u0002\b\u0019"}, d2 = {"sl1", "Lkotlin/Function1;", "Lkotlin/coroutines/Continuation;", "", "", "getSl1", "()Lkotlin/jvm/functions/Function1;", "Lkotlin/jvm/functions/Function1;"} ) @@ -27,29 +29,37 @@ public final class TestSuspendLambdaKt { } static { + @DebugMetadata( + f = "TestSuspendLambda.kt", + l = {3}, + i = {}, + s = {}, + n = {}, + m = "invokeSuspend", + c = "pkg/TestSuspendLambdaKt$sl1$1" + ) @Metadata( - mv = {1, 1, 11}, - bv = {1, 0, 2}, + mv = {1, 1, 13}, + bv = {1, 0, 3}, k = 3, - xi = 2, d1 = {"\u0000\n\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\u0010\u0000\u001a\u00020\u0001H\u008a@ø\u0001\u0000¢\u0006\u0004\b\u0002\u0010\u0003"}, - d2 = {"", "", "invoke", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;"} + d2 = {"", "", "invoke", "(Ljava/lang/Object;)Ljava/lang/Object;"} ) final class NamelessClass_1 extends SuspendLambda implements Function1, Object> { int label; @Nullable - public final Object invokeSuspend(@NotNull Object var1) { + public final Object invokeSuspend(@NotNull Object result) { Object var3 = IntrinsicsKt.getCOROUTINE_SUSPENDED(); switch(this.label) { case 0: - if (var1 instanceof Failure) { - throw ((Failure)var1).exception; + if (result instanceof Failure) { + throw ((Failure)result).exception; } - String var2 = "SL1";// 3 + String var2 = "SL1";// 4 System.out.println(var2); - return Unit.INSTANCE;// 4 + return Unit.INSTANCE;// 5 default: throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine"); } @@ -60,80 +70,80 @@ public final class TestSuspendLambdaKt { } @NotNull - public final Continuation create(@NotNull Continuation continuation) { - Intrinsics.checkParameterIsNotNull(continuation, "continuation"); - NamelessClass_1 var2 = new NamelessClass_1(continuation); + public final Continuation create(@NotNull Continuation completion) { + Intrinsics.checkParameterIsNotNull(completion, "completion"); + NamelessClass_1 var2 = new NamelessClass_1(completion); return var2; } - @Nullable - public final Object invoke(@NotNull Continuation continuation) { - return ((NamelessClass_1)this.create(continuation)).invokeSuspend(Unit.INSTANCE); + public final Object invoke(Object var1) { + return ((NamelessClass_1)this.create((Continuation)var1)).invokeSuspend(Unit.INSTANCE); } } - sl1 = (Function1)(new NamelessClass_1((Continuation)null));// 2 + sl1 = (Function1)(new NamelessClass_1((Continuation)null));// 3 } } -class 'TestSuspendLambdaKt' { +class 'pkg/TestSuspendLambdaKt' { method 'getSl1 ()Lkotlin/jvm/functions/Function1;' { - 0 25 - 3 25 + 0 27 + 3 27 } method ' ()V' { - 4 74 - 8 74 - b 74 - e 75 + 4 83 + 8 83 + b 83 + e 84 } } -class 'TestSuspendLambdaKt$sl1$1' { +class 'pkg/TestSuspendLambdaKt$sl1$1' { method 'invokeSuspend (Ljava/lang/Object;)Ljava/lang/Object;' { - 0 42 - 3 42 - 5 43 - 8 43 - 1e 45 - 21 45 - 24 46 - 27 46 - 2a 46 - 2c 49 - 2e 49 - 2f 50 - 33 50 - 36 51 - 39 51 - 3e 53 - 43 53 + 0 52 + 3 52 + 5 53 + 8 53 + 1e 55 + 21 55 + 24 56 + 27 56 + 2a 56 + 2c 59 + 2e 59 + 2f 60 + 33 60 + 36 61 + 39 61 + 3e 63 + 43 63 } method ' (Lkotlin/coroutines/Continuation;)V' { - 1 58 - 3 58 - 6 59 + 1 68 + 3 68 + 6 69 } method 'create (Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation;' { - 1 63 - 3 63 - e 64 - 10 65 + 1 73 + 3 73 + e 74 + 10 75 } - method 'invoke (Lkotlin/coroutines/Continuation;)Ljava/lang/Object;' { - 2 70 - 5 70 - 8 70 - b 70 - e 70 + method 'invoke (Ljava/lang/Object;)Ljava/lang/Object;' { + 2 79 + 5 79 + 8 79 + b 79 + e 79 + 11 79 } } Lines mapping: -2 <-> 75 -3 <-> 50 -4 <-> 52 +3 <-> 84 +4 <-> 60 +5 <-> 62 diff --git a/testData/src/pkg/TestSuspendLambda.kt b/testData/src/pkg/TestSuspendLambda.kt index 6feef9d..8b80110 100644 --- a/testData/src/pkg/TestSuspendLambda.kt +++ b/testData/src/pkg/TestSuspendLambda.kt @@ -1,3 +1,4 @@ +package pkg val sl1: suspend () -> Unit = { println("SL1")