docs: public ClassInfoList getClassesWithAnnotation() {
          if (!scanResult.scanSpec.enableAnnotationInfo) {
              throw new IllegalArgumentException("Please call ClassGraph#enableAnnotationInfo() before #scan()");
          }
          if (!isAnnotation) {
              throw new IllegalArgumentException("Class is not an annotation: " + getName());
          }
  
          // Get classes that have this annotation
          final ReachableAndDirectlyRelatedClasses classesWithAnnotation = this
                  .filterClassInfo(RelType.CLASSES_WITH_ANNOTATION, /* strictWhitelist = */ !isExternalClass);
  
          if (isInherited) {
              // If this is an inherited annotation, add into the result all subclasses of the annotated classes. 
              final Set<ClassInfo> classesWithAnnotationAndTheirSubclasses = new LinkedHashSet<>(
                      classesWithAnnotation.reachableClasses);
              for (final ClassInfo classWithAnnotation : classesWithAnnotation.reachableClasses) {
                  classesWithAnnotationAndTheirSubclasses.addAll(classWithAnnotation.getSubclasses());
              }
              return new ClassInfoList(classesWithAnnotationAndTheirSubclasses,
                      classesWithAnnotation.directlyRelatedClasses, /* sortByName = */ true);
          } else {
              // If not inherited, only return the annotated classes
              return new ClassInfoList(classesWithAnnotation, /* sortByName = */ true);
          }
      }