From 18dcbb3c94694c7fa3e203900a98198b877b8719 Mon Sep 17 00:00:00 2001 From: pyos Date: Mon, 3 Feb 2020 11:10:55 +0100 Subject: [PATCH] JVM_IR: copy annotations to nullary bridges for default constructors --- .../kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt | 2 ++ .../compileJavaAgainstKotlin/method/throws/DefaultArgs.kt | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt index 28ffe338470..78963f68ab4 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.builders.irBlockBody import org.jetbrains.kotlin.ir.builders.irDelegatingConstructorCall import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.util.constructors +import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols import org.jetbrains.kotlin.ir.util.hasDefaultValue internal val jvmDefaultConstructorPhase = makeIrFilePhase( @@ -52,6 +53,7 @@ private class JvmDefaultConstructorLowering(val context: JvmBackendContext) : Cl visibility = primaryConstructor.visibility }.apply { val irBuilder = context.createIrBuilder(this.symbol, startOffset, endOffset) + primaryConstructor.annotations.mapTo(annotations) { it.deepCopyWithSymbols(this) } body = irBuilder.irBlockBody { +irDelegatingConstructorCall(primaryConstructor).apply { passTypeArgumentsFrom(irClass) diff --git a/compiler/testData/compileJavaAgainstKotlin/method/throws/DefaultArgs.kt b/compiler/testData/compileJavaAgainstKotlin/method/throws/DefaultArgs.kt index 14307c502fd..eb3b0e83f53 100644 --- a/compiler/testData/compileJavaAgainstKotlin/method/throws/DefaultArgs.kt +++ b/compiler/testData/compileJavaAgainstKotlin/method/throws/DefaultArgs.kt @@ -1,4 +1,3 @@ -// IGNORE_BACKEND: JVM_IR package test class E1: Exception()