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

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

      return new AnnotationCrawler(
          (TypeRepr.ClassType) TypeRepr.getType(myContext, myContext.get(desc)),
          (myAccess & Opcodes.ACC_ANNOTATION) > 0 ? ElemType.ANNOTATION_TYPE : ElemType.TYPE);
    }
 public AnnotationVisitor visitAnnotation(String name, String desc) {
   return new AnnotationCrawler(
       (TypeRepr.ClassType) TypeRepr.getType(myContext, myContext.get(desc)), myTarget);
 }