code: public AnnotationVisitor visitTypeAnnotation(int typeRef,
              TypePath typePath, String desc, boolean visible) {
          if (api < Opcodes.ASM5) {
              throw new RuntimeException();
          }
          if (cv != null) {
              return cv.visitTypeAnnotation(typeRef, typePath, desc, visible);
          }
          return null;
      }
docs: Visits an annotation on a type in the class signature.
  
  @param typeRef
  a reference to the annotated type. The sort of this type
  reference must be {@link TypeReference#CLASS_TYPE_PARAMETER
  CLASS_TYPE_PARAMETER},
  {@link TypeReference#CLASS_TYPE_PARAMETER_BOUND
  CLASS_TYPE_PARAMETER_BOUND} or
  {@link TypeReference#CLASS_EXTENDS CLASS_EXTENDS}. See
  {@link TypeReference}.
  @param typePath
  the path to the annotated type argument, wildcard bound, array
  element type, or static inner type within 'typeRef'. May be
  <tt>null</tt> if the annotation targets 'typeRef' as a whole.
  @param desc
  the class descriptor of the annotation class.
  @param visible
  <tt>true</tt> if the annotation is visible at runtime.
  @return a visitor to visit the annotation values, or <tt>null</tt> if
  this visitor is not interested in visiting this annotation.