From 793e3552e78672f94c7934ac999c99736ad3492e Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Tue, 23 May 2023 17:14:20 +0200 Subject: [PATCH] [FIR] Add tests for K2-only suspend operators get/set/contains #KT-57169 --- ...LightTreeBlackBoxCodegenTestGenerated.java | 6 ++++ .../FirPsiBlackBoxCodegenTestGenerated.java | 6 ++++ .../operatorConventions/suspendOperators.kt | 34 +++++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 ++++ .../IrBlackBoxCodegenTestGenerated.java | 6 ++++ ...kBoxCodegenWithIrInlinerTestGenerated.java | 6 ++++ .../LightAnalysisModeTestGenerated.java | 5 +++ .../js/test/JsCodegenBoxTestGenerated.java | 6 ++++ .../fir/FirJsCodegenBoxTestGenerated.java | 6 ++++ .../test/ir/IrJsCodegenBoxTestGenerated.java | 6 ++++ .../ir/IrJsES6CodegenBoxTestGenerated.java | 6 ++++ .../FirNativeCodegenBoxTestGenerated.java | 6 ++++ .../FirNativeCodegenBoxTestNoPLGenerated.java | 6 ++++ .../NativeCodegenBoxTestGenerated.java | 6 ++++ .../NativeCodegenBoxTestNoPLGenerated.java | 6 ++++ .../test/IrCodegenBoxWasmTestGenerated.java | 5 +++ 16 files changed, 122 insertions(+) create mode 100644 compiler/testData/codegen/box/operatorConventions/suspendOperators.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index ad96f1a46eb..961ecf5a67e 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -34945,6 +34945,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 2384a6c8062..432cb54ae38 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -34945,6 +34945,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/compiler/testData/codegen/box/operatorConventions/suspendOperators.kt b/compiler/testData/codegen/box/operatorConventions/suspendOperators.kt new file mode 100644 index 00000000000..4814c7b8394 --- /dev/null +++ b/compiler/testData/codegen/box/operatorConventions/suspendOperators.kt @@ -0,0 +1,34 @@ +// WITH_STDLIB +// WITH_COROUTINES +// IGNORE_BACKEND_K1: ANY +// IGNORE_BACKEND: WASM + +import kotlin.coroutines.* +import kotlin.coroutines.intrinsics.* + +fun runBlocking(c: suspend () -> T): T { + var res: T? = null + c.startCoroutine(Continuation(EmptyCoroutineContext) { + res = it.getOrThrow() + }) + return res!! +} + +class A { + var value = "" + + suspend operator fun get(x: Int) = value + suspend operator fun set(x: Int, v: String) { + value = v + } + + operator suspend fun contains(y: String): Boolean = y == value +} + +fun box() = runBlocking { + val a = A() + if ("" !in a) return@runBlocking "FAIL" + a[1] = "OK" + + a[2] +} \ No newline at end of file diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index e11c242438c..3493ade85f7 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -33361,6 +33361,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 243e3f4c1cd..56450f9f8a6 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -34945,6 +34945,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index c72c5f9f2a7..1bc0d5a3102 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -34945,6 +34945,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index fd9f66185b3..ba7a76b245b 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -28479,6 +28479,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { runTest("compiler/testData/codegen/box/operatorConventions/untilOperator.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java index 2f1186b3316..473a13bdf0f 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsCodegenBoxTestGenerated.java @@ -24625,6 +24625,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index b59f4a90d8d..b4ec851562b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java @@ -24829,6 +24829,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index b202a3bdac7..1e8c39b61a9 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -24829,6 +24829,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index 3247f096964..d830f012f6d 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java @@ -24829,6 +24829,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java index 60d6bb16a08..e44605f2f25 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestGenerated.java @@ -27961,6 +27961,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java index 80bfad5cfb8..952b7b5a441 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/FirNativeCodegenBoxTestNoPLGenerated.java @@ -28595,6 +28595,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java index f5c405b0003..7799b64cad4 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestGenerated.java @@ -27645,6 +27645,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java index 94e3e5af7f8..a21421388eb 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/NativeCodegenBoxTestNoPLGenerated.java @@ -27962,6 +27962,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @Test + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @Test @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/IrCodegenBoxWasmTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/IrCodegenBoxWasmTestGenerated.java index b26894df5e5..22a2574883c 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/IrCodegenBoxWasmTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/IrCodegenBoxWasmTestGenerated.java @@ -22062,6 +22062,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest runTest("compiler/testData/codegen/box/operatorConventions/remOverModOperation.kt"); } + @TestMetadata("suspendOperators.kt") + public void testSuspendOperators() throws Exception { + runTest("compiler/testData/codegen/box/operatorConventions/suspendOperators.kt"); + } + @TestMetadata("untilOperator.kt") public void testUntilOperator() throws Exception { runTest("compiler/testData/codegen/box/operatorConventions/untilOperator.kt");