Enum syntax::ast::Expr_Unstable [-] [+] [src]

pub enum Expr_ {
    ExprBox(Option<P<Expr>>, P<Expr>),
    ExprVec(Vec<P<Expr>>),
    ExprCall(P<Expr>, Vec<P<Expr>>),
    ExprMethodCall(SpannedIdent, Vec<P<Ty>>, Vec<P<Expr>>),
    ExprTup(Vec<P<Expr>>),
    ExprBinary(BinOp, P<Expr>, P<Expr>),
    ExprUnary(UnOp, P<Expr>),
    ExprLit(P<Lit>),
    ExprCast(P<Expr>, P<Ty>),
    ExprIf(P<Expr>, P<Block>, Option<P<Expr>>),
    ExprIfLet(P<Pat>, P<Expr>, P<Block>, Option<P<Expr>>),
    ExprWhile(P<Expr>, P<Block>, Option<Ident>),
    ExprWhileLet(P<Pat>, P<Expr>, P<Block>, Option<Ident>),
    ExprForLoop(P<Pat>, P<Expr>, P<Block>, Option<Ident>),
    ExprLoop(P<Block>, Option<Ident>),
    ExprMatch(P<Expr>, Vec<Arm>, MatchSource),
    ExprClosure(CaptureClause, P<FnDecl>, P<Block>),
    ExprBlock(P<Block>),
    ExprAssign(P<Expr>, P<Expr>),
    ExprAssignOp(BinOp, P<Expr>, P<Expr>),
    ExprField(P<Expr>, SpannedIdent),
    ExprTupField(P<Expr>, Spanned<usize>),
    ExprIndex(P<Expr>, P<Expr>),
    ExprRange(Option<P<Expr>>, Option<P<Expr>>),
    ExprPath(Path),
    ExprQPath(P<QPath>),
    ExprAddrOf(Mutability, P<Expr>),
    ExprBreak(Option<Ident>),
    ExprAgain(Option<Ident>),
    ExprRet(Option<P<Expr>>),
    ExprInlineAsm(InlineAsm),
    ExprMac(Mac),
    ExprStruct(Path, Vec<Field>, Option<P<Expr>>),
    ExprRepeat(P<Expr>, P<Expr>),
    ExprParen(P<Expr>),
}

Variants

ExprBox

First expr is the place; second expr is the value.

ExprVec
ExprCall
ExprMethodCall
ExprTup
ExprBinary
ExprUnary
ExprLit
ExprCast
ExprIf
ExprIfLet
ExprWhile
ExprWhileLet
ExprForLoop
ExprLoop
ExprMatch
ExprClosure
ExprBlock
ExprAssign
ExprAssignOp
ExprField
ExprTupField
ExprIndex
ExprRange
ExprPath

Variable reference, possibly containing :: and/or type parameters, e.g. foo::bar::

ExprQPath

A "qualified path", e.g. <Vec<T> as SomeTrait>::SomeType

ExprAddrOf
ExprBreak
ExprAgain
ExprRet
ExprInlineAsm
ExprMac
ExprStruct

A struct literal expression.

ExprRepeat

A vector literal constructed from one repeated element.

ExprParen

No-op: used solely so we can pretty-print faithfully

Trait Implementations

Derived Implementations

impl Debug for Expr_

fn fmt(&self, __arg_0: &mut Formatter) -> Result

impl Hash for Expr_

fn hash<__H: Hasher>(&self, __arg_0: &mut __H)

fn hash_slice<H>(data: &[Self], state: &mut H) where H: Hasher

impl Decodable for Expr_

fn decode<__D: Decoder>(__arg_0: &mut __D) -> Result<Expr_, Error>

impl Encodable for Expr_

fn encode<__S: Encoder>(&self, __arg_0: &mut __S) -> Result<(), Error>

impl Eq for Expr_

fn assert_receiver_is_total_eq(&self)

impl PartialEq for Expr_

fn eq(&self, __arg_0: &Expr_) -> bool

fn ne(&self, __arg_0: &Expr_) -> bool

impl Clone for Expr_

fn clone(&self) -> Expr_

fn clone_from(&mut self, source: &Self)