Expand description
The parsed_doc salsa query: parses a SourceFile into an Arc<ParsedDoc>
under salsa memoization. Downstream queries (file_index, symbol_map,
semantic diagnostics) depend on this one, so each file is parsed at most
once per revision.
ParsedDoc owns a self-referential bumpalo arena and cannot safely
implement the structural Update trait — instead we wrap in a ParsedArc
newtype whose Update impl uses Arc::ptr_eq. Every reparse produces a
new Arc, so pointer equality is a correct (if conservative) “changed”
signal: salsa never falsely backdates, and downstream queries re-run after
every input text change.
Structs§
- Parsed
Arc - Opaque handle to a parsed document. Cheap to clone (refcount bump); never
compared structurally. See module docs for the
Updatecontract.