From 77836f1aa9de0951b04558913f84cbece9bbed14 Mon Sep 17 00:00:00 2001 From: Kristoffer Andersen Date: Thu, 19 Nov 2020 14:25:17 +0100 Subject: [PATCH] [Test] Port checkVariableTable suspend lambda tests Reveals discrepancy in LVT presence on lambda implementations on the old and new backend. The generated code in the constructors of Suspend Lambda objects is identical, but the IR backend generates an LVT with the constructor parameters. The user has to be very insistent to see this ("for step into" + disabling "Show only kotlin variables"), but it is an observable difference. --- .../nonStaticSimple.kt | 9 ---- .../nonStaticStateMachine.kt | 16 ------ .../staticSimple.kt | 6 --- .../staticSimpleReceiver.kt | 9 ---- .../staticStateMachine.kt | 13 ----- .../staticStateMachineReceiver.kt | 16 ------ .../suspend/completion/nonStaticSimple.kt | 18 +++++++ .../completion/nonStaticStateMachine.kt | 42 ++++++++++++++++ .../suspend/completion/staticSimple.kt | 8 +++ .../completion/staticSimpleReceiver.kt | 19 +++++++ .../suspend/completion/staticStateMachine.kt | 38 ++++++++++++++ .../completion/staticStateMachineReceiver.kt | 42 ++++++++++++++++ ...CheckLocalVariablesTableTestGenerated.java | 43 ---------------- .../IrLocalVariableTestGenerated.java | 50 +++++++++++++++++++ .../LocalVariableTestGenerated.java | 50 +++++++++++++++++++ ...CheckLocalVariablesTableTestGenerated.java | 43 ---------------- 16 files changed, 267 insertions(+), 155 deletions(-) delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt delete mode 100644 compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt create mode 100644 compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt deleted file mode 100644 index 2849c568667..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME - -class A { - suspend fun foo() {} -} - -// METHOD : A.foo(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=this TYPE=LA; INDEX=0 -// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=1 diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt deleted file mode 100644 index 3ac0b4e09c2..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt +++ /dev/null @@ -1,16 +0,0 @@ -// WITH_RUNTIME - -class A { - suspend fun foo() {} - suspend fun foo1(l: Long) { - foo() - foo() - val dead = l - } -} - -// METHOD : A.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=this TYPE=LA; INDEX=0 -// VARIABLE : NAME=l TYPE=J INDEX=1 -// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7 -// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6 \ No newline at end of file diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt deleted file mode 100644 index d22a38a73c9..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt +++ /dev/null @@ -1,6 +0,0 @@ -// WITH_RUNTIME - -suspend fun foo() {} - -// METHOD : StaticSimpleKt.foo(Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=0 diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt deleted file mode 100644 index 157328a2b72..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt +++ /dev/null @@ -1,9 +0,0 @@ -// WITH_RUNTIME - -class A - -suspend fun A.foo() {} - -// METHOD : StaticSimpleReceiverKt.foo(LA;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=$this$foo TYPE=LA; INDEX=0 -// VARIABLE : NAME=$completion TYPE=Lkotlin/coroutines/Continuation; INDEX=1 \ No newline at end of file diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt deleted file mode 100644 index 7c146204423..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt +++ /dev/null @@ -1,13 +0,0 @@ -// WITH_RUNTIME - -suspend fun foo() {} -suspend fun foo1(l: Long) { - foo() - foo() - val dead = l -} - -// METHOD : StaticStateMachineKt.foo1(JLkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=l TYPE=J INDEX=0 -// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=6 -// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=5 \ No newline at end of file diff --git a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt b/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt deleted file mode 100644 index 21bfd7101b6..00000000000 --- a/compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt +++ /dev/null @@ -1,16 +0,0 @@ -// WITH_RUNTIME - -class A - -suspend fun A.foo() {} -suspend fun A.foo1(l: Long) { - foo() - foo() - val dead = l -} - -// METHOD : StaticStateMachineReceiverKt.foo1(LA;JLkotlin/coroutines/Continuation;)Ljava/lang/Object; -// VARIABLE : NAME=$this$foo1 TYPE=LA; INDEX=0 -// VARIABLE : NAME=l TYPE=J INDEX=1 -// VARIABLE : NAME=$continuation TYPE=Lkotlin/coroutines/Continuation; INDEX=7 -// VARIABLE : NAME=$result TYPE=Ljava/lang/Object; INDEX=6 \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt b/compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt new file mode 100644 index 00000000000..6e62ee0f772 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt @@ -0,0 +1,18 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A { + suspend fun foo() {} +} + +suspend fun box() { + A().foo() +} + +// LOCAL VARIABLES +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:10 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt b/compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt new file mode 100644 index 00000000000..73ea5bdbd3c --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt @@ -0,0 +1,42 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A { + suspend fun foo() {} + suspend fun foo1(l: Long) { + foo() + foo() + val dead = l + } +} + +suspend fun box() { + A().foo1(42) +} + +// The lambda object constructor has a local variables table on the IR backend. + +// LOCAL VARIABLES +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:6 foo1: +// CoroutineUtil.kt:28 getContext: + +// LOCAL VARIABLES JVM +// test.kt:-1 : +// LOCAL VARIABLES JVM_IR +// test.kt:-1 : $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation + +// LOCAL VARIABLES +// test.kt:6 foo1: +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=A$foo1$1 +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:5 foo: $completion:kotlin.coroutines.Continuation=A$foo1$1 +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:10 foo1: $continuation:kotlin.coroutines.Continuation=A$foo1$1, $result:java.lang.Object=null +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:15 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt b/compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt new file mode 100644 index 00000000000..0418c042856 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt @@ -0,0 +1,8 @@ + +// WITH_COROUTINES +// FILE: test.kt +suspend fun box() {} + + +// LOCAL VARIABLES +// test.kt:4 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt b/compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt new file mode 100644 index 00000000000..07fd19a09be --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt @@ -0,0 +1,19 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A + +suspend fun A.foo() {} + +suspend fun box() { + A().foo() +} + + +// LOCAL VARIABLES +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:9 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:10 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt new file mode 100644 index 00000000000..3f126c8a530 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt @@ -0,0 +1,38 @@ + +// WITH_COROUTINES +// FILE: test.kt +suspend fun foo() {} +suspend fun foo1(l: Long) { + foo() + foo() + val dead = l +} + +suspend fun box() { + foo1(42) +} + +// The lambda object constructor has a local variables table on the IR backend. + +// LOCAL VARIABLES +// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:5 foo1: +// CoroutineUtil.kt:28 getContext: + +// LOCAL VARIABLES JVM +// test.kt:-1 : +// LOCAL VARIABLES JVM_IR +// test.kt:-1 : $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation + +// LOCAL VARIABLES +// test.kt:5 foo1: +// test.kt:6 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:4 foo: $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:6 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:4 foo: $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:7 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null +// test.kt:12 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:13 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt new file mode 100644 index 00000000000..78dcbc8ed67 --- /dev/null +++ b/compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt @@ -0,0 +1,42 @@ + +// WITH_COROUTINES +// FILE: test.kt +class A + +suspend fun A.foo() {} +suspend fun A.foo1(l: Long) { + foo() + foo() + val dead = l +} + +suspend fun box() { + A().foo1(42) +} + +// The lambda object constructor has a local variables table on the IR backend. + +// LOCAL VARIABLES +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:4 : +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:7 foo1: +// CoroutineUtil.kt:28 getContext: + +// LOCAL VARIABLES JVM +// test.kt:-1 : +// LOCAL VARIABLES JVM_IR +// test.kt:-1 : $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation + +// LOCAL VARIABLES +// test.kt:7 foo1: +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, $this$foo1:A=A, l:long=42:long +// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:8 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, $this$foo1:A=A, l:long=42:long +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, $this$foo1:A=A, l:long=42:long +// test.kt:6 foo: $this$foo:A=A, $completion:kotlin.coroutines.Continuation=TestKt$foo1$1 +// test.kt:9 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:10 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null, l:long=42:long +// test.kt:11 foo1: $continuation:kotlin.coroutines.Continuation=TestKt$foo1$1, $result:java.lang.Object=null +// test.kt:14 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation +// test.kt:15 box: $completion:kotlin.coroutines.Continuation=helpers.ResultContinuation \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java index bdfa98306c0..267f391e8fd 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/CheckLocalVariablesTableTestGenerated.java @@ -105,49 +105,6 @@ public class CheckLocalVariablesTableTestGenerated extends AbstractCheckLocalVar runTest("compiler/testData/checkLocalVariablesTable/underscoreNames.kt"); } - @TestMetadata("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class CompletionInSuspendFunction extends AbstractCheckLocalVariablesTableTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); - } - - public void testAllFilesPresentInCompletionInSuspendFunction() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); - } - - @TestMetadata("nonStaticSimple.kt") - public void testNonStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt"); - } - - @TestMetadata("nonStaticStateMachine.kt") - public void testNonStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt"); - } - - @TestMetadata("staticSimple.kt") - public void testStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt"); - } - - @TestMetadata("staticSimpleReceiver.kt") - public void testStaticSimpleReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt"); - } - - @TestMetadata("staticStateMachine.kt") - public void testStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt"); - } - - @TestMetadata("staticStateMachineReceiver.kt") - public void testStaticStateMachineReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt"); - } - } - @TestMetadata("compiler/testData/checkLocalVariablesTable/parametersInSuspendLambda") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java index cf169e4c627..4094a1216a5 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/IrLocalVariableTestGenerated.java @@ -178,5 +178,55 @@ public class IrLocalVariableTestGenerated extends AbstractIrLocalVariableTest { public void testUnderscoreNames() throws Exception { runTest("compiler/testData/debug/localVariables/suspend/underscoreNames.kt"); } + + @TestMetadata("compiler/testData/debug/localVariables/suspend/completion") + @TestDataPath("$PROJECT_ROOT") + @RunWith(BlockJUnit4ClassRunner.class) + public static class Completion extends AbstractIrLocalVariableTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); + } + + @Test + public void testAllFilesPresentInCompletion() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend/completion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @Test + @TestMetadata("nonStaticSimple.kt") + public void testNonStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt"); + } + + @Test + @TestMetadata("nonStaticStateMachine.kt") + public void testNonStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt"); + } + + @Test + @TestMetadata("staticSimple.kt") + public void testStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt"); + } + + @Test + @TestMetadata("staticSimpleReceiver.kt") + public void testStaticSimpleReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt"); + } + + @Test + @TestMetadata("staticStateMachine.kt") + public void testStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt"); + } + + @Test + @TestMetadata("staticStateMachineReceiver.kt") + public void testStaticStateMachineReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt"); + } + } } } diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java index 13ad6cec59b..f2d72bf62ae 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/debugInformation/LocalVariableTestGenerated.java @@ -178,5 +178,55 @@ public class LocalVariableTestGenerated extends AbstractLocalVariableTest { public void testUnderscoreNames() throws Exception { runTest("compiler/testData/debug/localVariables/suspend/underscoreNames.kt"); } + + @TestMetadata("compiler/testData/debug/localVariables/suspend/completion") + @TestDataPath("$PROJECT_ROOT") + @RunWith(BlockJUnit4ClassRunner.class) + public static class Completion extends AbstractLocalVariableTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM, testDataFilePath); + } + + @Test + public void testAllFilesPresentInCompletion() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/debug/localVariables/suspend/completion"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); + } + + @Test + @TestMetadata("nonStaticSimple.kt") + public void testNonStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticSimple.kt"); + } + + @Test + @TestMetadata("nonStaticStateMachine.kt") + public void testNonStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/nonStaticStateMachine.kt"); + } + + @Test + @TestMetadata("staticSimple.kt") + public void testStaticSimple() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimple.kt"); + } + + @Test + @TestMetadata("staticSimpleReceiver.kt") + public void testStaticSimpleReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticSimpleReceiver.kt"); + } + + @Test + @TestMetadata("staticStateMachine.kt") + public void testStaticStateMachine() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachine.kt"); + } + + @Test + @TestMetadata("staticStateMachineReceiver.kt") + public void testStaticStateMachineReceiver() throws Exception { + runTest("compiler/testData/debug/localVariables/suspend/completion/staticStateMachineReceiver.kt"); + } + } } } diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java index 12498023710..d26c883b88e 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrCheckLocalVariablesTableTestGenerated.java @@ -105,49 +105,6 @@ public class IrCheckLocalVariablesTableTestGenerated extends AbstractIrCheckLoca runTest("compiler/testData/checkLocalVariablesTable/underscoreNames.kt"); } - @TestMetadata("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction") - @TestDataPath("$PROJECT_ROOT") - @RunWith(JUnit3RunnerWithInners.class) - public static class CompletionInSuspendFunction extends AbstractIrCheckLocalVariablesTableTest { - private void runTest(String testDataFilePath) throws Exception { - KotlinTestUtils.runTest(this::doTest, TargetBackend.JVM_IR, testDataFilePath); - } - - public void testAllFilesPresentInCompletionInSuspendFunction() throws Exception { - KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); - } - - @TestMetadata("nonStaticSimple.kt") - public void testNonStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticSimple.kt"); - } - - @TestMetadata("nonStaticStateMachine.kt") - public void testNonStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/nonStaticStateMachine.kt"); - } - - @TestMetadata("staticSimple.kt") - public void testStaticSimple() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimple.kt"); - } - - @TestMetadata("staticSimpleReceiver.kt") - public void testStaticSimpleReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticSimpleReceiver.kt"); - } - - @TestMetadata("staticStateMachine.kt") - public void testStaticStateMachine() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachine.kt"); - } - - @TestMetadata("staticStateMachineReceiver.kt") - public void testStaticStateMachineReceiver() throws Exception { - runTest("compiler/testData/checkLocalVariablesTable/completionInSuspendFunction/staticStateMachineReceiver.kt"); - } - } - @TestMetadata("compiler/testData/checkLocalVariablesTable/parametersInSuspendLambda") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class)