pub struct BodyWidths<W> {
pub widths: HashMap<LocalVarId, W>,
pub unsized_locals: Vec<LocalVarId>,
}Expand description
The widths of one p-code body, and the locals that have none.
Fields§
§widths: HashMap<LocalVarId, W>Resolved widths, keyed by the body’s own local ids.
unsized_locals: Vec<LocalVarId>Locals the body uses but no width could be resolved for, in id order.
In a symbolic domain these are unsizable by any decode — nothing a producer substitutes can give them a width — so they are a defect in the body rather than a limitation of this pass.
Implementations§
Source§impl<W> BodyWidths<W>
impl<W> BodyWidths<W>
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Whether every local the body uses has a width.
Trait Implementations§
Source§impl<W: Clone> Clone for BodyWidths<W>
impl<W: Clone> Clone for BodyWidths<W>
Source§fn clone(&self) -> BodyWidths<W>
fn clone(&self) -> BodyWidths<W>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<W: Debug> Debug for BodyWidths<W>
impl<W: Debug> Debug for BodyWidths<W>
Source§impl<W: Default> Default for BodyWidths<W>
impl<W: Default> Default for BodyWidths<W>
Source§fn default() -> BodyWidths<W>
fn default() -> BodyWidths<W>
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl<W> Freeze for BodyWidths<W>
impl<W> RefUnwindSafe for BodyWidths<W>
impl<W> Send for BodyWidths<W>
impl<W> Sync for BodyWidths<W>
impl<W> Unpin for BodyWidths<W>
impl<W> UnsafeUnpin for BodyWidths<W>
impl<W> UnwindSafe for BodyWidths<W>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more