pub struct LoweredBlock {
pub id: LoweredBlockId,
pub params: Vec<(LoweredValueId, LoweredType)>,
pub ops: Vec<LoweredOp>,
}Expand description
One basic block in a LoweredFunction.
Fields§
§id: LoweredBlockIdBlock identifier.
params: Vec<(LoweredValueId, LoweredType)>Block parameters: (value_id, type) pairs. Entry-block params come
from the function signature.
ops: Vec<LoweredOp>Operations in order. The last op must be a terminator (see
LoweredOp::is_terminator).
Implementations§
Source§impl LoweredBlock
impl LoweredBlock
Sourcepub fn new(id: LoweredBlockId) -> Self
pub fn new(id: LoweredBlockId) -> Self
Construct an empty block with the given id.
Sourcepub fn is_well_formed(&self) -> bool
pub fn is_well_formed(&self) -> bool
True if the block ends in a terminator op.
Trait Implementations§
Source§impl Clone for LoweredBlock
impl Clone for LoweredBlock
Source§fn clone(&self) -> LoweredBlock
fn clone(&self) -> LoweredBlock
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 LoweredBlock
impl Debug for LoweredBlock
Source§impl PartialEq for LoweredBlock
impl PartialEq for LoweredBlock
Source§fn eq(&self, other: &LoweredBlock) -> bool
fn eq(&self, other: &LoweredBlock) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for LoweredBlock
Auto Trait Implementations§
impl Freeze for LoweredBlock
impl RefUnwindSafe for LoweredBlock
impl Send for LoweredBlock
impl Sync for LoweredBlock
impl Unpin for LoweredBlock
impl UnsafeUnpin for LoweredBlock
impl UnwindSafe for LoweredBlock
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<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more