b2005302dc
Also, do not try to use invokedynamic on SAM calls with intersection
types, because intersection type is not allowed as an immediate type
projection of a supertype, and constructing a fake override in
LambdaMetafactoryArgumentsBuilder led to an exception. This fixes the
problem which was worked around earlier in e6c089ef, effectively
reverting that commit.
The main motivation for this change is that LambdaMetafactory also
doesn't generate generic signature for SAM wrapper classes at runtime.
Since these classes are synthetic, nobody should rely on the fact that
they have generic supertypes, which was observable only via Java
reflection.
#KT-46149 Fixed
#KT-46238 Fixed
24 lines
1.1 KiB
Plaintext
Vendored
24 lines
1.1 KiB
Plaintext
Vendored
@kotlin.Metadata
|
|
public interface<<T:Ljava/lang/Object;>Ljava/lang/Object;> Sam {
|
|
// source: 't.kt'
|
|
public abstract <()TT;> method get(): java.lang.Object
|
|
}
|
|
|
|
@kotlin.Metadata
|
|
final class<<T:Ljava/lang/Object;>Ljava/lang/Object;LSam;> TKt$genericSamGet$1 {
|
|
// source: 't.kt'
|
|
public final <()TT;> method get(): java.lang.Object
|
|
<null> method <init>(p0: kotlin.jvm.functions.Function0): void
|
|
enclosing method TKt.genericSamGet(Lkotlin/jvm/functions/Function0;)Ljava/lang/Object;
|
|
synthetic final field <null> $f: kotlin.jvm.functions.Function0
|
|
inner (anonymous) class TKt$genericSamGet$1
|
|
}
|
|
|
|
@kotlin.Metadata
|
|
public final class<null> TKt {
|
|
// source: 't.kt'
|
|
public final static <<T:Ljava/lang/Object;>(LSam<TT;>;)TT;> method expectsSam(@org.jetbrains.annotations.NotNull p0: Sam): java.lang.Object
|
|
public final static <<T:Ljava/lang/Object;>(Lkotlin/jvm/functions/Function0<+TT;>;)TT;> method genericSamGet(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): java.lang.Object
|
|
inner (anonymous) class TKt$genericSamGet$1
|
|
}
|