public AnnotationTextCollector(@Nullable String desc, AnnotationResultCallback callback) {
      super(Opcodes.ASM4);
      myCallback = callback;

      myDesc = desc;
      if (desc != null) {
        myBuilder.append('@').append(getTypeText(Type.getType(desc)));
      }
    }
 @NotNull
 private static TypeInfo fieldTypeViaDescription(@NotNull String desc) {
   Type type = Type.getType(desc);
   final int dim = type.getSort() == Type.ARRAY ? type.getDimensions() : 0;
   if (dim > 0) {
     type = type.getElementType();
   }
   return new TypeInfo(
       getTypeText(type),
       (byte) dim,
       false,
       Collections.<PsiAnnotationStub>emptyList()); // todo read annos from .class file
 }
 @Override
 public void visitEnum(final String name, final String desc, final String value) {
   valuePairPrefix(name);
   myBuilder.append(getTypeText(Type.getType(desc))).append(".").append(value);
 }