Skip to main content

Module graph_support

Module graph_support 

Source
Expand description

The analyzer-resident products Ruby’s language logic resolves through.

RubyAnalyzer owns three moka caches, nine Arc<OnceLock<..>> cells and one PoolSafeMemo; every one of them stays in brokk-bifrost-analysis because IAnalyzer::update/update_all rebuild the analyzer wholesale through Self::from_inner. What crosses the crate line is the decision that fills each cell – the builders in crate::imports, crate::mixins and crate::hierarchy – plus this trait, which is how a free function reaches back for a memoized product without naming the analyzer type.

Two members are load-bearing beyond their signature:

  • RubySource::forward_owner_relation_facts is the one accessor with no landed precedent. Its body reads TreeSitterAnalyzer::fetch_file_state, whose Arc<FileState> is crate-private to analysis, so it stays there and hands the decoded facts across (the Py-2 collect_bounded precedent).
  • RubySource::all_files is TreeSitterAnalyzer::all_files, i.e. the analyzed live file set. CodeUnitIndex::analyzed_files is a different query, so this is spelled out rather than inferred from the supertrait.

Structs§

RubySemanticFacts
The workspace-wide ancestry and mixin projection every proven method or constant resolution reads. Populated only for a target-scoped scan; the target-free lookup path resolves the same questions forward, per owner.

Traits§

RubySource

Functions§

build_ruby_semantic_facts