JVM IR: Don't produce annotations on builtin stub, toArray, and bridge methods

This commit is contained in:
Steven Schäfer
2020-07-08 16:41:34 +02:00
committed by Alexander Udalov
parent f661b7604b
commit c16b548dff
3 changed files with 8 additions and 2 deletions
@@ -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")
}
@@ -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) {
@@ -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