1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
//! Single-pass AST extraction of a [`FileIr`](crate::ir::facts::FileIr).
//!
//! The traversal is split by responsibility: `extractor` owns fact storage
//! and traversal context, `visitor` is the `syn` dispatch that drives it,
//! `fn_scope` classifies bindings inside the function body under traversal,
//! `sites` owns the authoritative definition and reference inventory, and
//! `site_visitor` turns syntax nodes into those sites. `imports` performs the
//! one `use`-tree walk, `use_paths` projects the flat capability path list from
//! the resulting sites, `paths` renders ranges and path spellings, and `extent`
//! reads the range one declaration occupies from its own boundary tokens.
//! `syn_helpers` holds the stateless AST queries the others share.
//! `unsafe_sites` records the three `unsafe` constructs and their callables.
//! `module_paths` reads the source a `mod` item selects, and `receivers` holds
//! the local binding types one function body established.
//! `impls`, `type_edges`, and `locals` are fact owners with no traversal state
//! of their own: what an `impl` block contributes, the pairwise type edges a
//! definition contributes, and what a `let` binding contributes.
//! `fingerprint` and `enrich` are post-passes over the finished IR. `parse` is
//! the one route into the traversal, so every production parse is observed
//! wherever it was requested from.
pub use extract;
pub use compute_fingerprints;
pub use parse_source;
pub use ;