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 241b8312f5e..a8f95e18a42 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 @@ -23123,6 +23123,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @Test @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() throws Exception { diff --git a/compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt b/compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt new file mode 100644 index 00000000000..df2f560ffd4 --- /dev/null +++ b/compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt @@ -0,0 +1,59 @@ +// KJS_WITH_FULL_RUNTIME +// WITH_RUNTIME + +// extracted case from KT-48912 + +// MODULE: libxxxxx +// FILE: l1.kt + +package com.soywiz.korag.shader + +open class Operand + +open class Variable : Operand() + +class Program { + class Stm(val o: Operand) + + open class Visitor(val default: E) { + open fun visit(stm: Stm?) { + if (stm?.o is Operand) visit(stm.o) + } + open fun visit(o: Operand): E { + if (o is Uniform) visit(o) + return default + } + open fun visit(operand: Uniform): E = default + } +} + +open class Uniform(val result: String): Variable() + +open class Shader(val stm: Program.Stm?) { + + // Here for object.visit(Program.Stm?) FO were 2 different mangles + // 1.5.31: #static(kotlin.collections.LinkedHashSet){}visit(com.soywiz.korag.shader.Program.Stm?){} + // 1.6.0+: {}uniforms#static(kotlin.collections.LinkedHashSet){}visit(com.soywiz.korag.shader.Program.Stm?){} + // So fix is to make sure those mangles are identical. + + val uniforms = LinkedHashSet().also { out -> + object : Program.Visitor(Unit) { + override fun visit(uniform: Uniform) { + out.add(uniform) + } + }.visit(stm) + }.toSet() +} + +// MODULE: main(libxxxxx) +// FILE: l2.kt + +import com.soywiz.korag.shader.* + +class D : Shader(Program.Stm((Uniform("OK")))) + +fun foo(): Shader = D() + +fun box(): String { + return foo().uniforms.first().result +} \ 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 c2295a54c89..ac7aaefa460 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 @@ -22991,6 +22991,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @Test + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @Test @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() 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 32f83d6f880..9eca13452f1 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 @@ -23123,6 +23123,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @Test @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() 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 00dd430c3ee..1f52b7f22ca 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -19288,6 +19288,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() throws Exception { runTest("compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.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 acba8a68fdd..e76072953ef 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 @@ -16382,6 +16382,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); } + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() throws Exception { runTest("compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.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 7ec06fc4438..e46ca31f1c3 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 @@ -15788,6 +15788,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() throws Exception { runTest("compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.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 e4d476dcc39..a73f7e203c3 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 @@ -15818,6 +15818,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS, true); } + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() throws Exception { runTest("compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java index 0e966bca5eb..5fed1cb9a52 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/wasm/semantics/IrCodegenBoxWasmTestGenerated.java @@ -12567,6 +12567,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/ir/serializationRegressions"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } + @TestMetadata("anonFakeOverride.kt") + public void testAnonFakeOverride() throws Exception { + runTest("compiler/testData/codegen/box/ir/serializationRegressions/anonFakeOverride.kt"); + } + @TestMetadata("deepGenericDelegatedProperty.kt") public void testDeepGenericDelegatedProperty() throws Exception { runTest("compiler/testData/codegen/box/ir/serializationRegressions/deepGenericDelegatedProperty.kt");