diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/MethodOrderTest.kt b/compiler/tests/org/jetbrains/kotlin/codegen/MethodOrderTest.kt index 881f6a40234..b8ebdfa14d3 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/MethodOrderTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/codegen/MethodOrderTest.kt @@ -132,6 +132,33 @@ class MethodOrderTest: CodegenTestCase() { ) } + fun testBridgeOrder() { + doTest( + """ + interface IrElement + class IrClassContext + + interface IrElementVisitor { + fun visitElement(element: IrElement, data: D): R + } + + interface IrElementTransformer : IrElementVisitor { + override fun visitElement(element: IrElement, data: D): IrElement = + element.also { throw RuntimeException() } + } + + abstract class ClassLowerWithContext : IrElementTransformer + """, + "ClassLowerWithContext", + listOf( + "()V", + "visitElement(LIrElement;LIrClassContext;)LIrElement;", + "visitElement(LIrElement;Ljava/lang/Object;)Ljava/lang/Object;", + "visitElement(LIrElement;Ljava/lang/Object;)LIrElement;" + ) + ) + } + private fun doTest(sourceText: String, classSuffix: String, expectedOrder: List) { createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY) myFiles = CodegenTestFiles.create("file.kt", sourceText, myEnvironment!!.project)