pub struct RefinedTypeInterval {
pub type_id: TypeId,
pub name: String,
pub interval: Interval,
pub interval_known: bool,
pub ops: Vec<(String, OpClass)>,
}Expand description
Per-refined-type interval analysis result.
Fields§
§type_id: TypeIdOpaque type identity — the same key the type carries in
ProofIR.refined_types, so two same-named types in different
modules stay distinct.
name: StringSource-level type name (for diagnostics only; not a key).
interval: IntervalThe derived constant interval over-approximating the invariant.
Interval::unbounded() when the shape was unrecognized.
interval_known: booltrue when interval_of_invariant recognized the invariant
shape and the interval is a real (non-trivial) enclosure;
false when it declined (the interval is unbounded()).
ops: Vec<(String, OpClass)>Per-op classification, in module-walk order. Each entry pairs
the operation’s source name with its OpClass.
Implementations§
Source§impl RefinedTypeInterval
impl RefinedTypeInterval
Sourcepub fn raw_i64_eligible(&self) -> bool
pub fn raw_i64_eligible(&self) -> bool
Whether this type may have a raw i64 carrier — the diagnostic
mirror of the persisted-fact gate on RefinedTypeDecl. Delegates
to the shared raw_i64_eligible so the two paths agree by
construction. The persisted decl stores interval: None for a
declined invariant, so this passes Some(self.interval) only when
interval_known to match that exact representation.
Trait Implementations§
Source§impl Clone for RefinedTypeInterval
impl Clone for RefinedTypeInterval
Source§fn clone(&self) -> RefinedTypeInterval
fn clone(&self) -> RefinedTypeInterval
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more