docs: private static void resolveTypeQualifierNicknames(AnnotationValue value, LinkedList<AnnotationValue> result,
              LinkedList<ClassDescriptor> onStack) {
          ClassDescriptor annotationClass = value.getAnnotationClass();
  
          if (onStack.contains(annotationClass)) {
              AnalysisContext.logError("Cycle found in type nicknames: " + onStack);
              return;
          }
          try {
              onStack.add(annotationClass);
  
              try {
                  if (annotationClass.equals(androidNullable)
                          || annotationClass.equals(androidxNullable)
                          || annotationClass.equals(googleNullable)
                          || annotationClass.equals(eclipseNullable)
                          || annotationClass.equals(intellijNullable)
                          || annotationClass.equals(checkerFrameworkNullable)
                          || annotationClass.equals(checkerFrameworkNullableDecl)) {
                      resolveTypeQualifierNicknames(new AnnotationValue(JSR305NullnessAnnotations.CHECK_FOR_NULL), result, onStack);
                      return;
                  }
                  if (annotationClass.equals(androidNonNull)
                          || annotationClass.equals(androidxNonNull)
                          || annotationClass.equals(eclipseNonNull)
                          || annotationClass.equals(eclipseNonNullByDefault)
                          || annotationClass.equals(intellijNotNull)) {
                      resolveTypeQualifierNicknames(new AnnotationValue(JSR305NullnessAnnotations.NONNULL), result, onStack);
                      return;
                  }
  
                  XClass c = Global.getAnalysisCache().getClassAnalysis(XClass.class, annotationClass);
                  if (c.getAnnotationDescriptors().contains(typeQualifierNickname)) {
                      for (ClassDescriptor d : c.getAnnotationDescriptors()) {
                          if (!d.equals(typeQualifierNickname)) {
                              resolveTypeQualifierNicknames(c.getAnnotation(d), result, onStack);
                          }
                      }
                  } else if (c.getAnnotationDescriptors().contains(typeQualifier)) {
                      result.add(value);
                  }
              } catch (MissingClassException e) {
                  logMissingAnnotationClass(e);
                  return;
              } catch (CheckedAnalysisException e) {
                  AnalysisContext.logError("Error resolving " + annotationClass, e);
                  return;
              }
  
          } finally {
              onStack.removeLast();
          }
  
      }