Initial import of ADIF API reverse-engineering toolkit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package kotlin.reflect.jvm.internal.impl;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import kotlin.collections.CollectionsKt;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.jvm.internal.Ref;
|
||||
import kotlin.jvm.internal.SourceDebugExtension;
|
||||
import kotlin.reflect.jvm.internal.impl.descriptors.SourceElement;
|
||||
import kotlin.reflect.jvm.internal.impl.load.java.JvmAbi;
|
||||
import kotlin.reflect.jvm.internal.impl.load.java.JvmAnnotationNames;
|
||||
import kotlin.reflect.jvm.internal.impl.load.kotlin.KotlinJvmBinaryClass;
|
||||
import kotlin.reflect.jvm.internal.impl.name.ClassId;
|
||||
import kotlin.reflect.jvm.internal.impl.name.FqName;
|
||||
|
||||
@SourceDebugExtension({"SMAP\nSpecialJvmAnnotations.kt\nKotlin\n*S Kotlin\n*F\n+ 1 SpecialJvmAnnotations.kt\norg/jetbrains/kotlin/SpecialJvmAnnotations\n+ 2 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n*L\n1#1,42:1\n1620#2,3:43\n*S KotlinDebug\n*F\n+ 1 SpecialJvmAnnotations.kt\norg/jetbrains/kotlin/SpecialJvmAnnotations\n*L\n22#1:43,3\n*E\n"})
|
||||
/* loaded from: classes3.dex */
|
||||
public final class SpecialJvmAnnotations {
|
||||
public static final SpecialJvmAnnotations INSTANCE = new SpecialJvmAnnotations();
|
||||
private static final ClassId JAVA_LANG_ANNOTATION_REPEATABLE;
|
||||
private static final Set<ClassId> SPECIAL_ANNOTATIONS;
|
||||
|
||||
static {
|
||||
List listOf = CollectionsKt.listOf((Object[]) new FqName[]{JvmAnnotationNames.METADATA_FQ_NAME, JvmAnnotationNames.JETBRAINS_NOT_NULL_ANNOTATION, JvmAnnotationNames.JETBRAINS_NULLABLE_ANNOTATION, JvmAnnotationNames.TARGET_ANNOTATION, JvmAnnotationNames.RETENTION_ANNOTATION, JvmAnnotationNames.DOCUMENTED_ANNOTATION});
|
||||
LinkedHashSet linkedHashSet = new LinkedHashSet();
|
||||
Iterator it = listOf.iterator();
|
||||
while (it.hasNext()) {
|
||||
linkedHashSet.add(ClassId.topLevel((FqName) it.next()));
|
||||
}
|
||||
SPECIAL_ANNOTATIONS = linkedHashSet;
|
||||
ClassId classId = ClassId.topLevel(JvmAnnotationNames.REPEATABLE_ANNOTATION);
|
||||
Intrinsics.checkNotNullExpressionValue(classId, "topLevel(...)");
|
||||
JAVA_LANG_ANNOTATION_REPEATABLE = classId;
|
||||
}
|
||||
|
||||
private SpecialJvmAnnotations() {
|
||||
}
|
||||
|
||||
public final ClassId getJAVA_LANG_ANNOTATION_REPEATABLE() {
|
||||
return JAVA_LANG_ANNOTATION_REPEATABLE;
|
||||
}
|
||||
|
||||
public final Set<ClassId> getSPECIAL_ANNOTATIONS() {
|
||||
return SPECIAL_ANNOTATIONS;
|
||||
}
|
||||
|
||||
public final boolean isAnnotatedWithContainerMetaAnnotation(KotlinJvmBinaryClass klass) {
|
||||
Intrinsics.checkNotNullParameter(klass, "klass");
|
||||
final Ref.BooleanRef booleanRef = new Ref.BooleanRef();
|
||||
klass.loadClassAnnotations(new KotlinJvmBinaryClass.AnnotationVisitor() { // from class: kotlin.reflect.jvm.internal.impl.SpecialJvmAnnotations$isAnnotatedWithContainerMetaAnnotation$1
|
||||
@Override // kotlin.reflect.jvm.internal.impl.load.kotlin.KotlinJvmBinaryClass.AnnotationVisitor
|
||||
public KotlinJvmBinaryClass.AnnotationArgumentVisitor visitAnnotation(ClassId classId, SourceElement source) {
|
||||
Intrinsics.checkNotNullParameter(classId, "classId");
|
||||
Intrinsics.checkNotNullParameter(source, "source");
|
||||
if (!Intrinsics.areEqual(classId, JvmAbi.INSTANCE.getREPEATABLE_ANNOTATION_CONTAINER_META_ANNOTATION())) {
|
||||
return null;
|
||||
}
|
||||
Ref.BooleanRef.this.element = true;
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // kotlin.reflect.jvm.internal.impl.load.kotlin.KotlinJvmBinaryClass.AnnotationVisitor
|
||||
public void visitEnd() {
|
||||
}
|
||||
}, null);
|
||||
return booleanRef.element;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user