71 lines
3.6 KiB
Java
71 lines
3.6 KiB
Java
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;
|
|
}
|
|
}
|