diff --git a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 4d05b6d2b57..120c65796db 100644 --- a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -27581,6 +27581,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/regressions/kt3903.kt"); } + @TestMetadata("kt39088.kt") + public void testKt39088() throws Exception { + runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); + } + @TestMetadata("kt4142.kt") public void testKt4142() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4142.kt"); diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt index 368f842b1ba..119dfd7d80a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/IrUtils.kt @@ -234,8 +234,6 @@ val IrBody.statements: List val IrClass.defaultType: IrSimpleType get() = this.thisReceiver!!.type as IrSimpleType -val IrSimpleFunction.isSynthesized: Boolean get() = descriptor.kind == CallableMemberDescriptor.Kind.SYNTHESIZED - fun IrClass.isSubclassOf(ancestor: IrClass): Boolean { val alreadyVisited = mutableSetOf() @@ -252,19 +250,9 @@ fun IrClass.isSubclassOf(ancestor: IrClass): Boolean { return this.hasAncestorInSuperTypes() } -fun IrSimpleFunction.isOrOverridesSynthesized(): Boolean { - if (isSynthesized) return true - - if (isFakeOverride) return overriddenSymbols.all { it.owner.isOrOverridesSynthesized() } - - return false -} - fun IrSimpleFunction.findInterfaceImplementation(): IrSimpleFunction? { if (isReal) return null - if (isOrOverridesSynthesized()) return null - return resolveFakeOverride()?.run { if (parentAsClass.isInterface) this else null } } diff --git a/compiler/testData/codegen/box/regressions/kt39088.kt b/compiler/testData/codegen/box/regressions/kt39088.kt new file mode 100644 index 00000000000..bc4b3cf3163 --- /dev/null +++ b/compiler/testData/codegen/box/regressions/kt39088.kt @@ -0,0 +1,35 @@ +// MODULE: lib +// FILE: lib.kt + +package lib + +interface Stoppable { + fun isStopped(): Boolean +} + +interface EventRo : Stoppable + +interface Event : Stoppable { + override fun isStopped(): Boolean { + return true + } +} + +abstract class EventBase : Event + +interface MouseEventRo : EventRo + +open class MouseEvent : EventBase(), MouseEventRo + +// MODULE: main(lib) +// FILE: main.kt + +package main + +fun box(): String { + if (lib.MouseEvent().isStopped()) { + return "OK" + } + + return "Fail" +} \ No newline at end of file diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 977c20b6542..a49c9d2efd9 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -29167,6 +29167,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/regressions/kt3903.kt"); } + @TestMetadata("kt39088.kt") + public void testKt39088() throws Exception { + runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); + } + @TestMetadata("kt4142.kt") public void testKt4142() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4142.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 3d786a7d4fb..71d66886206 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -26801,6 +26801,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/regressions/kt3903.kt"); } + @TestMetadata("kt39088.kt") + public void testKt39088() throws Exception { + runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); + } + @TestMetadata("kt4142.kt") public void testKt4142() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4142.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index e60b535217b..3a1f7d58377 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -27581,6 +27581,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/regressions/kt3903.kt"); } + @TestMetadata("kt39088.kt") + public void testKt39088() throws Exception { + runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); + } + @TestMetadata("kt4142.kt") public void testKt4142() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4142.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 969f2e1db44..05123a80e64 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -22642,6 +22642,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/regressions/kt3903.kt"); } + @TestMetadata("kt39088.kt") + public void testKt39088() throws Exception { + runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); + } + @TestMetadata("kt4142.kt") public void testKt4142() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4142.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 377e1001d25..f01d537d549 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 @@ -22697,6 +22697,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/regressions/kt3903.kt"); } + @TestMetadata("kt39088.kt") + public void testKt39088() throws Exception { + runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); + } + @TestMetadata("kt4142.kt") public void testKt4142() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4142.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 fcc63b7e209..4462357ab25 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 @@ -22712,6 +22712,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/regressions/kt3903.kt"); } + @TestMetadata("kt39088.kt") + public void testKt39088() throws Exception { + runTest("compiler/testData/codegen/box/regressions/kt39088.kt"); + } + @TestMetadata("kt4142.kt") public void testKt4142() throws Exception { runTest("compiler/testData/codegen/box/regressions/kt4142.kt");