JVM IR: sanitize indy lambda proxy names correctly
In case there are several proxy functions for indy lambdas in the same container, its names are "...__proxy", "...__proxy-0", "...__proxy-1", ..., yet before this change, only the first one was sanitized. So if it's happening inside a constructor, `<init>` was left unrenamed which led to ClassFormatError. #KT-52040 Fixed
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
// FULL_JDK
|
||||
// JVM_TARGET: 1.8
|
||||
// FILE: J.java
|
||||
|
||||
import java.util.function.*;
|
||||
|
||||
public class J {
|
||||
public static void f1(Supplier<Object> r) {}
|
||||
public static void f2(Supplier<Object> r) {}
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
class C private constructor() {
|
||||
companion object {
|
||||
fun x1() = J.f1(::C)
|
||||
fun x2() = J.f2(::C)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user