pub enum ScalaExpr {
Show 17 variants
Lit(ScalaLit),
Var(String),
App(Box<ScalaExpr>, Vec<ScalaExpr>),
Infix(Box<ScalaExpr>, String, Box<ScalaExpr>),
Prefix(String, Box<ScalaExpr>),
If(Box<ScalaExpr>, Box<ScalaExpr>, Box<ScalaExpr>),
Match(Box<ScalaExpr>, Vec<ScalaCaseClause>),
For(Vec<ScalaEnumerator>, Box<ScalaExpr>),
Try(Box<ScalaExpr>, Vec<ScalaCatch>, Option<Box<ScalaExpr>>),
Lambda(Vec<String>, Box<ScalaExpr>),
Block(Vec<ScalaExpr>, Box<ScalaExpr>),
New(String, Vec<ScalaExpr>),
This,
Super,
Assign(String, Box<ScalaExpr>),
TypeAnnotation(Box<ScalaExpr>, ScalaType),
Throw(Box<ScalaExpr>),
}Expand description
Scala expression AST.
Variants§
Lit(ScalaLit)
Literal value
Var(String)
Variable reference: foo
App(Box<ScalaExpr>, Vec<ScalaExpr>)
Method call / application: f(a, b) or obj.method(args)
Infix(Box<ScalaExpr>, String, Box<ScalaExpr>)
Infix operator: a + b
Prefix(String, Box<ScalaExpr>)
Prefix operator: !x, -x
If(Box<ScalaExpr>, Box<ScalaExpr>, Box<ScalaExpr>)
If-else expression
Match(Box<ScalaExpr>, Vec<ScalaCaseClause>)
Match expression
For(Vec<ScalaEnumerator>, Box<ScalaExpr>)
For comprehension / for-yield
Try(Box<ScalaExpr>, Vec<ScalaCatch>, Option<Box<ScalaExpr>>)
Try-catch-finally
Lambda(Vec<String>, Box<ScalaExpr>)
Lambda: x => body or (x, y) => body
Block(Vec<ScalaExpr>, Box<ScalaExpr>)
Block: { stmts; expr }
New(String, Vec<ScalaExpr>)
new ClassName(args)
This
this
Super
super
Assign(String, Box<ScalaExpr>)
Assignment: x = expr
TypeAnnotation(Box<ScalaExpr>, ScalaType)
Type ascription: expr: Type
Throw(Box<ScalaExpr>)
Throw expression: throw new Exception(...)
Trait Implementations§
impl StructuralPartialEq for ScalaExpr
Auto Trait Implementations§
impl Freeze for ScalaExpr
impl RefUnwindSafe for ScalaExpr
impl Send for ScalaExpr
impl Sync for ScalaExpr
impl Unpin for ScalaExpr
impl UnsafeUnpin for ScalaExpr
impl UnwindSafe for ScalaExpr
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