diff --git a/compiler/testData/codegen/box/inlineClasses/anySuperCall.kt b/compiler/testData/codegen/box/inlineClasses/anySuperCall.kt new file mode 100644 index 00000000000..b1ff264894f --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/anySuperCall.kt @@ -0,0 +1,12 @@ +// !LANGUAGE: +InlineClasses +// IGNORE_BACKEND_FIR: JVM_IR +// IGNORE_BACKEND: JVM + +inline class A(val x: Int) { + fun f(): Int = super.hashCode() +} + +fun box(): String { + val a = A(1).f() + return "OK" +} diff --git a/compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt b/compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt new file mode 100644 index 00000000000..d91af96b5a9 --- /dev/null +++ b/compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt @@ -0,0 +1,14 @@ +// !LANGUAGE: +InlineClasses +// IGNORE_BACKEND_FIR: JVM_IR + +interface A { + fun f(x: String) = x +} + +inline class B(val y: String) : A { + override fun f(x: String) = super.f(x + y) +} + +fun box(): String { + return B("K").f("O") +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 120175c50fa..1d28ae42b63 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -12853,6 +12853,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/annotatedMemberExtensionProperty.kt"); } + @TestMetadata("anySuperCall.kt") + public void testAnySuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/anySuperCall.kt"); + } + @TestMetadata("boundCallableReferencePassedToInlineFunction.kt") public void testBoundCallableReferencePassedToInlineFunction() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/boundCallableReferencePassedToInlineFunction.kt"); @@ -14100,6 +14105,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/genericMethodWithInlineClassOverride.kt"); } + @TestMetadata("interfaceSuperCall.kt") + public void testInterfaceSuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt"); + } + @TestMetadata("overriddenDefaultInterfaceMethodCall.kt") public void testOverriddenDefaultInterfaceMethodCall() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/overriddenDefaultInterfaceMethodCall.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 6aa9fed1822..b6cd577779c 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -12868,6 +12868,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/annotatedMemberExtensionProperty.kt"); } + @TestMetadata("anySuperCall.kt") + public void testAnySuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/anySuperCall.kt"); + } + @TestMetadata("boundCallableReferencePassedToInlineFunction.kt") public void testBoundCallableReferencePassedToInlineFunction() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/boundCallableReferencePassedToInlineFunction.kt"); @@ -14100,6 +14105,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/genericMethodWithInlineClassOverride.kt"); } + @TestMetadata("interfaceSuperCall.kt") + public void testInterfaceSuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt"); + } + @TestMetadata("overriddenDefaultInterfaceMethodCall.kt") public void testOverriddenDefaultInterfaceMethodCall() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/overriddenDefaultInterfaceMethodCall.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index c1e516d0e5d..53644beb475 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -11723,6 +11723,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inlineClasses/annotatedMemberExtensionProperty.kt"); } + @TestMetadata("anySuperCall.kt") + public void testAnySuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/anySuperCall.kt"); + } + @TestMetadata("boundCallableReferencePassedToInlineFunction.kt") public void testBoundCallableReferencePassedToInlineFunction() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/boundCallableReferencePassedToInlineFunction.kt"); @@ -12970,6 +12975,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/genericMethodWithInlineClassOverride.kt"); } + @TestMetadata("interfaceSuperCall.kt") + public void testInterfaceSuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt"); + } + @TestMetadata("overriddenDefaultInterfaceMethodCall.kt") public void testOverriddenDefaultInterfaceMethodCall() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/overriddenDefaultInterfaceMethodCall.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 408d4318990..f21d3b51d49 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -11723,6 +11723,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/annotatedMemberExtensionProperty.kt"); } + @TestMetadata("anySuperCall.kt") + public void testAnySuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/anySuperCall.kt"); + } + @TestMetadata("boundCallableReferencePassedToInlineFunction.kt") public void testBoundCallableReferencePassedToInlineFunction() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/boundCallableReferencePassedToInlineFunction.kt"); @@ -12970,6 +12975,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/genericMethodWithInlineClassOverride.kt"); } + @TestMetadata("interfaceSuperCall.kt") + public void testInterfaceSuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt"); + } + @TestMetadata("overriddenDefaultInterfaceMethodCall.kt") public void testOverriddenDefaultInterfaceMethodCall() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/overriddenDefaultInterfaceMethodCall.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 14253c81e53..33cda51f6b3 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -10063,6 +10063,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/annotatedMemberExtensionProperty.kt"); } + @TestMetadata("anySuperCall.kt") + public void testAnySuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/anySuperCall.kt"); + } + @TestMetadata("boundCallableReferencePassedToInlineFunction.kt") public void testBoundCallableReferencePassedToInlineFunction() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/boundCallableReferencePassedToInlineFunction.kt"); @@ -11220,6 +11225,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/genericMethodWithInlineClassOverride.kt"); } + @TestMetadata("interfaceSuperCall.kt") + public void testInterfaceSuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt"); + } + @TestMetadata("overriddenDefaultInterfaceMethodCall.kt") public void testOverriddenDefaultInterfaceMethodCall() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/overriddenDefaultInterfaceMethodCall.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 0f8df5fbfb2..a3ea6ff516b 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -10128,6 +10128,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/annotatedMemberExtensionProperty.kt"); } + @TestMetadata("anySuperCall.kt") + public void testAnySuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/anySuperCall.kt"); + } + @TestMetadata("boundCallableReferencePassedToInlineFunction.kt") public void testBoundCallableReferencePassedToInlineFunction() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/boundCallableReferencePassedToInlineFunction.kt"); @@ -11285,6 +11290,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/genericMethodWithInlineClassOverride.kt"); } + @TestMetadata("interfaceSuperCall.kt") + public void testInterfaceSuperCall() throws Exception { + runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/interfaceSuperCall.kt"); + } + @TestMetadata("overriddenDefaultInterfaceMethodCall.kt") public void testOverriddenDefaultInterfaceMethodCall() throws Exception { runTest("compiler/testData/codegen/box/inlineClasses/interfaceMethodCalls/overriddenDefaultInterfaceMethodCall.kt");