JVM_IR KT-45779 don't generate intrinsic method refs via invokedynamic

This commit is contained in:
Dmitry Petrov
2021-04-29 13:17:49 +03:00
committed by TeamCityServer
parent f3a935adb9
commit 72804d2e8c
6 changed files with 41 additions and 0 deletions
@@ -72,6 +72,10 @@ internal class LambdaMetafactoryArgumentsBuilder(
val implFun = reference.symbol.owner
// Don't generate references to intrinsic functions as invokedynamic (no such method exists at run-time).
if (context.irIntrinsics.getIntrinsic(implFun.symbol) != null)
return null
if (implFun is IrConstructor && implFun.visibility.isPrivate) {
// Kotlin generates constructor accessors differently from Java.
// TODO more precise accessibility check (see SyntheticAccessorLowering::isAccessible)