Expr

Enum Expr 

Source
pub enum Expr<'ast> {
Show 44 variants Assign { var: ExprId<'ast>, expr: ExprId<'ast>, span: Span, }, AssignRef { var: ExprId<'ast>, expr: ExprId<'ast>, span: Span, }, AssignOp { var: ExprId<'ast>, op: AssignOp, expr: ExprId<'ast>, span: Span, }, Binary { left: ExprId<'ast>, op: BinaryOp, right: ExprId<'ast>, span: Span, }, Unary { op: UnaryOp, expr: ExprId<'ast>, span: Span, }, Call { func: ExprId<'ast>, args: &'ast [Arg<'ast>], span: Span, }, Array { items: &'ast [ArrayItem<'ast>], span: Span, }, ArrayDimFetch { array: ExprId<'ast>, dim: Option<ExprId<'ast>>, span: Span, }, PropertyFetch { target: ExprId<'ast>, property: ExprId<'ast>, span: Span, }, MethodCall { target: ExprId<'ast>, method: ExprId<'ast>, args: &'ast [Arg<'ast>], span: Span, }, StaticCall { class: ExprId<'ast>, method: ExprId<'ast>, args: &'ast [Arg<'ast>], span: Span, }, ClassConstFetch { class: ExprId<'ast>, constant: ExprId<'ast>, span: Span, }, New { class: ExprId<'ast>, args: &'ast [Arg<'ast>], span: Span, }, Variable { name: Span, span: Span, }, IndirectVariable { name: ExprId<'ast>, span: Span, }, Integer { value: &'ast [u8], span: Span, }, Float { value: &'ast [u8], span: Span, }, Boolean { value: bool, span: Span, }, Null { span: Span, }, String { value: &'ast [u8], span: Span, }, InterpolatedString { parts: &'ast [ExprId<'ast>], span: Span, }, ShellExec { parts: &'ast [ExprId<'ast>], span: Span, }, Include { kind: IncludeKind, expr: ExprId<'ast>, span: Span, }, MagicConst { kind: MagicConstKind, span: Span, }, PostInc { var: ExprId<'ast>, span: Span, }, PostDec { var: ExprId<'ast>, span: Span, }, Ternary { condition: ExprId<'ast>, if_true: Option<ExprId<'ast>>, if_false: ExprId<'ast>, span: Span, }, Match { condition: ExprId<'ast>, arms: &'ast [MatchArm<'ast>], span: Span, }, AnonymousClass { attributes: &'ast [AttributeGroup<'ast>], modifiers: &'ast [Token], args: &'ast [Arg<'ast>], extends: Option<Name<'ast>>, implements: &'ast [Name<'ast>], members: &'ast [ClassMember<'ast>], span: Span, }, Print { expr: ExprId<'ast>, span: Span, }, Yield { key: Option<ExprId<'ast>>, value: Option<ExprId<'ast>>, from: bool, span: Span, }, Cast { kind: CastKind, expr: ExprId<'ast>, span: Span, }, Empty { expr: ExprId<'ast>, span: Span, }, Isset { vars: &'ast [ExprId<'ast>], span: Span, }, Eval { expr: ExprId<'ast>, span: Span, }, Die { expr: Option<ExprId<'ast>>, span: Span, }, Exit { expr: Option<ExprId<'ast>>, span: Span, }, Closure { attributes: &'ast [AttributeGroup<'ast>], is_static: bool, by_ref: bool, params: &'ast [Param<'ast>], uses: &'ast [ClosureUse<'ast>], return_type: Option<&'ast Type<'ast>>, body: &'ast [StmtId<'ast>], span: Span, }, ArrowFunction { attributes: &'ast [AttributeGroup<'ast>], is_static: bool, by_ref: bool, params: &'ast [Param<'ast>], return_type: Option<&'ast Type<'ast>>, expr: ExprId<'ast>, span: Span, }, Clone { expr: ExprId<'ast>, span: Span, }, NullsafePropertyFetch { target: ExprId<'ast>, property: ExprId<'ast>, span: Span, }, NullsafeMethodCall { target: ExprId<'ast>, method: ExprId<'ast>, args: &'ast [Arg<'ast>], span: Span, }, VariadicPlaceholder { span: Span, }, Error { span: Span, },
}

Variants§

§

Assign

Fields

§var: ExprId<'ast>
§expr: ExprId<'ast>
§span: Span
§

AssignRef

Fields

§var: ExprId<'ast>
§expr: ExprId<'ast>
§span: Span
§

AssignOp

Fields

§var: ExprId<'ast>
§expr: ExprId<'ast>
§span: Span
§

Binary

Fields

§left: ExprId<'ast>
§right: ExprId<'ast>
§span: Span
§

Unary

Fields

§expr: ExprId<'ast>
§span: Span
§

Call

Fields

