JVM_IR: copy annotations to nullary bridges for default constructors
This commit is contained in:
+2
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.ir.builders.irBlockBody
|
|||||||
import org.jetbrains.kotlin.ir.builders.irDelegatingConstructorCall
|
import org.jetbrains.kotlin.ir.builders.irDelegatingConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrClass
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
import org.jetbrains.kotlin.ir.util.constructors
|
import org.jetbrains.kotlin.ir.util.constructors
|
||||||
|
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
|
||||||
import org.jetbrains.kotlin.ir.util.hasDefaultValue
|
import org.jetbrains.kotlin.ir.util.hasDefaultValue
|
||||||
|
|
||||||
internal val jvmDefaultConstructorPhase = makeIrFilePhase(
|
internal val jvmDefaultConstructorPhase = makeIrFilePhase(
|
||||||
@@ -52,6 +53,7 @@ private class JvmDefaultConstructorLowering(val context: JvmBackendContext) : Cl
|
|||||||
visibility = primaryConstructor.visibility
|
visibility = primaryConstructor.visibility
|
||||||
}.apply {
|
}.apply {
|
||||||
val irBuilder = context.createIrBuilder(this.symbol, startOffset, endOffset)
|
val irBuilder = context.createIrBuilder(this.symbol, startOffset, endOffset)
|
||||||
|
primaryConstructor.annotations.mapTo(annotations) { it.deepCopyWithSymbols(this) }
|
||||||
body = irBuilder.irBlockBody {
|
body = irBuilder.irBlockBody {
|
||||||
+irDelegatingConstructorCall(primaryConstructor).apply {
|
+irDelegatingConstructorCall(primaryConstructor).apply {
|
||||||
passTypeArgumentsFrom(irClass)
|
passTypeArgumentsFrom(irClass)
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
package test
|
package test
|
||||||
|
|
||||||
class E1: Exception()
|
class E1: Exception()
|
||||||
|
|||||||
Reference in New Issue
Block a user