#[repr(C)]pub struct ArrowFunctionExpression<'a> {
pub span: Span,
pub type_parameters: Option<Box<'a, TSTypeParameterDeclaration<'a>>>,
pub params: Box<'a, FormalParameters<'a>>,
pub return_type: Option<Box<'a, TSTypeAnnotation<'a>>>,
pub body: Box<'a, FunctionBody<'a>>,
pub scope_id: Cell<Option<ScopeId>>,
pub expression: bool,
pub async: bool,
pub pure: bool,
pub pife: bool,
}Expand description
Arrow Function Definitions
Fields§
§span: Span§type_parameters: Option<Box<'a, TSTypeParameterDeclaration<'a>>>§params: Box<'a, FormalParameters<'a>>§return_type: Option<Box<'a, TSTypeAnnotation<'a>>>§body: Box<'a, FunctionBody<'a>>See expression for whether this arrow expression returns an expression.
scope_id: Cell<Option<ScopeId>>§expression: boolIs the function body an arrow expression? i.e. () => expr instead of () => {}
async: bool§pure: booltrue if the function is marked with a /*#__NO_SIDE_EFFECTS__*/ comment
pife: booltrue if the function should be marked as “Possibly-Invoked Function Expression” (PIFE).
References:
- v8 blog post about PIFEs: https://v8.dev/blog/preparser#pife
- introduced PR: https://github.com/oxc-project/oxc/pull/12353
Implementations§
Source§impl<'a> ArrowFunctionExpression<'a>
impl<'a> ArrowFunctionExpression<'a>
Sourcepub fn get_expression(&self) -> Option<&Expression<'a>>
pub fn get_expression(&self) -> Option<&Expression<'a>>
Get expression part of ArrowFunctionExpression: () => expression_part.
Sourcepub fn get_expression_mut(&mut self) -> Option<&mut Expression<'a>>
pub fn get_expression_mut(&mut self) -> Option<&mut Expression<'a>>
Get expression part of ArrowFunctionExpression: () => expression_part.
Sourcepub fn has_use_strict_directive(&self) -> bool
pub fn has_use_strict_directive(&self) -> bool
Returns true if this arrow function’s body has a "use strict" directive.
Source§impl ArrowFunctionExpression<'_>
impl ArrowFunctionExpression<'_>
Sourcepub fn scope_id(&self) -> ScopeId
pub fn scope_id(&self) -> ScopeId
Get ScopeId of ArrowFunctionExpression.
Only use this method on a post-semantic AST where ScopeIds are always defined.
§Panics
Panics if scope_id is None.
Sourcepub fn set_scope_id(&self, scope_id: ScopeId)
pub fn set_scope_id(&self, scope_id: ScopeId)
Set ScopeId of ArrowFunctionExpression.
Trait Implementations§
Source§impl<'new_alloc> CloneIn<'new_alloc> for ArrowFunctionExpression<'_>
impl<'new_alloc> CloneIn<'new_alloc> for ArrowFunctionExpression<'_>
Source§type Cloned = ArrowFunctionExpression<'new_alloc>
type Cloned = ArrowFunctionExpression<'new_alloc>
Source§fn clone_in(
&self,
allocator: &'new_alloc Allocator,
) -> <ArrowFunctionExpression<'_> as CloneIn<'new_alloc>>::Cloned
fn clone_in( &self, allocator: &'new_alloc Allocator, ) -> <ArrowFunctionExpression<'_> as CloneIn<'new_alloc>>::Cloned
self into the given allocator. allocator may be the same one
that self is already in.Source§fn clone_in_with_semantic_ids(
&self,
allocator: &'new_alloc Allocator,
) -> <ArrowFunctionExpression<'_> as CloneIn<'new_alloc>>::Cloned
fn clone_in_with_semantic_ids( &self, allocator: &'new_alloc Allocator, ) -> <ArrowFunctionExpression<'_> as CloneIn<'new_alloc>>::Cloned
clone_in, but for some special type, it will also clone the semantic ids.
Please use this method only if you make sure semantic info is synced with the ast node.Source§impl ContentEq for ArrowFunctionExpression<'_>
impl ContentEq for ArrowFunctionExpression<'_>
Source§fn content_eq(&self, other: &ArrowFunctionExpression<'_>) -> bool
fn content_eq(&self, other: &ArrowFunctionExpression<'_>) -> bool
self and other to be equal.Source§fn content_ne(&self, other: &Self) -> bool
fn content_ne(&self, other: &Self) -> bool
self and other not to be equal.
The default implementation is almost always
sufficient, and should not be overridden without very good reason.Source§impl<'a> Debug for ArrowFunctionExpression<'a>
impl<'a> Debug for ArrowFunctionExpression<'a>
Source§impl<'a> Dummy<'a> for ArrowFunctionExpression<'a>
impl<'a> Dummy<'a> for ArrowFunctionExpression<'a>
Source§fn dummy(allocator: &'a Allocator) -> ArrowFunctionExpression<'a>
fn dummy(allocator: &'a Allocator) -> ArrowFunctionExpression<'a>
Create a dummy ArrowFunctionExpression.
Has cost of making 2 allocations (104 bytes).
Source§impl GenExpr for ArrowFunctionExpression<'_>
impl GenExpr for ArrowFunctionExpression<'_>
Source§fn gen_expr(&self, p: &mut Codegen<'_>, precedence: Precedence, ctx: Context)
fn gen_expr(&self, p: &mut Codegen<'_>, precedence: Precedence, ctx: Context)
Source§fn print_expr(&self, p: &mut Codegen<'_>, precedence: Precedence, ctx: Context)
fn print_expr(&self, p: &mut Codegen<'_>, precedence: Precedence, ctx: Context)
gen_expr.Source§impl GetSpan for ArrowFunctionExpression<'_>
impl GetSpan for ArrowFunctionExpression<'_>
Source§impl GetSpanMut for ArrowFunctionExpression<'_>
impl GetSpanMut for ArrowFunctionExpression<'_>
Source§impl<'a> TakeIn<'a> for ArrowFunctionExpression<'a>
impl<'a> TakeIn<'a> for ArrowFunctionExpression<'a>
Source§fn take_in<A>(&mut self, allocator_accessor: A) -> Selfwhere
A: AllocatorAccessor<'a>,
fn take_in<A>(&mut self, allocator_accessor: A) -> Selfwhere
A: AllocatorAccessor<'a>,
Source§fn take_in_box<A>(&mut self, allocator_accessor: A) -> Box<'a, Self>where
A: AllocatorAccessor<'a>,
fn take_in_box<A>(&mut self, allocator_accessor: A) -> Box<'a, Self>where
A: AllocatorAccessor<'a>,
Source§impl UnstableAddress for ArrowFunctionExpression<'_>
impl UnstableAddress for ArrowFunctionExpression<'_>
Auto Trait Implementations§
impl<'a> !Freeze for ArrowFunctionExpression<'a>
impl<'a> !RefUnwindSafe for ArrowFunctionExpression<'a>
impl<'a> !Send for ArrowFunctionExpression<'a>
impl<'a> !Sync for ArrowFunctionExpression<'a>
impl<'a> Unpin for ArrowFunctionExpression<'a>
impl<'a> !UnwindSafe for ArrowFunctionExpression<'a>
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more