JVM IR: don't generate ACC_FINAL on DefaultImpls methods
To replicate behavior of old backend
This commit is contained in:
@@ -515,6 +515,7 @@ fun createStaticFunctionWithReceivers(
|
||||
oldFunction: IrFunction,
|
||||
dispatchReceiverType: IrType? = oldFunction.dispatchReceiverParameter?.type,
|
||||
origin: IrDeclarationOrigin = oldFunction.origin,
|
||||
modality: Modality = Modality.FINAL,
|
||||
copyBody: Boolean = true
|
||||
): IrSimpleFunction {
|
||||
val descriptor = WrappedSimpleFunctionDescriptor(Annotations.EMPTY, oldFunction.descriptor.source)
|
||||
@@ -524,7 +525,7 @@ fun createStaticFunctionWithReceivers(
|
||||
IrSimpleFunctionSymbolImpl(descriptor),
|
||||
name,
|
||||
oldFunction.visibility,
|
||||
Modality.FINAL,
|
||||
modality,
|
||||
oldFunction.returnType,
|
||||
isInline = oldFunction.isInline,
|
||||
isExternal = false, isTailrec = false, isSuspend = false
|
||||
|
||||
+3
-1
@@ -151,7 +151,9 @@ class JvmDeclarationFactory(
|
||||
interfaceFun.origin != IrDeclarationOrigin.FAKE_OVERRIDE -> interfaceFun.origin
|
||||
interfaceFun.resolveFakeOverride()!!.origin.isSynthetic -> JvmLoweredDeclarationOrigin.DEFAULT_IMPLS_BRIDGE_TO_SYNTHETIC
|
||||
else -> JvmLoweredDeclarationOrigin.DEFAULT_IMPLS_BRIDGE
|
||||
}
|
||||
},
|
||||
// Old backend doesn't generate ACC_FINAL on DefaultImpls methods.
|
||||
modality = Modality.OPEN
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user