docs: private Collection<ClassDescriptor> extractReferencedClasses() throws InvalidClassFileFormatException {
          Set<ClassDescriptor> referencedClassSet = new HashSet<>();
          for (Constant constant : constantPool) {
              if (constant == null) {
                  continue;
              }
              if (constant.tag == IClassConstants.CONSTANT_Class) {
                  @SlashedClassName
                  String className = getUtf8String((Integer) constant.data[0]);
                  if (className.indexOf('[') >= 0) {
                      extractReferencedClassesFromSignature(referencedClassSet, className);
                  } else if (ClassName.isValidClassName(className)) {
                      referencedClassSet.add(DescriptorFactory.instance().getClassDescriptor(className));
                  }
              } else if (constant.tag == IClassConstants.CONSTANT_Methodref || constant.tag == IClassConstants.CONSTANT_Fieldref
                      || constant.tag == IClassConstants.CONSTANT_InterfaceMethodref) {
                  // Get the target class name
                  String className = getClassName((Integer) constant.data[0]);
                  extractReferencedClassesFromSignature(referencedClassSet, className);
  
                  // Parse signature to extract class names
                  String signature = getSignatureFromNameAndType((Integer) constant.data[1]);
                  extractReferencedClassesFromSignature(referencedClassSet, signature);
              }
          }
          return referencedClassSet;
      }