From 789a6f9c63d7de3c0ba21751941d00a18d3323ab Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 18 Apr 2018 15:54:25 +0200 Subject: [PATCH] Add test for deterministic bridge order The test didn't fail before fixin the issue (in the previous commit), but may still be useful in the future #KT-23707 Fixed --- .../kotlin/codegen/MethodOrderTest.kt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) 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)