From c16b548dff2b659eee6e0f48128e2a4d5ddac60f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Wed, 8 Jul 2020 16:41:34 +0200 Subject: [PATCH] JVM IR: Don't produce annotations on builtin stub, toArray, and bridge methods --- .../org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt | 1 + .../kotlin/backend/jvm/codegen/FunctionCodegen.kt | 7 ++++++- .../jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt index d86a580829f..e28379c5033 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/DeclarationOrigins.kt @@ -51,4 +51,5 @@ interface JvmLoweredDeclarationOrigin : IrDeclarationOrigin { object CONTINUATION_CLASS_RESULT_FIELD: IrDeclarationOriginImpl("CONTINUATION_CLASS_RESULT_FIELD", isSynthetic = true) object COMPANION_PROPERTY_BACKING_FIELD : IrDeclarationOriginImpl("COMPANION_MOVED_PROPERTY_BACKING_FIELD") object FIELD_FOR_STATIC_LAMBDA_INSTANCE : IrDeclarationOriginImpl("FIELD_FOR_STATIC_LAMBDA_INSTANCE") + object ABSTRACT_BRIDGE_STUB : IrDeclarationOriginImpl("ABSTRACT_BRIDGE_STUB") } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt index 703f3c17c5a..f18dffc19e1 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt @@ -72,7 +72,12 @@ class FunctionCodegen( if (irFunction.origin != IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER && irFunction.origin != JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR && irFunction.origin != IrDeclarationOrigin.ENUM_CLASS_SPECIAL_MEMBER && - irFunction.origin != IrDeclarationOrigin.GENERATED_INLINE_CLASS_MEMBER + irFunction.origin != IrDeclarationOrigin.GENERATED_INLINE_CLASS_MEMBER && + irFunction.origin != IrDeclarationOrigin.BRIDGE && + irFunction.origin != IrDeclarationOrigin.BRIDGE_SPECIAL && + irFunction.origin != JvmLoweredDeclarationOrigin.ABSTRACT_BRIDGE_STUB && + irFunction.origin != JvmLoweredDeclarationOrigin.TO_ARRAY && + irFunction.origin != IrDeclarationOrigin.IR_BUILTINS_STUB ) { val skipNullabilityAnnotations = flags and Opcodes.ACC_PRIVATE != 0 || flags and Opcodes.ACC_SYNTHETIC != 0 object : AnnotationCodegen(classCodegen, context, skipNullabilityAnnotations) { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt index f23b1da3bb1..03e089eae71 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/BridgeLowering.kt @@ -338,7 +338,7 @@ private class BridgeLowering(val context: JvmBackendContext) : FileLoweringPass, addFunction { updateFrom(irFunction) modality = Modality.ABSTRACT - origin = IrDeclarationOrigin.DEFINED + origin = JvmLoweredDeclarationOrigin.ABSTRACT_BRIDGE_STUB name = irFunction.name returnType = irFunction.returnType isFakeOverride = false