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
29 lines
1.4 KiB
Plaintext
Vendored
29 lines
1.4 KiB
Plaintext
Vendored
@kotlin.Metadata
|
|
final class<<T:Ljava/lang/Object;>Ljava/lang/Object;LSam;> TKt$genericSam$1 {
|
|
// source: 't.kt'
|
|
public final <()TT;> method get(): java.lang.Object
|
|
<null> method <init>(p0: kotlin.jvm.functions.Function0): void
|
|
enclosing method TKt.genericSam(Lkotlin/jvm/functions/Function0;)LSam;
|
|
synthetic final field <null> $f: kotlin.jvm.functions.Function0
|
|
inner (anonymous) class TKt$genericSam$1
|
|
}
|
|
|
|
@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 @org.jetbrains.annotations.NotNull <<T:Ljava/lang/Object;>(Lkotlin/jvm/functions/Function0<+TT;>;)LSam<TT;>;> method genericSam(@org.jetbrains.annotations.NotNull p0: kotlin.jvm.functions.Function0): Sam
|
|
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$genericSam$1
|
|
inner (anonymous) class TKt$genericSamGet$1
|
|
}
|