pub struct IfExpr {
pub cond: Box<Expr>,
pub then_block: BlockExpr,
pub else_block: Option<BlockExpr>,
pub span: Span,
pub is_comptime: bool,
}Expand description
An if expression.
Fields§
§cond: Box<Expr>Condition (must be bool)
then_block: BlockExprThen branch
else_block: Option<BlockExpr>Optional else branch
span: Span§is_comptime: boolADR-0079 follow-up: comptime if cond { … } else { … } — sema
evaluates cond at comptime and emits only the chosen
branch’s runtime AIR, never analyzing the discarded one.
Lets the prelude derive Clone / derive Copy dispatch on
@type_info(Self).kind without forcing the unused branch to
type-check against the host type.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for IfExpr
impl<'de> Deserialize<'de> for IfExpr
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for IfExpr
impl StructuralPartialEq for IfExpr
Auto Trait Implementations§
impl Freeze for IfExpr
impl RefUnwindSafe for IfExpr
impl Send for IfExpr
impl Sync for IfExpr
impl Unpin for IfExpr
impl UnsafeUnpin for IfExpr
impl UnwindSafe for IfExpr
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
impl<'src, T> IntoMaybe<'src, T> for Twhere
T: 'src,
§impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
impl<'p, T> Seq<'p, T> for Twhere
T: Clone,
§type Iter<'a> = Once<&'a T>
where
T: 'a
type Iter<'a> = Once<&'a T> where T: 'a
An iterator over the items within this container, by reference.
§fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
fn contains(&self, val: &T) -> boolwhere
T: PartialEq,
Check whether an item is contained within this sequence.
§fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
fn to_maybe_ref<'b>(item: <T as Seq<'p, T>>::Item<'b>) -> Maybe<T, &'p T>where
'p: 'b,
Convert an item of the sequence into a [
MaybeRef].