47 lines
2.8 KiB
Java
47 lines
2.8 KiB
Java
package kotlin.reflect.jvm;
|
|
|
|
import kotlin.Function;
|
|
import kotlin.Metadata;
|
|
import kotlin.Pair;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.jvm.internal.SourceDebugExtension;
|
|
import kotlin.reflect.KFunction;
|
|
import kotlin.reflect.jvm.internal.EmptyContainerForLocal;
|
|
import kotlin.reflect.jvm.internal.KFunctionImpl;
|
|
import kotlin.reflect.jvm.internal.UtilKt;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.SimpleFunctionDescriptor;
|
|
import kotlin.reflect.jvm.internal.impl.metadata.ProtoBuf;
|
|
import kotlin.reflect.jvm.internal.impl.metadata.deserialization.TypeTable;
|
|
import kotlin.reflect.jvm.internal.impl.metadata.jvm.deserialization.JvmMetadataVersion;
|
|
import kotlin.reflect.jvm.internal.impl.metadata.jvm.deserialization.JvmNameResolver;
|
|
import kotlin.reflect.jvm.internal.impl.metadata.jvm.deserialization.JvmProtoBufUtil;
|
|
|
|
@Metadata(d1 = {"\u0000\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u001a \u0010\u0000\u001a\n\u0012\u0004\u0012\u0002H\u0002\u0018\u00010\u0001\"\u0004\b\u0000\u0010\u0002*\b\u0012\u0004\u0012\u0002H\u00020\u0003H\u0007¨\u0006\u0004"}, d2 = {"reflect", "Lkotlin/reflect/KFunction;", "R", "Lkotlin/Function;", "kotlin-reflection"}, k = 2, mv = {1, 9, 0}, xi = 48)
|
|
@SourceDebugExtension({"SMAP\nreflectLambda.kt\nKotlin\n*S Kotlin\n*F\n+ 1 reflectLambda.kt\nkotlin/reflect/jvm/ReflectLambdaKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,79:1\n1#2:80\n*E\n"})
|
|
/* loaded from: classes3.dex */
|
|
public final class ReflectLambdaKt {
|
|
@ExperimentalReflectionOnLambdas
|
|
public static final <R> KFunction<R> reflect(Function<? extends R> function) {
|
|
Intrinsics.checkNotNullParameter(function, "<this>");
|
|
Metadata metadata = (Metadata) function.getClass().getAnnotation(Metadata.class);
|
|
if (metadata == null) {
|
|
return null;
|
|
}
|
|
String[] d12 = metadata.d1();
|
|
if (d12.length == 0) {
|
|
d12 = null;
|
|
}
|
|
if (d12 == null) {
|
|
return null;
|
|
}
|
|
Pair<JvmNameResolver, ProtoBuf.Function> readFunctionDataFrom = JvmProtoBufUtil.readFunctionDataFrom(d12, metadata.d2());
|
|
JvmNameResolver component1 = readFunctionDataFrom.component1();
|
|
ProtoBuf.Function component2 = readFunctionDataFrom.component2();
|
|
JvmMetadataVersion jvmMetadataVersion = new JvmMetadataVersion(metadata.mv(), (metadata.xi() & 8) != 0);
|
|
Class<?> cls = function.getClass();
|
|
ProtoBuf.TypeTable typeTable = component2.getTypeTable();
|
|
Intrinsics.checkNotNullExpressionValue(typeTable, "getTypeTable(...)");
|
|
return new KFunctionImpl(EmptyContainerForLocal.INSTANCE, (SimpleFunctionDescriptor) UtilKt.deserializeToDescriptor(cls, component2, component1, new TypeTable(typeTable), jvmMetadataVersion, ReflectLambdaKt$reflect$descriptor$1.INSTANCE));
|
|
}
|
|
}
|