code: @Override
      public void addAnnotation(AnnotationValue annotationValue) {
          HashMap<ClassDescriptor, AnnotationValue> updatedAnnotations = new HashMap<>(
                  methodAnnotations);
          updatedAnnotations.put(annotationValue.getAnnotationClass(), annotationValue);
          methodAnnotations = updatedAnnotations;
          TypeQualifierApplications.updateAnnotations(this);
      }
docs: Destructively add an annotation. We do this for "built-in" annotations
  that might not be directly evident in the code. It's not a great idea in
  general, but we can get away with it as long as it's done early enough
  (i.e., before anyone asks what annotations this method has.)
  
  @param annotationValue
  an AnnotationValue representing a method annotation