Skip to main content

Module parse

Module parse 

Source
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§

ParsedArc
Opaque handle to a parsed document. Cheap to clone (refcount bump); never compared structurally. See module docs for the Update contract.