Skip to main content

Diagnostics

Struct Diagnostics 

Source
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: ShapeCheckTally

What 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: ShapeCheckTally

The 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: MacroValueTally

Same-file -define value comparisons over macros the patch uses: compared, or withheld and why.

§indirect_call_checks: IndirectCallTally

What 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

Source

pub fn is_empty(&self) -> bool

Source

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.

Trait Implementations§

Source§

impl Clone for Diagnostics

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Diagnostics

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Diagnostics

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Diagnostics

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Diagnostics

Source§

impl PartialEq for Diagnostics

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for Diagnostics

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Diagnostics

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more