pathImports method

Iterable<String> pathImports()

Implementation

Iterable<String> pathImports() {
  Iterable<String> extract() sync* {
    Iterable<String> traverse(ExtractImport extract) sync* {
      for (final item in extract.extractors) {
        if (item == null) continue;

        yield* traverse(item);
      }

      for (final import in extract.imports) {
        if (import == null) continue;

        yield* import.paths;
      }
    }

    yield* traverse(this);
  }

  return _pathImports ??= {...extract().toList()..sort()};
}