pub struct CallIndirectSpec {
pub table_size: u32,
pub may_have_null_slot: bool,
pub heterogeneous_expected_type: Option<u32>,
}Expand description
Module facts that define the WASM-side call_indirect trap condition
(VCR-VER-002, #166): what the SPEC demands for the dispatched table, to be
checked against the guards the selector actually resolved into the
ArmOp::CallIndirect pseudo-op.
Fields§
§table_size: u32The dispatched table’s element count (compile-time, per #642).
may_have_null_slot: boolWhether the table may contain uninitialized (null) slots — if so, the lowering MUST carry the #664 null check.
heterogeneous_expected_type: Option<u32>Some(expected_type_id) when the table is heterogeneous and WASM’s
§4.4.8 type check must be discharged at RUNTIME (#676); None when
the closed-world verdict discharges it at compile time.
Trait Implementations§
Source§impl Clone for CallIndirectSpec
impl Clone for CallIndirectSpec
Source§fn clone(&self) -> CallIndirectSpec
fn clone(&self) -> CallIndirectSpec
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 Debug for CallIndirectSpec
impl Debug for CallIndirectSpec
impl Eq for CallIndirectSpec
Source§impl PartialEq for CallIndirectSpec
impl PartialEq for CallIndirectSpec
impl StructuralPartialEq for CallIndirectSpec
Auto Trait Implementations§
impl Freeze for CallIndirectSpec
impl RefUnwindSafe for CallIndirectSpec
impl Send for CallIndirectSpec
impl Sync for CallIndirectSpec
impl Unpin for CallIndirectSpec
impl UnsafeUnpin for CallIndirectSpec
impl UnwindSafe for CallIndirectSpec
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.