JVM_IR KT-50856 fix generic signature for SAM proxy function

This commit is contained in:
Dmitry Petrov
2022-01-20 10:26:45 +03:00
committed by Space
parent cd578e9d13
commit 12d8b189a9
6 changed files with 62 additions and 11 deletions
@@ -1,4 +1,6 @@
// IGNORE_BACKEND: JVM
// WITH_SIGNATURES
// WITH_STDLIB
// FILE: indySamConversionViaProxyFun.kt.kt
inline fun ifn() {}
@@ -14,10 +16,15 @@ fun test() {
// Proxy function for arrayOf fun should be non-synthetic
use(Sam3(::intArrayOf))
// Proxy function for generic fun should have valid generic signature
use4<Map<String, String>>(::mutableMapOf)
}
fun use(x: Any) {}
fun <U> use4(x: Sam4<U>) {}
// FILE: Sam1.java
public interface Sam1 {
String get(String x, Object y);
@@ -31,4 +38,9 @@ public interface Sam2 {
// FILE: Sam3.java
public interface Sam3 {
int[] get(int[] s);
}
}
// FILE: Sam4.java
public interface Sam4<T> {
T get();
}
@@ -1,12 +1,14 @@
@kotlin.Metadata
public final class IndySamConversionViaProxyFun_ktKt {
public final class<null> IndySamConversionViaProxyFun_ktKt {
// source: 'indySamConversionViaProxyFun.kt.kt'
public final static method ifn(): void
private final static method test$ifn__proxy(): void
private varargs final static method test$intArrayOf__proxy(p0: int[]): int[]
private synthetic final static method test$plus__proxy(p0: java.lang.String, p1: java.lang.Object): java.lang.String
private synthetic final static method test$plus__proxy-0(p0: java.lang.String, p1: java.lang.Object): java.lang.String
private synthetic final static method test$plus__proxy-1(p0: java.lang.String, p1: java.lang.Object): java.lang.String
public final static method test(): void
public final static method use(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void
private final static <()Ljava/util/Map<Ljava/lang/Object;Ljava/lang/Object;>;> method test$mutableMapOf__proxy(): java.util.Map
public final static <<U:Ljava/lang/Object;>(LSam4<TU;>;)V> method use4(@org.jetbrains.annotations.NotNull p0: Sam4): void
public final static <null> method ifn(): void
private final static <null> method test$ifn__proxy(): void
private varargs final static <null> method test$intArrayOf__proxy(p0: int[]): int[]
private synthetic final static <null> method test$plus__proxy(p0: java.lang.String, p1: java.lang.Object): java.lang.String
private synthetic final static <null> method test$plus__proxy-0(p0: java.lang.String, p1: java.lang.Object): java.lang.String
private synthetic final static <null> method test$plus__proxy-1(p0: java.lang.String, p1: java.lang.Object): java.lang.String
public final static <null> method test(): void
public final static <null> method use(@org.jetbrains.annotations.NotNull p0: java.lang.Object): void
}