Skip to main content

SLTNodeFacts

Struct SLTNodeFacts 

Source
pub struct SLTNodeFacts<'arena, A: Hash + Eq + Clone> { /* private fields */ }
Expand description

Width facts for every node in an SLTNodeArena.

Construction verifies the complete dependency graph before computing any widths. The implementation is iterative so malformed cycles and very deep expression graphs cannot overflow the Rust call stack.

Implementations§

Source§

impl<'arena, A> SLTNodeFacts<'arena, A>
where A: Hash + Eq + Clone,

Source

pub fn verify(arena: &'arena SLTNodeArena<A>) -> Result<Self, SLTNodeFactsError>

Verify arena and compute one width for every node.

Source

pub fn width(&self, node: NodeId) -> Option<usize>

Return the verified width of node, or None when the ID does not belong to the arena from which this table was built.

Source

pub fn require_width( &self, node: NodeId, role: &'static str, ) -> Result<usize, SLTNodeFactsError>

Return a verified root width, diagnosing a root that does not belong to the arena instead of allowing a later unchecked lookup to panic.

Source

pub fn require_lowerable( &self, node: NodeId, role: &'static str, ) -> Result<usize, SLTNodeFactsError>

Require a root and every node reachable from it to be lowerable to nonzero-width executable IR.

Trait Implementations§

Source§

impl<A: Hash + Eq + Clone> Debug for SLTNodeFacts<'_, A>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'arena, A> Freeze for SLTNodeFacts<'arena, A>
where &'arena SLTNodeArena<A>: Freeze,

§

impl<'arena, A> RefUnwindSafe for SLTNodeFacts<'arena, A>
where &'arena SLTNodeArena<A>: RefUnwindSafe,

§

impl<'arena, A> Send for SLTNodeFacts<'arena, A>
where &'arena SLTNodeArena<A>: Send,

§

impl<'arena, A> Sync for SLTNodeFacts<'arena, A>
where &'arena SLTNodeArena<A>: Sync,

§

impl<'arena, A> Unpin for SLTNodeFacts<'arena, A>
where &'arena SLTNodeArena<A>: Unpin,

§

impl<'arena, A> UnsafeUnpin for SLTNodeFacts<'arena, A>
where &'arena SLTNodeArena<A>: UnsafeUnpin,

§

impl<'arena, A> UnwindSafe for SLTNodeFacts<'arena, A>
where &'arena SLTNodeArena<A>: UnwindSafe,

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> 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, 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, <T as TryFrom<U>>::Error>

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