code: DependencyInfo getDependencyInfo() {
      if (dependencyInfo == null) {
        dependencyInfo = generateDependencyInfo();
      }
      if (!extraRequires.isEmpty() || !extraProvides.isEmpty()) {
        dependencyInfo =
            SimpleDependencyInfo.builder(getName(), getName())
                .setProvides(concat(dependencyInfo.getProvides(), extraProvides))
                .setRequires(concat(dependencyInfo.getRequires(), extraRequires))
                .setTypeRequires(dependencyInfo.getTypeRequires())
                .setLoadFlags(dependencyInfo.getLoadFlags())
                .setHasExternsAnnotation(dependencyInfo.getHasExternsAnnotation())
                .setHasNoCompileAnnotation(dependencyInfo.getHasNoCompileAnnotation())
                .build();
        extraRequires.clear();
        extraProvides.clear();
      }
      return dependencyInfo;
    }
docs: Returns the DependencyInfo object, generating it lazily if necessary.