@Override
  public AnnotationVisitor visitAnnotation(final String desc, final boolean visible) {
    if ("Ljava/lang/annotation/Target;".equals(desc)) {
      return new AnnotationTargetCrawler();
    }

    if ("Ljava/lang/annotation/Retention;".equals(desc)) {
      return new AnnotationRetentionPolicyCrawler();
    }

    if ("Lkotlin/Metadata;".equals(desc)) {
      return new KotlinMetadataCrawler(myMetadata::add);
    }

    return new AnnotationCrawler((TypeRepr.ClassType)TypeRepr.getType(desc), (myAccess & Opcodes.ACC_ANNOTATION) > 0? ElemType.ANNOTATION_TYPE : ElemType.TYPE, res-> myAnnotations.add(res));
  }
@Override
  public AnnotationVisitor visitAnnotation(final String desc, final boolean visible)