pub struct Diagnostics {Show 16 fields
pub untracked_calls: BTreeMap<ModuleName, usize>,
pub untracked_records: BTreeMap<RecordName, usize>,
pub context_refs_missing: BTreeMap<ModuleName, usize>,
pub unattributed_paths: BTreeMap<String, usize>,
pub unanalyzed: Unanalyzed,
pub suggested_suites: Vec<String>,
pub missing_test_modules: BTreeMap<RelativePath, BTreeMap<ModuleName, usize>>,
pub already_present: Option<AlreadyPresent>,
pub already_present_skipped: Option<AlreadyPresentSkipped>,
pub dep_pin_divergence: Vec<DepPinDivergence>,
pub pin_bumps: Vec<PinBump>,
pub qualified_call_shape_checks: ShapeCheckTally,
pub local_call_shape_checks: ShapeCheckTally,
pub macro_value_checks: MacroValueTally,
pub indirect_call_checks: IndirectCallTally,
pub dormant_detectors: Vec<DormantDetector>,
}Expand description
Series-wide diagnostic envelope. Strictly separate from Verdict
so untracked-call signals never leak into machine-readable verdicts.
Fields§
§untracked_calls: BTreeMap<ModuleName, usize>§untracked_records: BTreeMap<RecordName, usize>§context_refs_missing: BTreeMap<ModuleName, usize>In-scope references on context lines that do not resolve at some pin, per module. Pre-existing target facts: never reasons.
unattributed_paths: BTreeMap<String, usize>Touched paths no configured project owns, tallied by their
first two path components. The evidence behind an
Inapplicable { Untracked } verdict.
unanalyzed: Unanalyzed§suggested_suites: Vec<String>SUITE names worth running for the patch, derived from touched paths.
Populated even when the verdict promotes to Inapplicable so that
schema-only and config-only diffs still surface relevant suites.
missing_test_modules: BTreeMap<RelativePath, BTreeMap<ModuleName, usize>>Per-_SUITE.erl map of helper_module -> call_site_count. The
always-on diagnostic form of
Reason::TestModuleSymbolMissing: emitted by the parse pass
even without a target tree (which is why the inner key is the
ModuleName rather than a resolved-or-not bit). When
--target-repo-dir-path is supplied the resolver re-checks this
map and promotes the absent ones to typed reasons. The nested
BTreeMap shape keeps the JSON envelope serialisable without
a custom composite-key encoder.
already_present: Option<AlreadyPresent>Advisory: the patch’s content appears to already exist on the target (tier-1 identical patch, tier-2 content tally, or both).
already_present_skipped: Option<AlreadyPresentSkipped>Why already-present detection was skipped, when it was.
dep_pin_divergence: Vec<DepPinDivergence>Dep pins that diverge between source and target trees and are reachable from the apps this patch touches.
pin_bumps: Vec<PinBump>Dep pins this patch itself changes or introduces in the root
rabbitmq-components.mk.
qualified_call_shape_checks: ShapeCheckTallyWhat the live qualified-call gate’s return-shape check did with each first-party resolved call: compared, or withheld and why.
local_call_shape_checks: ShapeCheckTallyThe same tally for local calls: resolved unqualified calls, compared or withheld. Kept apart from the qualified tally so one axis’s coverage never reads as the other’s.
macro_value_checks: MacroValueTallySame-file -define value comparisons over macros the patch
uses: compared, or withheld and why.
indirect_call_checks: IndirectCallTallyWhat the indirect-reference check (meck expectations and rpc forms) did with each recognized occurrence: resolved against the target module, or seen with an unreadable arity and withheld.
dormant_detectors: Vec<DormantDetector>Family-declared detectors that did not run this evaluation, with the input whose absence disabled each. Gated on the family actually declaring the relevant vocabulary, so a generic project’s runs carry an empty list. Silence must be distinguishable from absence of findings.
Implementations§
Source§impl Diagnostics
impl Diagnostics
pub fn is_empty(&self) -> bool
Sourcepub fn record_missing_test_module(
&mut self,
suite: RelativePath,
helper: ModuleName,
)
pub fn record_missing_test_module( &mut self, suite: RelativePath, helper: ModuleName, )
Record that suite references helper; bumps the call-site
counter. Convenience for the parse pass.