§func: ExprId<'ast>
§args: &'ast [Arg<'ast>]
§span: Span
§

Array

Fields

§items: &'ast [ArrayItem<'ast>]
§span: Span
§

ArrayDimFetch

Fields

§array: ExprId<'ast>
§dim: Option<ExprId<'ast>>
§span: Span
§

PropertyFetch

Fields

§target: ExprId<'ast>
§property: ExprId<'ast>
§span: Span
§

MethodCall

Fields

§target: ExprId<'ast>
§method: ExprId<'ast>
§args: &'ast [Arg<'ast>]
§span: Span
§

StaticCall

Fields

§class: ExprId<'ast>
§method: ExprId<'ast>
§args: &'ast [Arg<'ast>]
§span: Span
§

ClassConstFetch

Fields

§class: ExprId<'ast>
§constant: ExprId<'ast>
§span: Span
§

New

Fields

§class: ExprId<'ast>
§args: &'ast [Arg<'ast>]
§span: Span
§

Variable

Fields

§name: Span
§span: Span
§

IndirectVariable

Fields

§name: ExprId<'ast>
§span: Span
§

Integer

Fields

§value: &'ast [u8]
§span: Span
§

Float

Fields

§value: &'ast [u8]
§span: Span
§

Boolean

Fields

§value: bool
§span: Span
§

Null

Fields

§span: Span
§

String

Fields

§value: &'ast [u8]
§span: Span
§

InterpolatedString

Fields

§parts: &'ast [ExprId<'ast>]
§span: Span
§

ShellExec

Fields

§parts: &'ast [ExprId<'ast>]
§span: Span
§

Include

Fields

§expr: ExprId<'ast>
§span: Span
§

MagicConst

Fields

§span: Span
§

PostInc

Fields

§var: ExprId<'ast>
§span: Span
§

PostDec

Fields

§var: ExprId<'ast>
§span: Span
§

Ternary

Fields

§condition: ExprId<'ast>
§if_true: Option<ExprId<'ast>>
§if_false: ExprId<'ast>
§span: Span
§

Match

Fields

§condition: ExprId<'ast>
§arms: &'ast [MatchArm<'ast>]
§span: Span
§

AnonymousClass

Fields

§attributes: &'ast [AttributeGroup<'ast>]
§modifiers: &'ast [Token]
§args: &'ast [Arg<'ast>]
§extends: Option<Name<'ast>>
§implements: &'ast [Name<'ast>]
§members: &'ast [ClassMember<'ast>]
§span: Span
§

Print

Fields

§expr: ExprId<'ast>
§span: Span
§

Yield

Fields

§key: Option<ExprId<'ast>>
§value: Option<ExprId<'ast>>
§from: bool
§span: Span
§

Cast

Fields

§expr: ExprId<'ast>
§span: Span
§

Empty

Fields

§expr: ExprId<'ast>
§span: Span
§

Isset

Fields

§vars: &'ast [ExprId<'ast>]
§span: Span
§

Eval

Fields

§expr: ExprId<'ast>
§span: Span
§

Die

Fields

§expr: Option<ExprId<'ast>>
§span: Span
§

Exit

Fields

§expr: Option<ExprId<'ast>>
§span: Span
§

Closure

Fields

§attributes: &'ast [AttributeGroup<'ast>]
§is_static: bool
§by_ref: bool
§params: &'ast [Param<'ast>]
§uses: &'ast [ClosureUse<'ast>]
§return_type: Option<&'ast Type<'ast>>
§body: &'ast [StmtId<'ast>]
§span: Span
§

ArrowFunction

Fields

§attributes: &'ast [AttributeGroup<'ast>]
§is_static: bool
§by_ref: bool
§params: &'ast [Param<'ast>]
§return_type: Option<&'ast Type<'ast>>
§expr: ExprId<'ast>
§span: Span
§

Clone

Fields

§expr: ExprId<'ast>
§span: Span
§

NullsafePropertyFetch

Fields

§target: ExprId<'ast>
§property: ExprId<'ast>
§span: Span
§

NullsafeMethodCall

Fields

§target: ExprId<'ast>
§method: ExprId<'ast>
§args: &'ast [Arg<'ast>]
§span: Span
§

VariadicPlaceholder

Fields

§span: Span
§

Error

Fields

§span: Span

Implementations§

Source§

impl<'ast> Expr<'ast>

Source

pub fn span(&self) -> Span

Trait Implementations§

Source§

impl<'ast> Debug for Expr<'ast>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'ast> Serialize for Expr<'ast>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<'ast> Freeze for Expr<'ast>

§

impl<'ast> RefUnwindSafe for Expr<'ast>

§

impl<'ast> Send for Expr<'ast>

§

impl<'ast> Sync for Expr<'ast>

§

impl<'ast> Unpin for Expr<'ast>

§

impl<'ast> UnwindSafe for Expr<'ast>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.