pub fn phase_detect_consumes_cycles(
groups: &BTreeMap<String, Vec<usize>>,
parsed: &[ParsedFile],
unit_consumes: &HashMap<String, Vec<String>>,
errors: &mut ErrorSink,
)Expand description
Phase 5c: detect consumes cycles. #696: record each consumes-clause
site (file + span) keyed by (consumer, target) so a detected cycle
anchors on the exact clause that forms the closing edge — a real span in
a real file — and renders with source context. Synthetic units are left
out so their (snapshot-less) files never claim a diagnostic.