JVM_IR KT-46160 don't use LambdaMetafactory for mutifile class members
This commit is contained in:
committed by
TeamCityServer
parent
1dfc3c0520
commit
46d5e974df
+8
@@ -78,6 +78,14 @@ internal class LambdaMetafactoryArgumentsBuilder(
|
||||
return null
|
||||
}
|
||||
|
||||
val implFunParent = implFun.parent
|
||||
if (implFunParent is IrClass && implFunParent.origin == IrDeclarationOrigin.JVM_MULTIFILE_CLASS) {
|
||||
// LambdaMetafactory treats multifile class part members as non-accessible,
|
||||
// even if the member is referenced via facade,
|
||||
// because corresponding part class is non-accessible
|
||||
return null
|
||||
}
|
||||
|
||||
// Can't use JDK LambdaMetafactory for annotated lambdas.
|
||||
// JDK LambdaMetafactory doesn't copy annotations from implementation method to an instance method in a
|
||||
// corresponding synthetic class, which doesn't look like a binary compatible change.
|
||||
|
||||
Reference in New Issue
Block a user