543 lines
33 KiB
Java
543 lines
33 KiB
Java
package kotlin.reflect.jvm.internal;
|
|
|
|
import com.google.firebase.dynamiclinks.DynamicLink;
|
|
import java.lang.annotation.Annotation;
|
|
import java.lang.reflect.Array;
|
|
import java.lang.reflect.Method;
|
|
import java.lang.reflect.ParameterizedType;
|
|
import java.lang.reflect.Type;
|
|
import java.lang.reflect.WildcardType;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Collection;
|
|
import java.util.Comparator;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import kotlin.Lazy;
|
|
import kotlin.LazyKt;
|
|
import kotlin.LazyThreadSafetyMode;
|
|
import kotlin.Metadata;
|
|
import kotlin.collections.ArraysKt;
|
|
import kotlin.collections.CollectionsKt;
|
|
import kotlin.collections.CollectionsKt__IterablesKt;
|
|
import kotlin.comparisons.ComparisonsKt;
|
|
import kotlin.coroutines.Continuation;
|
|
import kotlin.jvm.JvmClassMappingKt;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.jvm.internal.SourceDebugExtension;
|
|
import kotlin.reflect.KCallable;
|
|
import kotlin.reflect.KClass;
|
|
import kotlin.reflect.KParameter;
|
|
import kotlin.reflect.KType;
|
|
import kotlin.reflect.KTypeParameter;
|
|
import kotlin.reflect.KVisibility;
|
|
import kotlin.reflect.full.IllegalCallableAccessException;
|
|
import kotlin.reflect.jvm.KTypesJvm;
|
|
import kotlin.reflect.jvm.ReflectJvmMapping;
|
|
import kotlin.reflect.jvm.internal.ReflectProperties;
|
|
import kotlin.reflect.jvm.internal.calls.Caller;
|
|
import kotlin.reflect.jvm.internal.calls.ValueClassAwareCallerKt;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.CallableMemberDescriptor;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.DescriptorVisibility;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.Modality;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.ParameterDescriptor;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.ReceiverParameterDescriptor;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.TypeParameterDescriptor;
|
|
import kotlin.reflect.jvm.internal.impl.descriptors.ValueParameterDescriptor;
|
|
import kotlin.reflect.jvm.internal.impl.load.java.descriptors.JavaCallableMemberDescriptor;
|
|
import kotlin.reflect.jvm.internal.impl.types.KotlinType;
|
|
import kotlin.reflect.jvm.internal.impl.types.TypeSubstitutionKt;
|
|
|
|
@Metadata(d1 = {"\u0000¦\u0001\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0011\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010 \n\u0002\u0010\u001b\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u000b\n\u0002\b\b\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0006\n\u0002\u0010$\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0005\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0002\b \u0018\u0000*\u0006\b\u0000\u0010\u0001 \u00012\b\u0012\u0004\u0012\u0002H\u00010\u00022\u00020\u0003B\u0005¢\u0006\u0002\u0010\u0004J%\u0010<\u001a\u00028\u00002\u0016\u0010=\u001a\f\u0012\b\b\u0001\u0012\u0004\u0018\u00010\b0\u0007\"\u0004\u0018\u00010\bH\u0016¢\u0006\u0002\u0010>J#\u0010?\u001a\u00028\u00002\u0014\u0010=\u001a\u0010\u0012\u0004\u0012\u00020\u000f\u0012\u0006\u0012\u0004\u0018\u00010\b0@H\u0002¢\u0006\u0002\u0010AJ#\u0010B\u001a\u00028\u00002\u0014\u0010=\u001a\u0010\u0012\u0004\u0012\u00020\u000f\u0012\u0006\u0012\u0004\u0018\u00010\b0@H\u0016¢\u0006\u0002\u0010AJ3\u0010C\u001a\u00028\u00002\u0014\u0010=\u001a\u0010\u0012\u0004\u0012\u00020\u000f\u0012\u0006\u0012\u0004\u0018\u00010\b0@2\f\u0010D\u001a\b\u0012\u0002\b\u0003\u0018\u00010EH\u0000¢\u0006\u0004\bF\u0010GJ\u0010\u0010H\u001a\u00020\b2\u0006\u0010I\u001a\u000202H\u0002J\n\u0010J\u001a\u0004\u0018\u00010KH\u0002J\u0015\u0010L\u001a\n\u0012\u0006\u0012\u0004\u0018\u00010\b0\u0007H\u0002¢\u0006\u0002\u0010MJ\u0010\u0010N\u001a\u00020O2\u0006\u0010P\u001a\u00020\u000fH\u0002R,\u0010\u0005\u001a \u0012\u001c\u0012\u001a\u0012\u0006\u0012\u0004\u0018\u00010\b \t*\f\u0012\u0006\u0012\u0004\u0018\u00010\b\u0018\u00010\u00070\u00070\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R(\u0010\n\u001a\u001c\u0012\u0018\u0012\u0016\u0012\u0004\u0012\u00020\f \t*\n\u0012\u0004\u0012\u00020\f\u0018\u00010\u000b0\u000b0\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R>\u0010\r\u001a2\u0012.\u0012,\u0012\u0004\u0012\u00020\u000f \t*\u0016\u0012\u0004\u0012\u00020\u000f\u0018\u00010\u000ej\n\u0012\u0004\u0012\u00020\u000f\u0018\u0001`\u00100\u000ej\b\u0012\u0004\u0012\u00020\u000f`\u00100\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R\u001c\u0010\u0011\u001a\u0010\u0012\f\u0012\n \t*\u0004\u0018\u00010\u00120\u00120\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R(\u0010\u0013\u001a\u001c\u0012\u0018\u0012\u0016\u0012\u0004\u0012\u00020\u0014 \t*\n\u0012\u0004\u0012\u00020\u0014\u0018\u00010\u000b0\u000b0\u0006X\u0082\u0004¢\u0006\u0002\n\u0000R\u001a\u0010\u0015\u001a\b\u0012\u0004\u0012\u00020\f0\u000b8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\u0016\u0010\u0017R\u0016\u0010\u0018\u001a\u0006\u0012\u0002\b\u00030\u0019X¦\u0004¢\u0006\u0006\u001a\u0004\b\u001a\u0010\u001bR\u0012\u0010\u001c\u001a\u00020\u001dX¦\u0004¢\u0006\u0006\u001a\u0004\b\u001e\u0010\u001fR\u0018\u0010 \u001a\b\u0012\u0002\b\u0003\u0018\u00010\u0019X¦\u0004¢\u0006\u0006\u001a\u0004\b!\u0010\u001bR\u0012\u0010\"\u001a\u00020#X¦\u0004¢\u0006\u0006\u001a\u0004\b$\u0010%R\u0014\u0010&\u001a\u00020'8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b&\u0010(R\u0014\u0010)\u001a\u00020'8DX\u0084\u0004¢\u0006\u0006\u001a\u0004\b)\u0010(R\u0012\u0010*\u001a\u00020'X¦\u0004¢\u0006\u0006\u001a\u0004\b*\u0010(R\u0014\u0010+\u001a\u00020'8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b+\u0010(R\u0014\u0010,\u001a\u00020'8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b,\u0010(R\u001a\u0010-\u001a\b\u0012\u0004\u0012\u00020\u000f0\u000b8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b.\u0010\u0017R\u0014\u0010/\u001a\b\u0012\u0004\u0012\u00020'00X\u0082\u0004¢\u0006\u0002\n\u0000R\u0014\u00101\u001a\u0002028VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b3\u00104R\u001a\u00105\u001a\b\u0012\u0004\u0012\u0002060\u000b8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b7\u0010\u0017R\u0016\u00108\u001a\u0004\u0018\u0001098VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b:\u0010;¨\u0006Q"}, d2 = {"Lkotlin/reflect/jvm/internal/KCallableImpl;", "R", "Lkotlin/reflect/KCallable;", "Lkotlin/reflect/jvm/internal/KTypeParameterOwnerImpl;", "()V", "_absentArguments", "Lkotlin/reflect/jvm/internal/ReflectProperties$LazySoftVal;", "", "", "kotlin.jvm.PlatformType", "_annotations", "", "", "_parameters", "Ljava/util/ArrayList;", "Lkotlin/reflect/KParameter;", "Lkotlin/collections/ArrayList;", "_returnType", "Lkotlin/reflect/jvm/internal/KTypeImpl;", "_typeParameters", "Lkotlin/reflect/jvm/internal/KTypeParameterImpl;", "annotations", "getAnnotations", "()Ljava/util/List;", "caller", "Lkotlin/reflect/jvm/internal/calls/Caller;", "getCaller", "()Lkotlin/reflect/jvm/internal/calls/Caller;", "container", "Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;", "getContainer", "()Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;", "defaultCaller", "getDefaultCaller", "descriptor", "Lkotlin/reflect/jvm/internal/impl/descriptors/CallableMemberDescriptor;", "getDescriptor", "()Lorg/jetbrains/kotlin/descriptors/CallableMemberDescriptor;", "isAbstract", "", "()Z", "isAnnotationConstructor", "isBound", "isFinal", "isOpen", DynamicLink.Builder.KEY_DYNAMIC_LINK_PARAMETERS, "getParameters", "parametersNeedMFVCFlattening", "Lkotlin/Lazy;", "returnType", "Lkotlin/reflect/KType;", "getReturnType", "()Lkotlin/reflect/KType;", "typeParameters", "Lkotlin/reflect/KTypeParameter;", "getTypeParameters", "visibility", "Lkotlin/reflect/KVisibility;", "getVisibility", "()Lkotlin/reflect/KVisibility;", "call", "args", "([Ljava/lang/Object;)Ljava/lang/Object;", "callAnnotationConstructor", "", "(Ljava/util/Map;)Ljava/lang/Object;", "callBy", "callDefaultMethod", "continuationArgument", "Lkotlin/coroutines/Continuation;", "callDefaultMethod$kotlin_reflection", "(Ljava/util/Map;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "defaultEmptyArray", "type", "extractContinuationArgument", "Ljava/lang/reflect/Type;", "getAbsentArguments", "()[Ljava/lang/Object;", "getParameterTypeSize", "", "parameter", "kotlin-reflection"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
|
@SourceDebugExtension({"SMAP\nKCallableImpl.kt\nKotlin\n*S Kotlin\n*F\n+ 1 KCallableImpl.kt\nkotlin/reflect/jvm/internal/KCallableImpl\n+ 2 util.kt\nkotlin/reflect/jvm/internal/UtilKt\n+ 3 ArrayIntrinsics.kt\nkotlin/ArrayIntrinsicsKt\n+ 4 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 5 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n+ 6 ArraysJVM.kt\nkotlin/collections/ArraysKt__ArraysJVMKt\n*L\n1#1,276:1\n227#2,5:277\n227#2,2:282\n229#2,3:285\n227#2,5:288\n227#2,5:293\n227#2,2:303\n229#2,3:307\n26#3:284\n1#4:298\n1549#5:299\n1620#5,3:300\n37#6,2:305\n*S KotlinDebug\n*F\n+ 1 KCallableImpl.kt\nkotlin/reflect/jvm/internal/KCallableImpl\n*L\n107#1:277,5\n158#1:282,2\n158#1:285,3\n206#1:288,5\n214#1:293,5\n248#1:303,2\n248#1:307,3\n159#1:284\n234#1:299\n234#1:300,3\n249#1:305,2\n*E\n"})
|
|
/* loaded from: classes3.dex */
|
|
public abstract class KCallableImpl<R> implements KCallable<R>, KTypeParameterOwnerImpl {
|
|
private final ReflectProperties.LazySoftVal<Object[]> _absentArguments;
|
|
private final ReflectProperties.LazySoftVal<List<Annotation>> _annotations;
|
|
private final ReflectProperties.LazySoftVal<ArrayList<KParameter>> _parameters;
|
|
private final ReflectProperties.LazySoftVal<KTypeImpl> _returnType;
|
|
private final ReflectProperties.LazySoftVal<List<KTypeParameterImpl>> _typeParameters;
|
|
private final Lazy<Boolean> parametersNeedMFVCFlattening;
|
|
|
|
public KCallableImpl() {
|
|
ReflectProperties.LazySoftVal<List<Annotation>> lazySoft = ReflectProperties.lazySoft(new Function0<List<? extends Annotation>>(this) { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_annotations$1
|
|
final /* synthetic */ KCallableImpl<R> this$0;
|
|
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
{
|
|
super(0);
|
|
this.this$0 = this;
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final List<? extends Annotation> invoke() {
|
|
return UtilKt.computeAnnotations(this.this$0.getDescriptor());
|
|
}
|
|
});
|
|
Intrinsics.checkNotNullExpressionValue(lazySoft, "lazySoft(...)");
|
|
this._annotations = lazySoft;
|
|
ReflectProperties.LazySoftVal<ArrayList<KParameter>> lazySoft2 = ReflectProperties.lazySoft(new Function0<ArrayList<KParameter>>(this) { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_parameters$1
|
|
final /* synthetic */ KCallableImpl<R> this$0;
|
|
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
{
|
|
super(0);
|
|
this.this$0 = this;
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final ArrayList<KParameter> invoke() {
|
|
int i;
|
|
final CallableMemberDescriptor descriptor = this.this$0.getDescriptor();
|
|
ArrayList<KParameter> arrayList = new ArrayList<>();
|
|
final int i4 = 0;
|
|
if (this.this$0.isBound()) {
|
|
i = 0;
|
|
} else {
|
|
final ReceiverParameterDescriptor instanceReceiverParameter = UtilKt.getInstanceReceiverParameter(descriptor);
|
|
if (instanceReceiverParameter != null) {
|
|
arrayList.add(new KParameterImpl(this.this$0, 0, KParameter.Kind.INSTANCE, new Function0<ParameterDescriptor>() { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_parameters$1.1
|
|
{
|
|
super(0);
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final ParameterDescriptor invoke() {
|
|
return ReceiverParameterDescriptor.this;
|
|
}
|
|
}));
|
|
i = 1;
|
|
} else {
|
|
i = 0;
|
|
}
|
|
final ReceiverParameterDescriptor extensionReceiverParameter = descriptor.getExtensionReceiverParameter();
|
|
if (extensionReceiverParameter != null) {
|
|
arrayList.add(new KParameterImpl(this.this$0, i, KParameter.Kind.EXTENSION_RECEIVER, new Function0<ParameterDescriptor>() { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_parameters$1.2
|
|
{
|
|
super(0);
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final ParameterDescriptor invoke() {
|
|
return ReceiverParameterDescriptor.this;
|
|
}
|
|
}));
|
|
i++;
|
|
}
|
|
}
|
|
int size = descriptor.getValueParameters().size();
|
|
while (i4 < size) {
|
|
arrayList.add(new KParameterImpl(this.this$0, i, KParameter.Kind.VALUE, new Function0<ParameterDescriptor>() { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_parameters$1.3
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
{
|
|
super(0);
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final ParameterDescriptor invoke() {
|
|
ValueParameterDescriptor valueParameterDescriptor = CallableMemberDescriptor.this.getValueParameters().get(i4);
|
|
Intrinsics.checkNotNullExpressionValue(valueParameterDescriptor, "get(...)");
|
|
return valueParameterDescriptor;
|
|
}
|
|
}));
|
|
i4++;
|
|
i++;
|
|
}
|
|
if (this.this$0.isAnnotationConstructor() && (descriptor instanceof JavaCallableMemberDescriptor) && arrayList.size() > 1) {
|
|
CollectionsKt.sortWith(arrayList, new Comparator() { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_parameters$1$invoke$$inlined$sortBy$1
|
|
@Override // java.util.Comparator
|
|
public final int compare(T t2, T t4) {
|
|
return ComparisonsKt.compareValues(((KParameter) t2).getName(), ((KParameter) t4).getName());
|
|
}
|
|
});
|
|
}
|
|
arrayList.trimToSize();
|
|
return arrayList;
|
|
}
|
|
});
|
|
Intrinsics.checkNotNullExpressionValue(lazySoft2, "lazySoft(...)");
|
|
this._parameters = lazySoft2;
|
|
ReflectProperties.LazySoftVal<KTypeImpl> lazySoft3 = ReflectProperties.lazySoft(new Function0<KTypeImpl>(this) { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_returnType$1
|
|
final /* synthetic */ KCallableImpl<R> this$0;
|
|
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
{
|
|
super(0);
|
|
this.this$0 = this;
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final KTypeImpl invoke() {
|
|
KotlinType returnType = this.this$0.getDescriptor().getReturnType();
|
|
Intrinsics.checkNotNull(returnType);
|
|
final KCallableImpl<R> kCallableImpl = this.this$0;
|
|
return new KTypeImpl(returnType, new Function0<Type>() { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_returnType$1.1
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
{
|
|
super(0);
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final Type invoke() {
|
|
Type extractContinuationArgument;
|
|
extractContinuationArgument = kCallableImpl.extractContinuationArgument();
|
|
return extractContinuationArgument == null ? kCallableImpl.getCaller().getReturnType() : extractContinuationArgument;
|
|
}
|
|
});
|
|
}
|
|
});
|
|
Intrinsics.checkNotNullExpressionValue(lazySoft3, "lazySoft(...)");
|
|
this._returnType = lazySoft3;
|
|
ReflectProperties.LazySoftVal<List<KTypeParameterImpl>> lazySoft4 = ReflectProperties.lazySoft(new Function0<List<? extends KTypeParameterImpl>>(this) { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_typeParameters$1
|
|
final /* synthetic */ KCallableImpl<R> this$0;
|
|
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
{
|
|
super(0);
|
|
this.this$0 = this;
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final List<? extends KTypeParameterImpl> invoke() {
|
|
int collectionSizeOrDefault;
|
|
List<TypeParameterDescriptor> typeParameters = this.this$0.getDescriptor().getTypeParameters();
|
|
Intrinsics.checkNotNullExpressionValue(typeParameters, "getTypeParameters(...)");
|
|
List<TypeParameterDescriptor> list = typeParameters;
|
|
KTypeParameterOwnerImpl kTypeParameterOwnerImpl = this.this$0;
|
|
collectionSizeOrDefault = CollectionsKt__IterablesKt.collectionSizeOrDefault(list, 10);
|
|
ArrayList arrayList = new ArrayList(collectionSizeOrDefault);
|
|
for (TypeParameterDescriptor typeParameterDescriptor : list) {
|
|
Intrinsics.checkNotNull(typeParameterDescriptor);
|
|
arrayList.add(new KTypeParameterImpl(kTypeParameterOwnerImpl, typeParameterDescriptor));
|
|
}
|
|
return arrayList;
|
|
}
|
|
});
|
|
Intrinsics.checkNotNullExpressionValue(lazySoft4, "lazySoft(...)");
|
|
this._typeParameters = lazySoft4;
|
|
ReflectProperties.LazySoftVal<Object[]> lazySoft5 = ReflectProperties.lazySoft(new Function0<Object[]>(this) { // from class: kotlin.reflect.jvm.internal.KCallableImpl$_absentArguments$1
|
|
final /* synthetic */ KCallableImpl<R> this$0;
|
|
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
{
|
|
super(0);
|
|
this.this$0 = this;
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final Object[] invoke() {
|
|
Lazy lazy;
|
|
int i;
|
|
Object defaultEmptyArray;
|
|
List<KParameter> parameters = this.this$0.getParameters();
|
|
int size = (this.this$0.isSuspend() ? 1 : 0) + parameters.size();
|
|
lazy = ((KCallableImpl) this.this$0).parametersNeedMFVCFlattening;
|
|
if (((Boolean) lazy.getValue()).booleanValue()) {
|
|
KCallableImpl<R> kCallableImpl = this.this$0;
|
|
i = 0;
|
|
for (KParameter kParameter : parameters) {
|
|
i += kParameter.getKind() == KParameter.Kind.VALUE ? kCallableImpl.getParameterTypeSize(kParameter) : 0;
|
|
}
|
|
} else {
|
|
List<KParameter> list = parameters;
|
|
if ((list instanceof Collection) && list.isEmpty()) {
|
|
i = 0;
|
|
} else {
|
|
Iterator<T> it = list.iterator();
|
|
i = 0;
|
|
while (it.hasNext()) {
|
|
if (((KParameter) it.next()).getKind() == KParameter.Kind.VALUE && (i = i + 1) < 0) {
|
|
CollectionsKt.throwCountOverflow();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
int i4 = (i + 31) / 32;
|
|
Object[] objArr = new Object[size + i4 + 1];
|
|
KCallableImpl<R> kCallableImpl2 = this.this$0;
|
|
for (KParameter kParameter2 : parameters) {
|
|
if (kParameter2.isOptional() && !UtilKt.isInlineClassType(kParameter2.getType())) {
|
|
objArr[kParameter2.getIndex()] = UtilKt.defaultPrimitiveValue(ReflectJvmMapping.getJavaType(kParameter2.getType()));
|
|
} else if (kParameter2.isVararg()) {
|
|
int index = kParameter2.getIndex();
|
|
defaultEmptyArray = kCallableImpl2.defaultEmptyArray(kParameter2.getType());
|
|
objArr[index] = defaultEmptyArray;
|
|
}
|
|
}
|
|
for (int i5 = 0; i5 < i4; i5++) {
|
|
objArr[size + i5] = 0;
|
|
}
|
|
return objArr;
|
|
}
|
|
});
|
|
Intrinsics.checkNotNullExpressionValue(lazySoft5, "lazySoft(...)");
|
|
this._absentArguments = lazySoft5;
|
|
this.parametersNeedMFVCFlattening = LazyKt.lazy(LazyThreadSafetyMode.PUBLICATION, (Function0) new Function0<Boolean>(this) { // from class: kotlin.reflect.jvm.internal.KCallableImpl$parametersNeedMFVCFlattening$1
|
|
final /* synthetic */ KCallableImpl<R> this$0;
|
|
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
{
|
|
super(0);
|
|
this.this$0 = this;
|
|
}
|
|
|
|
/* JADX WARN: Can't rename method to resolve collision */
|
|
@Override // kotlin.jvm.functions.Function0
|
|
public final Boolean invoke() {
|
|
List<KParameter> parameters = this.this$0.getParameters();
|
|
boolean z3 = false;
|
|
if (!(parameters instanceof Collection) || !parameters.isEmpty()) {
|
|
Iterator<T> it = parameters.iterator();
|
|
while (true) {
|
|
if (!it.hasNext()) {
|
|
break;
|
|
}
|
|
if (UtilKt.getNeedsMultiFieldValueClassFlattening(((KParameter) it.next()).getType())) {
|
|
z3 = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return Boolean.valueOf(z3);
|
|
}
|
|
});
|
|
}
|
|
|
|
private final R callAnnotationConstructor(Map<KParameter, ? extends Object> args) {
|
|
int collectionSizeOrDefault;
|
|
Object defaultEmptyArray;
|
|
List<KParameter> parameters = getParameters();
|
|
collectionSizeOrDefault = CollectionsKt__IterablesKt.collectionSizeOrDefault(parameters, 10);
|
|
ArrayList arrayList = new ArrayList(collectionSizeOrDefault);
|
|
for (KParameter kParameter : parameters) {
|
|
if (args.containsKey(kParameter)) {
|
|
defaultEmptyArray = args.get(kParameter);
|
|
if (defaultEmptyArray == null) {
|
|
throw new IllegalArgumentException("Annotation argument value cannot be null (" + kParameter + ')');
|
|
}
|
|
} else if (kParameter.isOptional()) {
|
|
defaultEmptyArray = null;
|
|
} else {
|
|
if (!kParameter.isVararg()) {
|
|
throw new IllegalArgumentException("No argument provided for a required parameter: " + kParameter);
|
|
}
|
|
defaultEmptyArray = defaultEmptyArray(kParameter.getType());
|
|
}
|
|
arrayList.add(defaultEmptyArray);
|
|
}
|
|
Caller<?> defaultCaller = getDefaultCaller();
|
|
if (defaultCaller != null) {
|
|
try {
|
|
return (R) defaultCaller.call(arrayList.toArray(new Object[0]));
|
|
} catch (IllegalAccessException e4) {
|
|
throw new IllegalCallableAccessException(e4);
|
|
}
|
|
}
|
|
throw new KotlinReflectionInternalError("This callable does not support a default call: " + getDescriptor());
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public final Object defaultEmptyArray(KType type) {
|
|
Class javaClass = JvmClassMappingKt.getJavaClass((KClass) KTypesJvm.getJvmErasure(type));
|
|
if (javaClass.isArray()) {
|
|
Object newInstance = Array.newInstance(javaClass.getComponentType(), 0);
|
|
Intrinsics.checkNotNullExpressionValue(newInstance, "run(...)");
|
|
return newInstance;
|
|
}
|
|
throw new KotlinReflectionInternalError("Cannot instantiate the default empty array of type " + javaClass.getSimpleName() + ", because it is not an array type");
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public final Type extractContinuationArgument() {
|
|
Type[] lowerBounds;
|
|
if (isSuspend()) {
|
|
Object lastOrNull = CollectionsKt.lastOrNull((List<? extends Object>) getCaller().getParameterTypes());
|
|
ParameterizedType parameterizedType = lastOrNull instanceof ParameterizedType ? (ParameterizedType) lastOrNull : null;
|
|
if (Intrinsics.areEqual(parameterizedType != null ? parameterizedType.getRawType() : null, Continuation.class)) {
|
|
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
|
|
Intrinsics.checkNotNullExpressionValue(actualTypeArguments, "getActualTypeArguments(...)");
|
|
Object single = ArraysKt.single(actualTypeArguments);
|
|
WildcardType wildcardType = single instanceof WildcardType ? (WildcardType) single : null;
|
|
if (wildcardType != null && (lowerBounds = wildcardType.getLowerBounds()) != null) {
|
|
return (Type) ArraysKt.first(lowerBounds);
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private final Object[] getAbsentArguments() {
|
|
return (Object[]) this._absentArguments.invoke().clone();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public final int getParameterTypeSize(KParameter parameter) {
|
|
if (!this.parametersNeedMFVCFlattening.getValue().booleanValue()) {
|
|
throw new IllegalArgumentException("Check if parametersNeedMFVCFlattening is true before");
|
|
}
|
|
if (!UtilKt.getNeedsMultiFieldValueClassFlattening(parameter.getType())) {
|
|
return 1;
|
|
}
|
|
KType type = parameter.getType();
|
|
Intrinsics.checkNotNull(type, "null cannot be cast to non-null type kotlin.reflect.jvm.internal.KTypeImpl");
|
|
List<Method> mfvcUnboxMethods = ValueClassAwareCallerKt.getMfvcUnboxMethods(TypeSubstitutionKt.asSimpleType(((KTypeImpl) type).getType()));
|
|
Intrinsics.checkNotNull(mfvcUnboxMethods);
|
|
return mfvcUnboxMethods.size();
|
|
}
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public R call(Object... args) {
|
|
Intrinsics.checkNotNullParameter(args, "args");
|
|
try {
|
|
return (R) getCaller().call(args);
|
|
} catch (IllegalAccessException e4) {
|
|
throw new IllegalCallableAccessException(e4);
|
|
}
|
|
}
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public R callBy(Map<KParameter, ? extends Object> args) {
|
|
Intrinsics.checkNotNullParameter(args, "args");
|
|
return isAnnotationConstructor() ? callAnnotationConstructor(args) : callDefaultMethod$kotlin_reflection(args, null);
|
|
}
|
|
|
|
public final R callDefaultMethod$kotlin_reflection(Map<KParameter, ? extends Object> args, Continuation<?> continuationArgument) {
|
|
Intrinsics.checkNotNullParameter(args, "args");
|
|
List<KParameter> parameters = getParameters();
|
|
boolean z3 = false;
|
|
if (parameters.isEmpty()) {
|
|
try {
|
|
return (R) getCaller().call(isSuspend() ? new Continuation[]{continuationArgument} : new Continuation[0]);
|
|
} catch (IllegalAccessException e4) {
|
|
throw new IllegalCallableAccessException(e4);
|
|
}
|
|
}
|
|
int size = (isSuspend() ? 1 : 0) + parameters.size();
|
|
Object[] absentArguments = getAbsentArguments();
|
|
if (isSuspend()) {
|
|
absentArguments[parameters.size()] = continuationArgument;
|
|
}
|
|
boolean booleanValue = this.parametersNeedMFVCFlattening.getValue().booleanValue();
|
|
int i = 0;
|
|
for (KParameter kParameter : parameters) {
|
|
int parameterTypeSize = booleanValue ? getParameterTypeSize(kParameter) : 1;
|
|
if (args.containsKey(kParameter)) {
|
|
absentArguments[kParameter.getIndex()] = args.get(kParameter);
|
|
} else if (kParameter.isOptional()) {
|
|
if (booleanValue) {
|
|
int i4 = i + parameterTypeSize;
|
|
for (int i5 = i; i5 < i4; i5++) {
|
|
int i6 = (i5 / 32) + size;
|
|
Object obj = absentArguments[i6];
|
|
Intrinsics.checkNotNull(obj, "null cannot be cast to non-null type kotlin.Int");
|
|
absentArguments[i6] = Integer.valueOf(((Integer) obj).intValue() | (1 << (i5 % 32)));
|
|
}
|
|
} else {
|
|
int i7 = (i / 32) + size;
|
|
Object obj2 = absentArguments[i7];
|
|
Intrinsics.checkNotNull(obj2, "null cannot be cast to non-null type kotlin.Int");
|
|
absentArguments[i7] = Integer.valueOf(((Integer) obj2).intValue() | (1 << (i % 32)));
|
|
}
|
|
z3 = true;
|
|
} else if (!kParameter.isVararg()) {
|
|
throw new IllegalArgumentException("No argument provided for a required parameter: " + kParameter);
|
|
}
|
|
if (kParameter.getKind() == KParameter.Kind.VALUE) {
|
|
i += parameterTypeSize;
|
|
}
|
|
}
|
|
if (!z3) {
|
|
try {
|
|
Caller<?> caller = getCaller();
|
|
Object[] copyOf = Arrays.copyOf(absentArguments, size);
|
|
Intrinsics.checkNotNullExpressionValue(copyOf, "copyOf(...)");
|
|
return (R) caller.call(copyOf);
|
|
} catch (IllegalAccessException e5) {
|
|
throw new IllegalCallableAccessException(e5);
|
|
}
|
|
}
|
|
Caller<?> defaultCaller = getDefaultCaller();
|
|
if (defaultCaller != null) {
|
|
try {
|
|
return (R) defaultCaller.call(absentArguments);
|
|
} catch (IllegalAccessException e6) {
|
|
throw new IllegalCallableAccessException(e6);
|
|
}
|
|
}
|
|
throw new KotlinReflectionInternalError("This callable does not support a default call: " + getDescriptor());
|
|
}
|
|
|
|
@Override // kotlin.reflect.KAnnotatedElement
|
|
public List<Annotation> getAnnotations() {
|
|
List<Annotation> invoke = this._annotations.invoke();
|
|
Intrinsics.checkNotNullExpressionValue(invoke, "invoke(...)");
|
|
return invoke;
|
|
}
|
|
|
|
public abstract Caller<?> getCaller();
|
|
|
|
public abstract KDeclarationContainerImpl getContainer();
|
|
|
|
public abstract Caller<?> getDefaultCaller();
|
|
|
|
public abstract CallableMemberDescriptor getDescriptor();
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public List<KParameter> getParameters() {
|
|
ArrayList<KParameter> invoke = this._parameters.invoke();
|
|
Intrinsics.checkNotNullExpressionValue(invoke, "invoke(...)");
|
|
return invoke;
|
|
}
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public KType getReturnType() {
|
|
KTypeImpl invoke = this._returnType.invoke();
|
|
Intrinsics.checkNotNullExpressionValue(invoke, "invoke(...)");
|
|
return invoke;
|
|
}
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public List<KTypeParameter> getTypeParameters() {
|
|
List<KTypeParameterImpl> invoke = this._typeParameters.invoke();
|
|
Intrinsics.checkNotNullExpressionValue(invoke, "invoke(...)");
|
|
return invoke;
|
|
}
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public KVisibility getVisibility() {
|
|
DescriptorVisibility visibility = getDescriptor().getVisibility();
|
|
Intrinsics.checkNotNullExpressionValue(visibility, "getVisibility(...)");
|
|
return UtilKt.toKVisibility(visibility);
|
|
}
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public boolean isAbstract() {
|
|
return getDescriptor().getModality() == Modality.ABSTRACT;
|
|
}
|
|
|
|
public final boolean isAnnotationConstructor() {
|
|
return Intrinsics.areEqual(getName(), "<init>") && getContainer().getJClass().isAnnotation();
|
|
}
|
|
|
|
public abstract boolean isBound();
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public boolean isFinal() {
|
|
return getDescriptor().getModality() == Modality.FINAL;
|
|
}
|
|
|
|
@Override // kotlin.reflect.KCallable
|
|
public boolean isOpen() {
|
|
return getDescriptor().getModality() == Modality.OPEN;
|
|
}
|
|
}
|