From d43ed1cf751cb072fc98c23041fe00841f74cf14 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 8 Jul 2021 22:58:54 +0200 Subject: [PATCH] Minor, add test on typeOf with intersection type --- .../FirBlackBoxCodegenTestGenerated.java | 6 +++++ .../box/reflection/typeOf/intersectionType.kt | 23 +++++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 +++++ .../IrBlackBoxCodegenTestGenerated.java | 6 +++++ .../LightAnalysisModeTestGenerated.java | 5 ++++ .../IrJsCodegenBoxES6TestGenerated.java | 5 ++++ .../IrJsCodegenBoxTestGenerated.java | 5 ++++ .../semantics/JsCodegenBoxTestGenerated.java | 5 ++++ 8 files changed, 61 insertions(+) create mode 100644 compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index 2493d067c95..7c88773de47 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -37485,6 +37485,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/reflection/typeOf/inlineClasses.kt"); } + @Test + @TestMetadata("intersectionType.kt") + public void testIntersectionType() throws Exception { + runTest("compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt"); + } + @Test @TestMetadata("manyTypeArguments.kt") public void testManyTypeArguments() throws Exception { diff --git a/compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt b/compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt new file mode 100644 index 00000000000..e0fb230c0f8 --- /dev/null +++ b/compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt @@ -0,0 +1,23 @@ +// !USE_EXPERIMENTAL: kotlin.ExperimentalStdlibApi +// IGNORE_BACKEND: JS +// WITH_REFLECT +// KJS_WITH_FULL_RUNTIME + +import kotlin.reflect.typeOf + +class Inv(val v: T) + +interface X +interface Y + +object A : X, Y +object B : X, Y + +fun sel(a: T, b: T) = a + +inline fun T.valueTypeOf() = typeOf() + +fun box(): String { + val t = sel(Inv(A), Inv(B)).v.valueTypeOf() + return if (t == typeOf()) "OK" else "Fail: $t" +} 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 1368d28c7f5..658fd2d3b71 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 @@ -37443,6 +37443,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/reflection/typeOf/inlineClasses.kt"); } + @Test + @TestMetadata("intersectionType.kt") + public void testIntersectionType() throws Exception { + runTest("compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt"); + } + @Test @TestMetadata("manyTypeArguments.kt") public void testManyTypeArguments() 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 5a161aed253..9d28550f36d 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 @@ -37485,6 +37485,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/reflection/typeOf/inlineClasses.kt"); } + @Test + @TestMetadata("intersectionType.kt") + public void testIntersectionType() throws Exception { + runTest("compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt"); + } + @Test @TestMetadata("manyTypeArguments.kt") public void testManyTypeArguments() 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 dc6d3eae9dc..39e0d25176f 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -29810,6 +29810,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/reflection/typeOf/inlineClasses.kt"); } + @TestMetadata("intersectionType.kt") + public void testIntersectionType() throws Exception { + runTest("compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt"); + } + @TestMetadata("manyTypeArguments.kt") public void testManyTypeArguments() throws Exception { runTest("compiler/testData/codegen/box/reflection/typeOf/manyTypeArguments.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index a294496a4aa..598e08071c3 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -25490,6 +25490,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/reflection/typeOf/inlineClasses.kt"); } + @TestMetadata("intersectionType.kt") + public void testIntersectionType() throws Exception { + runTest("compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt"); + } + @TestMetadata("manyTypeArguments.kt") public void testManyTypeArguments() throws Exception { runTest("compiler/testData/codegen/box/reflection/typeOf/manyTypeArguments.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index bf8f7e698f6..298f39a74cb 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -24896,6 +24896,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/reflection/typeOf/inlineClasses.kt"); } + @TestMetadata("intersectionType.kt") + public void testIntersectionType() throws Exception { + runTest("compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt"); + } + @TestMetadata("manyTypeArguments.kt") public void testManyTypeArguments() throws Exception { runTest("compiler/testData/codegen/box/reflection/typeOf/manyTypeArguments.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 6412ac34780..c23f9c8f386 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -24856,6 +24856,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/reflection/typeOf/inlineClasses.kt"); } + @TestMetadata("intersectionType.kt") + public void testIntersectionType() throws Exception { + runTest("compiler/testData/codegen/box/reflection/typeOf/intersectionType.kt"); + } + @TestMetadata("manyTypeArguments.kt") public void testManyTypeArguments() throws Exception { runTest("compiler/testData/codegen/box/reflection/typeOf/manyTypeArguments.kt");