Skip to main content

compute_file_semantic_digest

Function compute_file_semantic_digest 

Source
pub fn compute_file_semantic_digest(
    scaffold_hash: ContentHash,
    symbols: &[SymbolEntry],
    scopes: &[ScopeEntry],
    imports: &[ImportEntry],
    occurrences: &[OccurrenceEntry],
) -> ContentHash
Expand description

Compute a file node’s semantic_digest over its scaffold and canonical source-local facts. Spans are deliberately excluded from this identity.

Canonical layout hd-sem-file-v3: scaffold_hash, then per symbol u32-LE(container element count) ‖ (u32-LE-len ‖ bytes)* ‖ u32-LE(name len) ‖ name ‖ kind_tag ‖ semantic_hash. Every variable-length field is length-framed (no record-boundary ambiguity; ["a::b"] no longer aliases ["a","b"]). Scope, import, and occurrence records use count-framed fields and stable one-byte enum tags. All spans are EXCLUDED.