Initial import of ADIF API reverse-engineering toolkit
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
package kotlin.reflect.jvm.internal;
|
||||
|
||||
import java.util.List;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.collections.CollectionsKt___CollectionsKt;
|
||||
import kotlin.jvm.functions.Function1;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.reflect.KParameter;
|
||||
import kotlin.reflect.jvm.internal.impl.descriptors.CallableDescriptor;
|
||||
import kotlin.reflect.jvm.internal.impl.descriptors.FunctionDescriptor;
|
||||
import kotlin.reflect.jvm.internal.impl.descriptors.PropertyDescriptor;
|
||||
import kotlin.reflect.jvm.internal.impl.descriptors.ReceiverParameterDescriptor;
|
||||
import kotlin.reflect.jvm.internal.impl.descriptors.ValueParameterDescriptor;
|
||||
import kotlin.reflect.jvm.internal.impl.name.Name;
|
||||
import kotlin.reflect.jvm.internal.impl.renderer.DescriptorRenderer;
|
||||
import kotlin.reflect.jvm.internal.impl.types.KotlinType;
|
||||
|
||||
@Metadata(d1 = {"\u0000P\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\bÀ\u0002\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u0010\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\bH\u0002J\u000e\u0010\t\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\nJ\u000e\u0010\u000b\u001a\u00020\u00062\u0006\u0010\f\u001a\u00020\nJ\u000e\u0010\r\u001a\u00020\u00062\u0006\u0010\u000e\u001a\u00020\u000fJ\u000e\u0010\u0010\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\u0011J\u000e\u0010\u0012\u001a\u00020\u00062\u0006\u0010\u0013\u001a\u00020\u0014J\u001a\u0010\u0015\u001a\u00020\u0016*\u00060\u0017j\u0002`\u00182\b\u0010\u0019\u001a\u0004\u0018\u00010\u001aH\u0002J\u0018\u0010\u001b\u001a\u00020\u0016*\u00060\u0017j\u0002`\u00182\u0006\u0010\u001c\u001a\u00020\bH\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u001d"}, d2 = {"Lkotlin/reflect/jvm/internal/ReflectionObjectRenderer;", "", "()V", "renderer", "Lkotlin/reflect/jvm/internal/impl/renderer/DescriptorRenderer;", "renderCallable", "", "descriptor", "Lkotlin/reflect/jvm/internal/impl/descriptors/CallableDescriptor;", "renderFunction", "Lkotlin/reflect/jvm/internal/impl/descriptors/FunctionDescriptor;", "renderLambda", "invoke", "renderParameter", "parameter", "Lkotlin/reflect/jvm/internal/KParameterImpl;", "renderProperty", "Lkotlin/reflect/jvm/internal/impl/descriptors/PropertyDescriptor;", "renderType", "type", "Lkotlin/reflect/jvm/internal/impl/types/KotlinType;", "appendReceiverType", "", "Ljava/lang/StringBuilder;", "Lkotlin/text/StringBuilder;", "receiver", "Lkotlin/reflect/jvm/internal/impl/descriptors/ReceiverParameterDescriptor;", "appendReceivers", "callable", "kotlin-reflection"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ReflectionObjectRenderer {
|
||||
public static final ReflectionObjectRenderer INSTANCE = new ReflectionObjectRenderer();
|
||||
private static final DescriptorRenderer renderer = DescriptorRenderer.FQ_NAMES_IN_TYPES;
|
||||
|
||||
@Metadata(k = 3, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes3.dex */
|
||||
public /* synthetic */ class WhenMappings {
|
||||
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
|
||||
|
||||
static {
|
||||
int[] iArr = new int[KParameter.Kind.values().length];
|
||||
try {
|
||||
iArr[KParameter.Kind.EXTENSION_RECEIVER.ordinal()] = 1;
|
||||
} catch (NoSuchFieldError unused) {
|
||||
}
|
||||
try {
|
||||
iArr[KParameter.Kind.INSTANCE.ordinal()] = 2;
|
||||
} catch (NoSuchFieldError unused2) {
|
||||
}
|
||||
try {
|
||||
iArr[KParameter.Kind.VALUE.ordinal()] = 3;
|
||||
} catch (NoSuchFieldError unused3) {
|
||||
}
|
||||
$EnumSwitchMapping$0 = iArr;
|
||||
}
|
||||
}
|
||||
|
||||
private ReflectionObjectRenderer() {
|
||||
}
|
||||
|
||||
private final void appendReceiverType(StringBuilder sb, ReceiverParameterDescriptor receiverParameterDescriptor) {
|
||||
if (receiverParameterDescriptor != null) {
|
||||
KotlinType type = receiverParameterDescriptor.getType();
|
||||
Intrinsics.checkNotNullExpressionValue(type, "getType(...)");
|
||||
sb.append(renderType(type));
|
||||
sb.append(".");
|
||||
}
|
||||
}
|
||||
|
||||
private final void appendReceivers(StringBuilder sb, CallableDescriptor callableDescriptor) {
|
||||
ReceiverParameterDescriptor instanceReceiverParameter = UtilKt.getInstanceReceiverParameter(callableDescriptor);
|
||||
ReceiverParameterDescriptor extensionReceiverParameter = callableDescriptor.getExtensionReceiverParameter();
|
||||
appendReceiverType(sb, instanceReceiverParameter);
|
||||
boolean z3 = (instanceReceiverParameter == null || extensionReceiverParameter == null) ? false : true;
|
||||
if (z3) {
|
||||
sb.append("(");
|
||||
}
|
||||
appendReceiverType(sb, extensionReceiverParameter);
|
||||
if (z3) {
|
||||
sb.append(")");
|
||||
}
|
||||
}
|
||||
|
||||
private final String renderCallable(CallableDescriptor descriptor) {
|
||||
if (descriptor instanceof PropertyDescriptor) {
|
||||
return renderProperty((PropertyDescriptor) descriptor);
|
||||
}
|
||||
if (descriptor instanceof FunctionDescriptor) {
|
||||
return renderFunction((FunctionDescriptor) descriptor);
|
||||
}
|
||||
throw new IllegalStateException(("Illegal callable: " + descriptor).toString());
|
||||
}
|
||||
|
||||
public final String renderFunction(FunctionDescriptor descriptor) {
|
||||
Intrinsics.checkNotNullParameter(descriptor, "descriptor");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("fun ");
|
||||
ReflectionObjectRenderer reflectionObjectRenderer = INSTANCE;
|
||||
reflectionObjectRenderer.appendReceivers(sb, descriptor);
|
||||
DescriptorRenderer descriptorRenderer = renderer;
|
||||
Name name = descriptor.getName();
|
||||
Intrinsics.checkNotNullExpressionValue(name, "getName(...)");
|
||||
sb.append(descriptorRenderer.renderName(name, true));
|
||||
List<ValueParameterDescriptor> valueParameters = descriptor.getValueParameters();
|
||||
Intrinsics.checkNotNullExpressionValue(valueParameters, "getValueParameters(...)");
|
||||
CollectionsKt___CollectionsKt.joinTo$default(valueParameters, sb, ", ", "(", ")", 0, null, new Function1<ValueParameterDescriptor, CharSequence>() { // from class: kotlin.reflect.jvm.internal.ReflectionObjectRenderer$renderFunction$1$1
|
||||
@Override // kotlin.jvm.functions.Function1
|
||||
public final CharSequence invoke(ValueParameterDescriptor valueParameterDescriptor) {
|
||||
ReflectionObjectRenderer reflectionObjectRenderer2 = ReflectionObjectRenderer.INSTANCE;
|
||||
KotlinType type = valueParameterDescriptor.getType();
|
||||
Intrinsics.checkNotNullExpressionValue(type, "getType(...)");
|
||||
return reflectionObjectRenderer2.renderType(type);
|
||||
}
|
||||
}, 48, null);
|
||||
sb.append(": ");
|
||||
KotlinType returnType = descriptor.getReturnType();
|
||||
Intrinsics.checkNotNull(returnType);
|
||||
sb.append(reflectionObjectRenderer.renderType(returnType));
|
||||
String sb2 = sb.toString();
|
||||
Intrinsics.checkNotNullExpressionValue(sb2, "toString(...)");
|
||||
return sb2;
|
||||
}
|
||||
|
||||
public final String renderLambda(FunctionDescriptor invoke) {
|
||||
Intrinsics.checkNotNullParameter(invoke, "invoke");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
ReflectionObjectRenderer reflectionObjectRenderer = INSTANCE;
|
||||
reflectionObjectRenderer.appendReceivers(sb, invoke);
|
||||
List<ValueParameterDescriptor> valueParameters = invoke.getValueParameters();
|
||||
Intrinsics.checkNotNullExpressionValue(valueParameters, "getValueParameters(...)");
|
||||
CollectionsKt___CollectionsKt.joinTo$default(valueParameters, sb, ", ", "(", ")", 0, null, new Function1<ValueParameterDescriptor, CharSequence>() { // from class: kotlin.reflect.jvm.internal.ReflectionObjectRenderer$renderLambda$1$1
|
||||
@Override // kotlin.jvm.functions.Function1
|
||||
public final CharSequence invoke(ValueParameterDescriptor valueParameterDescriptor) {
|
||||
ReflectionObjectRenderer reflectionObjectRenderer2 = ReflectionObjectRenderer.INSTANCE;
|
||||
KotlinType type = valueParameterDescriptor.getType();
|
||||
Intrinsics.checkNotNullExpressionValue(type, "getType(...)");
|
||||
return reflectionObjectRenderer2.renderType(type);
|
||||
}
|
||||
}, 48, null);
|
||||
sb.append(" -> ");
|
||||
KotlinType returnType = invoke.getReturnType();
|
||||
Intrinsics.checkNotNull(returnType);
|
||||
sb.append(reflectionObjectRenderer.renderType(returnType));
|
||||
String sb2 = sb.toString();
|
||||
Intrinsics.checkNotNullExpressionValue(sb2, "toString(...)");
|
||||
return sb2;
|
||||
}
|
||||
|
||||
public final String renderParameter(KParameterImpl parameter) {
|
||||
Intrinsics.checkNotNullParameter(parameter, "parameter");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int i = WhenMappings.$EnumSwitchMapping$0[parameter.getKind().ordinal()];
|
||||
if (i == 1) {
|
||||
sb.append("extension receiver parameter");
|
||||
} else if (i == 2) {
|
||||
sb.append("instance parameter");
|
||||
} else if (i == 3) {
|
||||
sb.append("parameter #" + parameter.getIndex() + ' ' + parameter.getName());
|
||||
}
|
||||
sb.append(" of ");
|
||||
sb.append(INSTANCE.renderCallable(parameter.getCallable().getDescriptor()));
|
||||
String sb2 = sb.toString();
|
||||
Intrinsics.checkNotNullExpressionValue(sb2, "toString(...)");
|
||||
return sb2;
|
||||
}
|
||||
|
||||
public final String renderProperty(PropertyDescriptor descriptor) {
|
||||
Intrinsics.checkNotNullParameter(descriptor, "descriptor");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(descriptor.isVar() ? "var " : "val ");
|
||||
ReflectionObjectRenderer reflectionObjectRenderer = INSTANCE;
|
||||
reflectionObjectRenderer.appendReceivers(sb, descriptor);
|
||||
DescriptorRenderer descriptorRenderer = renderer;
|
||||
Name name = descriptor.getName();
|
||||
Intrinsics.checkNotNullExpressionValue(name, "getName(...)");
|
||||
sb.append(descriptorRenderer.renderName(name, true));
|
||||
sb.append(": ");
|
||||
KotlinType type = descriptor.getType();
|
||||
Intrinsics.checkNotNullExpressionValue(type, "getType(...)");
|
||||
sb.append(reflectionObjectRenderer.renderType(type));
|
||||
String sb2 = sb.toString();
|
||||
Intrinsics.checkNotNullExpressionValue(sb2, "toString(...)");
|
||||
return sb2;
|
||||
}
|
||||
|
||||
public final String renderType(KotlinType type) {
|
||||
Intrinsics.checkNotNullParameter(type, "type");
|
||||
return renderer.renderType(type);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user