pub enum JavaExpr {
Show 15 variants
Lit(JavaLit),
Var(String),
BinOp(String, Box<JavaExpr>, Box<JavaExpr>),
UnaryOp(String, Box<JavaExpr>),
Call(Box<JavaExpr>, Vec<JavaExpr>),
MethodCall(Box<JavaExpr>, String, Vec<JavaExpr>),
New(String, Vec<JavaExpr>),
Cast(JavaType, Box<JavaExpr>),
Instanceof(Box<JavaExpr>, String),
Ternary(Box<JavaExpr>, Box<JavaExpr>, Box<JavaExpr>),
Null,
Lambda(Vec<String>, Box<JavaExpr>),
MethodRef(String, String),
ArrayAccess(Box<JavaExpr>, Box<JavaExpr>),
FieldAccess(Box<JavaExpr>, String),
}Expand description
Java expression AST.
Variants§
Lit(JavaLit)
Literal value: 42, "hello", null
Var(String)
Variable or identifier: x, MyClass
BinOp(String, Box<JavaExpr>, Box<JavaExpr>)
Binary operation: a + b
UnaryOp(String, Box<JavaExpr>)
Unary operation: !x, -n
Call(Box<JavaExpr>, Vec<JavaExpr>)
Static or free function call: f(a, b)
MethodCall(Box<JavaExpr>, String, Vec<JavaExpr>)
Instance method call: obj.method(args...)
New(String, Vec<JavaExpr>)
Object instantiation: new Foo(args...)
Cast(JavaType, Box<JavaExpr>)
Cast: (Type) expr
Instanceof(Box<JavaExpr>, String)
Instanceof check: expr instanceof Type
Ternary(Box<JavaExpr>, Box<JavaExpr>, Box<JavaExpr>)
Ternary: cond ? then : else
Null
Null literal (convenience variant)
Lambda(Vec<String>, Box<JavaExpr>)
Lambda expression: (x, y) -> expr
MethodRef(String, String)
Method reference: Class::method
ArrayAccess(Box<JavaExpr>, Box<JavaExpr>)
Array access: arr[idx]
FieldAccess(Box<JavaExpr>, String)
Field access: obj.field
Trait Implementations§
impl StructuralPartialEq for JavaExpr
Auto Trait Implementations§
impl Freeze for JavaExpr
impl RefUnwindSafe for JavaExpr
impl Send for JavaExpr
impl Sync for JavaExpr
impl Unpin for JavaExpr
impl UnsafeUnpin for JavaExpr
impl UnwindSafe for JavaExpr
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