CrackMe.apk
Download file
package kotlin.reflect.jvm.internal.impl.load.java;
import java.util.Iterator;
import java.util.List;
import kotlin.collections.CollectionsKt;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.ClassDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.FunctionDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.ReceiverParameterDescriptor;
import kotlin.reflect.jvm.internal.impl.descriptors.SimpleFunctionDescriptor;
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.JavaMethodDescriptor;
import kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawSubstitution;
import kotlin.reflect.jvm.internal.impl.load.java.lazy.types.RawTypeImpl;
import kotlin.reflect.jvm.internal.impl.load.java.lazy.types.TypeParameterUpperBoundEraser;
import kotlin.reflect.jvm.internal.impl.resolve.ExternalOverridabilityCondition;
import kotlin.reflect.jvm.internal.impl.resolve.OverridingUtil;
import kotlin.reflect.jvm.internal.impl.types.KotlinType;
import kotlin.sequences.Sequence;
import kotlin.sequences.SequencesKt;
/* compiled from: ErasedOverridabilityCondition.kt */
public final class ErasedOverridabilityCondition implements ExternalOverridabilityCondition {
/* compiled from: ErasedOverridabilityCondition.kt */
public /* synthetic */ class WhenMappings {
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
static {
int[] iArr = new int[OverridingUtil.OverrideCompatibilityInfo.Result.values().length];
iArr[OverridingUtil.OverrideCompatibilityInfo.Result.OVERRIDABLE.ordinal()] = 1;
$EnumSwitchMapping$0 = iArr;
}
}
public ExternalOverridabilityCondition.Result isOverridable(CallableDescriptor callableDescriptor, CallableDescriptor callableDescriptor2, ClassDescriptor classDescriptor) {
boolean z;
boolean z2;
Intrinsics.checkNotNullParameter(callableDescriptor, "superDescriptor");
Intrinsics.checkNotNullParameter(callableDescriptor2, "subDescriptor");
if (callableDescriptor2 instanceof JavaMethodDescriptor) {
JavaMethodDescriptor javaMethodDescriptor = (JavaMethodDescriptor) callableDescriptor2;
List<TypeParameterDescriptor> typeParameters = javaMethodDescriptor.getTypeParameters();
Intrinsics.checkNotNullExpressionValue(typeParameters, "subDescriptor.typeParameters");
if (!(!typeParameters.isEmpty())) {
OverridingUtil.OverrideCompatibilityInfo basicOverridabilityProblem = OverridingUtil.getBasicOverridabilityProblem(callableDescriptor, callableDescriptor2);
if ((basicOverridabilityProblem == null ? null : basicOverridabilityProblem.getResult()) != null) {
return ExternalOverridabilityCondition.Result.UNKNOWN;
}
List<ValueParameterDescriptor> valueParameters = javaMethodDescriptor.getValueParameters();
Intrinsics.checkNotNullExpressionValue(valueParameters, "subDescriptor.valueParameters");
Sequence map = SequencesKt.map(CollectionsKt.asSequence(valueParameters), ErasedOverridabilityCondition$isOverridable$signatureTypes$1.INSTANCE);
KotlinType returnType = javaMethodDescriptor.getReturnType();
Intrinsics.checkNotNull(returnType);
Sequence plus = SequencesKt.plus(map, returnType);
ReceiverParameterDescriptor extensionReceiverParameter = javaMethodDescriptor.getExtensionReceiverParameter();
Iterator it = SequencesKt.plus(plus, CollectionsKt.listOfNotNull(extensionReceiverParameter == null ? null : extensionReceiverParameter.getType())).iterator();
while (true) {
if (!it.hasNext()) {
z = false;
break;
}
KotlinType kotlinType = (KotlinType) it.next();
if (!(!kotlinType.getArguments().isEmpty()) || (kotlinType.unwrap() instanceof RawTypeImpl)) {
z2 = false;
continue;
} else {
z2 = true;
continue;
}
if (z2) {
z = true;
break;
}
}
if (z) {
return ExternalOverridabilityCondition.Result.UNKNOWN;
}
CallableDescriptor callableDescriptor3 = (CallableDescriptor) callableDescriptor.substitute(new RawSubstitution((TypeParameterUpperBoundEraser) null, 1, (DefaultConstructorMarker) null).buildSubstitutor());
if (callableDescriptor3 == null) {
return ExternalOverridabilityCondition.Result.UNKNOWN;
}
if (callableDescriptor3 instanceof SimpleFunctionDescriptor) {
SimpleFunctionDescriptor simpleFunctionDescriptor = (SimpleFunctionDescriptor) callableDescriptor3;
List<TypeParameterDescriptor> typeParameters2 = simpleFunctionDescriptor.getTypeParameters();
Intrinsics.checkNotNullExpressionValue(typeParameters2, "erasedSuper.typeParameters");
if (!typeParameters2.isEmpty()) {
FunctionDescriptor build = simpleFunctionDescriptor.newCopyBuilder().setTypeParameters(CollectionsKt.emptyList()).build();
Intrinsics.checkNotNull(build);
callableDescriptor3 = build;
}
}
OverridingUtil.OverrideCompatibilityInfo.Result result = OverridingUtil.DEFAULT.isOverridableByWithoutExternalConditions(callableDescriptor3, callableDescriptor2, false).getResult();
Intrinsics.checkNotNullExpressionValue(result, "DEFAULT.isOverridableByW…Descriptor, false).result");
if (WhenMappings.$EnumSwitchMapping$0[result.ordinal()] == 1) {
return ExternalOverridabilityCondition.Result.OVERRIDABLE;
}
return ExternalOverridabilityCondition.Result.UNKNOWN;
}
}
return ExternalOverridabilityCondition.Result.UNKNOWN;
}
public ExternalOverridabilityCondition.Contract getContract() {
return ExternalOverridabilityCondition.Contract.SUCCESS_ONLY;
}
}
Download file