diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index de0b42c680a..9265d1e9baa 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -13178,6 +13178,18 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @Test + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @Test @TestMetadata("executionOrder.kt") public void testExecutionOrder() throws Exception { diff --git a/compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt b/compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt new file mode 100644 index 00000000000..a39f14547d8 --- /dev/null +++ b/compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt @@ -0,0 +1,22 @@ +// KT-42176 +interface Top{ + fun getData(): D + fun toString(data: D): String +} + +fun Top.getString() = toString(getData()) + +abstract class DefaultImpl: Top{ + override fun toString(data: Int): String = data.toString() +} + +class Bottom(val data: Int): DefaultImpl { + override fun getData(): Int = data +} + +fun box(): String { + val bottom = Bottom(10).getString() + if (bottom != "10") return "fail: $bottom" + + return "OK" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt b/compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt new file mode 100644 index 00000000000..b4e6e62859e --- /dev/null +++ b/compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt @@ -0,0 +1,22 @@ +// KT-42176 +interface Top{ + fun getData(): D + fun toString(data: D): String +} + +fun Top.getString() = toString(getData()) + +interface DefaultImpl: Top{ + override fun toString(data: Int): String = data.toString() +} + +class Bottom(val data: Int): DefaultImpl { + override fun getData(): Int = data +} + +fun box(): String { + val bottom = Bottom(10).getString() + if (bottom != "10") return "fail: $bottom" + + return "OK" +} \ 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 c3cde334b81..e2495707331 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 @@ -13178,6 +13178,18 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @Test + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @Test + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @Test @TestMetadata("executionOrder.kt") public void testExecutionOrder() 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 32ae79fcaa3..e95f851c205 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 @@ -13178,6 +13178,18 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @Test + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @Test @TestMetadata("executionOrder.kt") public void testExecutionOrder() 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 1a47a345c07..2cc1f93b185 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -11574,6 +11574,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @TestMetadata("executionOrder.kt") public void testExecutionOrder() throws Exception { runTest("compiler/testData/codegen/box/extensionFunctions/executionOrder.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 1e5498a872d..c89e44e6a11 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 @@ -9874,6 +9874,16 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); } + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @TestMetadata("executionOrder.kt") public void testExecutionOrder() throws Exception { runTest("compiler/testData/codegen/box/extensionFunctions/executionOrder.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 89da10b535e..ac238d412d0 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 @@ -9874,6 +9874,16 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @TestMetadata("executionOrder.kt") public void testExecutionOrder() throws Exception { runTest("compiler/testData/codegen/box/extensionFunctions/executionOrder.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 92459f39fae..253db10582e 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 @@ -9874,6 +9874,16 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS, true); } + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @TestMetadata("executionOrder.kt") public void testExecutionOrder() throws Exception { runTest("compiler/testData/codegen/box/extensionFunctions/executionOrder.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 db3a9539a99..39e49415d6b 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 @@ -4913,6 +4913,16 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/extensionFunctions"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } + @TestMetadata("classMethodCallExtensionSuper.kt") + public void testClassMethodCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/classMethodCallExtensionSuper.kt"); + } + + @TestMetadata("defaultMethodInterfaceCallExtensionSuper.kt") + public void testDefaultMethodInterfaceCallExtensionSuper() throws Exception { + runTest("compiler/testData/codegen/box/extensionFunctions/defaultMethodInterfaceCallExtensionSuper.kt"); + } + @TestMetadata("executionOrder.kt") public void testExecutionOrder() throws Exception { runTest("compiler/testData/codegen/box/extensionFunctions/executionOrder.kt");