Function public_scopes
fn public_scopes(groups: &[&Vec<SourceFile>]) -> BTreeSet<String>Expand description
Every module source scope a public path reaches, per indexed crate.
Breadth-first from each crate root, because reachability is transitive and
asymmetric: pub mod a { mod b; } makes a reachable and a::b not, while
mod a { pub mod b; } makes neither. A crate root is reachable by definition —
it is what crate:: names.