#[repr(C)]pub struct CallExpression<'a> {
pub span: Span,
pub callee: Expression<'a>,
pub type_arguments: Option<Box<'a, TSTypeParameterInstantiation<'a>>>,
pub arguments: Vec<'a, Argument<'a>>,
pub optional: bool,
pub pure: bool,
}Expand description
foo() in function foo() { return 1; }; foo();
Represents a call expression, which can include a callee and arguments.
§Examples
// ___ callee
const x = foo(1, 2)
// ^^^^ arguments
const y = foo.bar?.(1, 2)
// ^ optional
const z = foo<number, string>(1, 2)
// ^^^^^^^^^^^^^^ type_argumentsFields§
§span: Span§callee: Expression<'a>§type_arguments: Option<Box<'a, TSTypeParameterInstantiation<'a>>>§arguments: Vec<'a, Argument<'a>>§optional: bool§pure: booltrue if the call expression is marked with a /* @__PURE__ */ comment
Implementations§
Source§impl CallExpression<'_>
impl CallExpression<'_>
Sourcepub fn callee_name(&self) -> Option<&str>
pub fn callee_name(&self) -> Option<&str>
Returns the static name of the callee, if it has one, or None otherwise.
Sourcepub fn is_require_call(&self) -> bool
pub fn is_require_call(&self) -> bool
Returns true if this CallExpression matches one of these patterns:
require('string')
require(`string`)
require(`foo${bar}qux`) // Any number of expressions and quasisSourcepub fn is_symbol_or_symbol_for_call(&self) -> bool
pub fn is_symbol_or_symbol_for_call(&self) -> bool
Returns true if this CallExpression is a call to Symbol
or Symbol.for.
Sourcepub fn common_js_require(&self) -> Option<&StringLiteral<'_>>
pub fn common_js_require(&self) -> Option<&StringLiteral<'_>>
Returns true if this looks like a call to require in CommonJS (has a single string argument):
require('string') // => true
require('string', 'string') // => false
require() // => false
require(123) // => falseSourcepub fn arguments_span(&self) -> Option<Span>
pub fn arguments_span(&self) -> Option<Span>
Returns the span covering all arguments in this call expression.
The span starts at the beginning of the first argument and ends at the end of the last argument (inclusive).
§Examples
foo(bar, baz);
// ^^^^^^^^ <- arguments_span() covers this rangeIf the call expression has no arguments, None is returned.
Trait Implementations§
Source§impl<'new_alloc> CloneIn<'new_alloc> for CallExpression<'_>
impl<'new_alloc> CloneIn<'new_alloc> for CallExpression<'_>
Source§type Cloned = CallExpression<'new_alloc>
type Cloned = CallExpression<'new_alloc>
Source§fn clone_in(
&self,
allocator: &'new_alloc Allocator,
) -> <CallExpression<'_> as CloneIn<'new_alloc>>::Cloned
fn clone_in( &self, allocator: &'new_alloc Allocator, ) -> <CallExpression<'_> 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,
) -> <CallExpression<'_> as CloneIn<'new_alloc>>::Cloned
fn clone_in_with_semantic_ids( &self, allocator: &'new_alloc Allocator, ) -> <CallExpression<'_> 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<'a> ConstantEvaluation<'a> for CallExpression<'a>
impl<'a> ConstantEvaluation<'a> for CallExpression<'a>
Source§fn evaluate_value_to(
&self,
ctx: &impl ConstantEvaluationCtx<'a>,
_target_ty: Option<ValueType>,
) -> Option<ConstantValue<'a>>
fn evaluate_value_to( &self, ctx: &impl ConstantEvaluationCtx<'a>, _target_ty: Option<ValueType>, ) -> Option<ConstantValue<'a>>
Source§fn evaluate_value(
&self,
ctx: &impl ConstantEvaluationCtx<'a>,
) -> Option<ConstantValue<'a>>
fn evaluate_value( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<ConstantValue<'a>>
Source§fn evaluate_value_to_number(
&self,
ctx: &impl ConstantEvaluationCtx<'a>,
) -> Option<f64>
fn evaluate_value_to_number( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<f64>
Source§fn evaluate_value_to_bigint(
&self,
ctx: &impl ConstantEvaluationCtx<'a>,
) -> Option<BigInt>
fn evaluate_value_to_bigint( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<BigInt>
Source§fn evaluate_value_to_boolean(
&self,
ctx: &impl ConstantEvaluationCtx<'a>,
) -> Option<bool>
fn evaluate_value_to_boolean( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<bool>
Source§fn evaluate_value_to_string(
&self,
ctx: &impl ConstantEvaluationCtx<'a>,
) -> Option<Cow<'a, str>>
fn evaluate_value_to_string( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<Cow<'a, str>>
fn get_side_free_number_value( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<f64>
fn get_side_free_bigint_value( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<BigInt>
fn get_side_free_boolean_value( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<bool>
fn get_side_free_string_value( &self, ctx: &impl ConstantEvaluationCtx<'a>, ) -> Option<Cow<'a, str>>
Source§impl ContentEq for CallExpression<'_>
impl ContentEq for CallExpression<'_>
Source§fn content_eq(&self, other: &CallExpression<'_>) -> bool
fn content_eq(&self, other: &CallExpression<'_>) -> 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 CallExpression<'a>
impl<'a> Debug for CallExpression<'a>
Source§impl<'a> Dummy<'a> for CallExpression<'a>
impl<'a> Dummy<'a> for CallExpression<'a>
Source§fn dummy(allocator: &'a Allocator) -> CallExpression<'a>
fn dummy(allocator: &'a Allocator) -> CallExpression<'a>
Create a dummy CallExpression.
Has cost of making 1 allocation (8 bytes).
Source§impl<'a> GatherNodeParts<'a> for CallExpression<'a>
impl<'a> GatherNodeParts<'a> for CallExpression<'a>
Source§impl GenExpr for CallExpression<'_>
impl GenExpr for CallExpression<'_>
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 GetPrecedence for CallExpression<'_>
impl GetPrecedence for CallExpression<'_>
fn precedence(&self) -> Precedence
Source§impl GetSpan for CallExpression<'_>
impl GetSpan for CallExpression<'_>
Source§impl GetSpanMut for CallExpression<'_>
impl GetSpanMut for CallExpression<'_>
Source§impl<'a> MayHaveSideEffects<'a> for CallExpression<'a>
impl<'a> MayHaveSideEffects<'a> for CallExpression<'a>
fn may_have_side_effects( &self, ctx: &impl MayHaveSideEffectsContext<'a>, ) -> bool
Source§impl<'a> TakeIn<'a> for CallExpression<'a>
impl<'a> TakeIn<'a> for CallExpression<'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 CallExpression<'_>
impl UnstableAddress for CallExpression<'_>
Auto Trait Implementations§
impl<'a> Freeze for CallExpression<'a>
impl<'a> !RefUnwindSafe for CallExpression<'a>
impl<'a> !Send for CallExpression<'a>
impl<'a> !Sync for CallExpression<'a>
impl<'a> Unpin for CallExpression<'a>
impl<'a> !UnwindSafe for CallExpression<'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