TokenAndSpan

Struct TokenAndSpan 

Source
pub struct TokenAndSpan {
    pub token: Token,
    pub had_line_break: bool,
    pub span: Span,
}

Fields§

§token: Token§had_line_break: bool

Had a line break before this token?

§span: Span

Trait Implementations§

Source§

impl Clone for TokenAndSpan

Source§

fn clone(&self) -> TokenAndSpan

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TokenAndSpan

Source§

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

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

impl<'a> Lexer<'a, TokenAndSpan> for Lexer<'a>

Source§

type CommentsBuffer = CommentsBuffer

Source§

type State = State

Source§

type Token = Token

Source§

fn input(&self) -> &StringInput<'a>

Source§

fn input_mut(&mut self) -> &mut StringInput<'a>

Source§

fn push_error(&mut self, error: Error)

Source§

fn state(&self) -> &Self::State

Source§

fn state_mut(&mut self) -> &mut Self::State

Source§

fn comments(&self) -> Option<&'a dyn Comments>

Source§

fn comments_buffer(&self) -> Option<&Self::CommentsBuffer>

Source§

fn comments_buffer_mut(&mut self) -> Option<&mut Self::CommentsBuffer>

Source§

unsafe fn input_slice(&mut self, start: BytePos, end: BytePos) -> &'a str

Safety Read more
Source§

fn input_uncons_while(&mut self, f: impl FnMut(char) -> bool) -> &'a str

Source§

fn atom<'b>(&self, s: impl Into<Cow<'b, str>>) -> Atom

Source§

fn had_line_break_before_last(&self) -> bool

Source§

fn span(&self, start: BytePos) -> Span

Source§

fn bump(&mut self)

Source§

fn is(&self, c: u8) -> bool

Source§

fn is_str(&self, s: &str) -> bool

Source§

fn eat(&mut self, c: u8) -> bool

Source§

fn cur(&self) -> Option<char>

Source§

fn peek(&self) -> Option<char>

Source§

fn peek_ahead(&self) -> Option<char>

Source§

fn cur_pos(&self) -> BytePos

Source§

fn last_pos(&self) -> BytePos

Source§

fn error<T>(&self, start: BytePos, kind: SyntaxError) -> LexResult<T>

Shorthand for let span = self.span(start); self.error_span(span)
Source§

fn error_span<T>(&self, span: Span, kind: SyntaxError) -> LexResult<T>

Source§

fn emit_error(&mut self, start: BytePos, kind: SyntaxError)

Source§

fn emit_error_span(&mut self, span: Span, kind: SyntaxError)

Source§

fn emit_strict_mode_error(&mut self, start: BytePos, kind: SyntaxError)

Source§

fn emit_module_mode_error(&mut self, start: BytePos, kind: SyntaxError)

Source§

fn skip_line_comment(&mut self, start_skip: usize)

Source§

fn skip_block_comment(&mut self)

Expects current char to be ‘/’ and next char to be ‘*’.
Source§

fn skip_space<const LEX_COMMENTS: bool>(&mut self)

Skip comments or whitespaces. Read more
Source§

fn ensure_not_ident(&mut self) -> LexResult<()>

Ensure that ident cannot directly follow numbers.
Source§

fn make_legacy_octal(&mut self, start: BytePos, val: f64) -> LexResult<f64>

Source§

fn read_digits<F, Ret, const RADIX: u8>( &mut self, op: F, allow_num_separator: bool, has_underscore: &mut bool, ) -> LexResult<Ret>
where F: FnMut(Ret, u8, u32) -> LexResult<(Ret, bool)>, Ret: Copy + Default,

op- |total, radix, value| -> (total * radix + value, continue)
Source§

fn read_number_no_dot_as_str<const RADIX: u8>( &mut self, ) -> LexResult<LazyInteger>

This can read long integers like “13612536612375123612312312312312312312312”. Read more
Source§

fn read_number<const START_WITH_DOT: bool, const START_WITH_ZERO: bool>( &mut self, ) -> LexResult<Either<(f64, Atom), (Box<BigIntValue>, Atom)>>

Reads an integer, octal integer, or floating-point number
Source§

fn read_int_u32<const RADIX: u8>(&mut self, len: u8) -> LexResult<Option<u32>>

Source§

fn read_radix_number<const RADIX: u8>( &mut self, ) -> LexResult<Either<(f64, Atom), (Box<BigIntValue>, Atom)>>

Returns Left(value) or Right(BigInt)
Source§

fn consume_pending_comments(&mut self)

Consume pending comments. Read more
Source§

fn read_jsx_word(&mut self) -> LexResult<Self::Token>

Read a JSX identifier (valid tag or attribute name). Read more
Source§

fn read_jsx_entity(&mut self) -> LexResult<(char, String)>

Source§

fn read_jsx_new_line( &mut self, normalize_crlf: bool, ) -> LexResult<Either<&'static str, char>>

Source§

fn read_jsx_str(&mut self, quote: char) -> LexResult<Self::Token>

Source§

fn read_unicode_escape(&mut self) -> LexResult<Vec<Char>>

Source§

fn read_shebang(&mut self) -> LexResult<Option<Atom>>

Source§

fn read_tmpl_token(&mut self, start_of_tpl: BytePos) -> LexResult<Self::Token>

Source§

fn read_escaped_char( &mut self, in_template: bool, ) -> LexResult<Option<Vec<Char>>>

Read an escaped character for string literal. Read more
Source§

fn read_regexp(&mut self, start: BytePos) -> LexResult<Self::Token>

Expects current char to be ‘/’
Source§

fn read_word_as_str_with(&mut self) -> LexResult<(Cow<'a, str>, bool)>

This method is optimized for texts without escape sequences.
Source§

fn read_word_as_str_with_slow_path( &mut self, slice_start: BytePos, ) -> LexResult<(Cow<'a, str>, bool)>

Slow path for identifier parsing that handles Unicode and escapes
Source§

fn read_token_number_sign(&mut self) -> LexResult<Self::Token>

#
Source§

fn read_token_dot(&mut self) -> LexResult<Self::Token>

Read a token given .. Read more
Source§

fn read_token_question_mark(&mut self) -> LexResult<Self::Token>

Read a token given ?. Read more
Source§

fn read_token_colon(&mut self) -> LexResult<Self::Token>

Read a token given :. Read more
Source§

fn read_token_zero(&mut self) -> LexResult<Self::Token>

Read a token given 0. Read more
Source§

fn read_token_logical<const C: u8>(&mut self) -> LexResult<Self::Token>

Read a token given | or &. Read more
Source§

fn read_token_mul_mod(&mut self, is_mul: bool) -> LexResult<Self::Token>

Read a token given * or %. Read more
Source§

fn read_slash(&mut self) -> LexResult<Self::Token>

Source§

fn read_ident_unknown(&mut self) -> LexResult<Self::Token>

This can be used if there’s no keyword starting with the first character.
Source§

fn read_str_lit(&mut self) -> LexResult<Self::Token>

See https://tc39.github.io/ecma262/#sec-literals-string-literals
Source§

fn read_keyword_with( &mut self, convert: &dyn Fn(&str) -> Option<Self::Token>, ) -> LexResult<Self::Token>

Source§

fn read_keyword_as_str_with(&mut self) -> LexResult<(Cow<'a, str>, bool)>

This is a performant version of Lexer::read_word_as_str_with for reading keywords. We should make sure the first byte is a valid ASCII.
Source§

impl NextTokenAndSpan for TokenAndSpan

Source§

type Token = Token

Source§

fn token(&self) -> &Self::Token

Source§

fn span(&self) -> Span

Source§

fn had_line_break(&self) -> bool

Source§

impl PartialEq for TokenAndSpan

Source§

fn eq(&self, other: &TokenAndSpan) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Spanned for TokenAndSpan

Source§

fn span(&self) -> Span

Get span of self.
Source§

fn span_lo(&self) -> BytePos

Source§

fn span_hi(&self) -> BytePos

Source§

impl TokenAndSpan for TokenAndSpan

Source§

type Token = Token

Source§

fn new(token: Token, span: Span, had_line_break: bool) -> Self

Source§

fn token(&self) -> &Token

Source§

fn take_token(self) -> Token

Source§

fn had_line_break(&self) -> bool

Source§

fn span(&self) -> Span

Source§

impl<'a, I: Tokens<TokenAndSpan>> TokenFactory<'a, TokenAndSpan, I> for Token

Source§

const ABSTRACT: Self

Source§

const ACCESSOR: Self

Source§

const ANY: Self

Source§

const ARROW: Self = Self::Arrow

Source§

const AS: Self

Source§

const ASSERT: Self

Source§

const ASSERTS: Self

Source§

const ASYNC: Self

Source§

const AT: Self = Self::At

Source§

const AWAIT: Self

Source§

const BACKQUOTE: Self = Self::BackQuote

Source§

const BANG: Self = Self::Bang

Source§

const BIGINT: Self

Source§

const BIT_AND: Self

Source§

const BIT_AND_EQ: Self

Source§

const BIT_OR: Self

Source§

const BIT_OR_EQ: Self

Source§

const BOOLEAN: Self

Source§

const BREAK: Self

Source§

const CASE: Self

Source§

const CATCH: Self

Source§

const CLASS: Self

Source§

const COLON: Self = Self::Colon

Source§

const COMMA: Self = Self::Comma

Source§

const CONST: Self

Source§

const CONTINUE: Self

Source§

const DEBUGGER: Self

Source§

const DECLARE: Self

Source§

const DEFAULT: Self

Source§

const DELETE: Self

Source§

const DIV: Self

Source§

const DIV_EQ: Self

Source§

const DO: Self

Source§

const DOLLAR_LBRACE: Self = Self::DollarLBrace

Source§

const DOT: Self = Self::Dot

Source§

const DOTDOTDOT: Self = Self::DotDotDot

Source§

const ELSE: Self

Source§

const ENUM: Self

Source§

const EOF: Self = Token::Eof

Source§

const EQUAL: Self

Source§

const EXP: Self

Source§

const EXPORT: Self

Source§

const EXP_EQ: Self

Source§

const EXTENDS: Self

Source§

const FALSE: Self

Source§

const FINALLY: Self

Source§

const FOR: Self

Source§

const FROM: Self

Source§

const FUNCTION: Self

Source§

const GET: Self

Source§

const GLOBAL: Self

Source§

const GREATER: Self

Source§

const GREATER_EQ: Self

Source§

const HASH: Self = Self::Hash

Source§

const IF: Self

Source§

const IMPLEMENTS: Self

Source§

const IMPORT: Self

Source§

const IN: Self

Source§

const INFER: Self

Source§

const INSTANCEOF: Self

Source§

const INTERFACE: Self

Source§

const INTRINSIC: Self

Source§

const IS: Self

Source§

const JSX_TAG_END: Self = Self::JSXTagEnd

Source§

const JSX_TAG_START: Self = Self::JSXTagStart

Source§

const KEYOF: Self

Source§

const LBRACE: Self = Self::LBrace

Source§

const LBRACKET: Self = Self::LBracket

Source§

const LESS: Self

Source§

const LESS_EQ: Self

Source§

const LET: Self

Source§

const LOGICAL_AND: Self

Source§

const LOGICAL_AND_EQ: Self

Source§

const LOGICAL_OR: Self

Source§

const LOGICAL_OR_EQ: Self

Source§

const LPAREN: Self = Self::LParen

Source§

const LSHIFT: Self

Source§

const LSHIFT_EQ: Self

Source§

const MINUS: Self

Source§

const MINUS_MINUS: Self = Self::MinusMinus

Source§

const MOD: Self

Source§

const MOD_EQ: Self

Source§

const MUL: Self

Source§

const MUL_EQ: Self

Source§

const NAMESPACE: Self

Source§

const NEVER: Self

Source§

const NEW: Self

Source§

const NULL: Self

Source§

const NULLISH_ASSIGN: Self

Source§

const NULLISH_COALESCING: Self

Source§

const NUMBER: Self

Source§

const OBJECT: Self

Source§

const OF: Self

Source§

const PACKAGE: Self

Source§

const PLUS: Self

Source§

const PLUS_PLUS: Self = Self::PlusPlus

Source§

const PRIVATE: Self

Source§

const PROTECTED: Self

Source§

const PUBLIC: Self

Source§

const QUESTION: Self = Token::QuestionMark

Source§

const RBRACE: Self = Self::RBrace

Source§

const RBRACKET: Self = Self::RBracket

Source§

const READONLY: Self

Source§

const REQUIRE: Self

Source§

const RETURN: Self

Source§

const RPAREN: Self = Self::RParen

Source§

const RSHIFT: Self

Source§

const RSHIFT_EQ: Self

Source§

const SATISFIES: Self

Source§

const SEMI: Self = Self::Semi

Source§

const SET: Self

Source§

const STATIC: Self

Source§

const STRING: Self

Source§

const SUPER: Self

Source§

const SWITCH: Self

Source§

const SYMBOL: Self

Source§

const TARGET: Self

Source§

const THIS: Self

Source§

const THROW: Self

Source§

const TILDE: Self = Self::Tilde

Source§

const TRUE: Self

Source§

const TRY: Self

Source§

const TYPE: Self

Source§

const TYPEOF: Self

Source§

const UNDEFINED: Self

Source§

const UNIQUE: Self

Source§

const UNKNOWN: Self

Source§

const USING: Self

Source§

const VAR: Self

Source§

const VOID: Self

Source§

const WHILE: Self

Source§

const WITH: Self

Source§

const YIELD: Self

Source§

const ZERO_FILL_RSHIFT: Self

Source§

const ZERO_FILL_RSHIFT_EQ: Self

Source§

type Buffer = Buffer<I>

Source§

type Lexer = Lexer<'a>

Source§

fn jsx_name(name: &'a str, lexer: &mut Lexer<'a>) -> Self

Source§

fn is_jsx_name(&self) -> bool

Source§

fn take_jsx_name(self, _: &mut Self::Buffer) -> Atom

Source§

fn str(value: Atom, raw: Atom, _: &mut Lexer<'a>) -> Self

Source§

fn template(cooked: LexResult<Atom>, raw: Atom, _: &mut Lexer<'a>) -> Self

Source§

fn regexp(content: Atom, flags: Atom, _: &mut Lexer<'a>) -> Self

Source§

fn num(value: f64, raw: Atom, _: &mut Lexer<'a>) -> Self

Source§

fn bigint(value: Box<BigIntValue>, raw: Atom, _: &mut Lexer<'a>) -> Self

Source§

fn unknown_ident(value: Atom, _: &mut Lexer<'a>) -> Self

Source§

fn is_word(&self) -> bool

Source§

fn is_reserved(&self, ctx: Context) -> bool

Source§

fn into_atom(self, _: &mut Lexer<'a>) -> Option<Atom>

Source§

fn is_error(&self) -> bool

Source§

fn take_error(self, _: &mut Self::Buffer) -> Error

Source§

fn is_str(&self) -> bool

Source§

fn is_str_raw_content(&self, content: &str, _: &Self::Buffer) -> bool

Source§

fn take_str(self, _: &mut Self::Buffer) -> (Atom, Atom)

Source§

fn is_num(&self) -> bool

Source§

fn take_num(self, _: &mut Self::Buffer) -> (f64, Atom)

Source§

fn is_bigint(&self) -> bool

Source§

fn take_bigint(self, _: &mut Self::Buffer) -> (Box<BigIntValue>, Atom)

Source§

fn take_word(self, _: &Self::Buffer) -> Option<Atom>

Source§

fn is_unknown_ident(&self) -> bool

Source§

fn take_unknown_ident(self, _: &mut Self::Buffer) -> Atom

Source§

fn take_unknown_ident_ref<'b>(&'b self, _: &'b Self::Buffer) -> &'b Atom

Source§

fn is_keyword(&self) -> bool

Source§

fn is_known_ident(&self) -> bool

Source§

fn take_known_ident(&self) -> Atom

Source§

fn is_regexp(&self) -> bool

Source§

fn is_template(&self) -> bool

Source§

fn take_template(self, _: &mut Self::Buffer) -> (LexResult<Atom>, Atom)

Source§

fn jsx_text(value: Atom, raw: Atom, _: &mut Self::Lexer) -> Self

Source§

fn is_jsx_text(&self) -> bool

Source§

fn take_jsx_text(self, _: &mut Self::Buffer) -> (Atom, Atom)

Source§

fn starts_expr(&self) -> bool

Source§

fn to_string(&self, _: &Self::Buffer) -> String

Source§

fn is_bin_op(&self) -> bool

Source§

fn as_assign_op(&self) -> Option<AssignOp>

Source§

fn as_bin_op(&self) -> Option<BinaryOp>

Source§

fn follows_keyword_let(&self) -> bool

Source§

fn is_assign_op(&self) -> bool

Source§

fn take_regexp(self, _: &mut Self::Buffer) -> (Atom, Atom)

Source§

fn shebang(value: Atom, _: &mut Self::Lexer) -> Self

Source§

fn is_shebang(&self) -> bool

Source§

fn take_shebang(self, _: &mut Self::Buffer) -> Atom

Source§

fn is_no_substitution_template_literal(&self) -> bool

Source§

fn is_template_head(&self) -> bool

Source§

fn is_less(&self) -> bool

Source§

fn is_less_eq(&self) -> bool

Source§

fn is_greater(&self) -> bool

Source§

fn is_colon(&self) -> bool

Source§

fn is_comma(&self) -> bool

Source§

fn is_equal(&self) -> bool

Source§

fn is_question(&self) -> bool

Source§

fn is_null(&self) -> bool

Source§

fn is_lshift(&self) -> bool

Source§

fn is_rshift(&self) -> bool

Source§

fn is_rshift_eq(&self) -> bool

Source§

fn is_greater_eq(&self) -> bool

Source§

fn is_true(&self) -> bool

Source§

fn is_false(&self) -> bool

Source§

fn is_enum(&self) -> bool

Source§

fn is_yield(&self) -> bool

Source§

fn is_let(&self) -> bool

Source§

fn is_var(&self) -> bool

Source§

fn is_static(&self) -> bool

Source§

fn is_extends(&self) -> bool

Source§

fn is_implements(&self) -> bool

Source§

fn is_interface(&self) -> bool

Source§

fn is_type(&self) -> bool

Source§

fn is_package(&self) -> bool

Source§

fn is_private(&self) -> bool

Source§

fn is_protected(&self) -> bool

Source§

fn is_public(&self) -> bool

Source§

fn is_readonly(&self) -> bool

Source§

fn is_await(&self) -> bool

Source§

fn is_break(&self) -> bool

Source§

fn is_continue(&self) -> bool

Source§

fn is_arrow(&self) -> bool

Source§

fn is_this(&self) -> bool

Source§

fn is_super(&self) -> bool

Source§

fn is_using(&self) -> bool

Source§

fn is_backquote(&self) -> bool

Source§

fn is_lparen(&self) -> bool

Source§

fn is_rparen(&self) -> bool

Source§

fn is_lbracket(&self) -> bool

Source§

fn is_rbracket(&self) -> bool

Source§

fn is_lbrace(&self) -> bool

Source§

fn is_rbrace(&self) -> bool

Source§

fn is_function(&self) -> bool

Source§

fn is_class(&self) -> bool

Source§

fn is_if(&self) -> bool

Source§

fn is_return(&self) -> bool

Source§

fn is_switch(&self) -> bool

Source§

fn is_throw(&self) -> bool

Source§

fn is_catch(&self) -> bool

Source§

fn is_finally(&self) -> bool

Source§

fn is_try(&self) -> bool

Source§

fn is_with(&self) -> bool

Source§

fn is_while(&self) -> bool

Source§

fn is_new(&self) -> bool

Source§

fn is_ident_ref(&self, ctx: Context) -> bool

Source§

fn is_import(&self) -> bool

Source§

fn is_export(&self) -> bool

Source§

fn is_dot(&self) -> bool

Source§

fn is_do(&self) -> bool

Source§

fn is_for(&self) -> bool

Source§

fn is_from(&self) -> bool

Source§

fn is_dotdotdot(&self) -> bool

Source§

fn is_plus(&self) -> bool

Source§

fn is_minus(&self) -> bool

Source§

fn is_bang(&self) -> bool

Source§

fn is_tilde(&self) -> bool

Source§

fn is_plus_plus(&self) -> bool

Source§

fn is_minus_minus(&self) -> bool

Source§

fn is_delete(&self) -> bool

Source§

fn is_typeof(&self) -> bool

Source§

fn is_of(&self) -> bool

Source§

fn is_void(&self) -> bool

Source§

fn is_hash(&self) -> bool

Source§

fn is_in(&self) -> bool

Source§

fn is_const(&self) -> bool

Source§

fn is_star(&self) -> bool

Source§

fn is_mod(&self) -> bool

Source§

fn is_semi(&self) -> bool

Source§

fn is_slash(&self) -> bool

Source§

fn is_slash_eq(&self) -> bool

Source§

fn is_jsx_tag_start(&self) -> bool

Source§

fn is_jsx_tag_end(&self) -> bool

Source§

fn is_asserts(&self) -> bool

Source§

fn is_is(&self) -> bool

Source§

fn is_as(&self) -> bool

Source§

fn is_satisfies(&self) -> bool

Source§

fn is_instanceof(&self) -> bool

Source§

fn is_async(&self) -> bool

Source§

fn is_case(&self) -> bool

Source§

fn is_default(&self) -> bool

Source§

fn is_debugger(&self) -> bool

Source§

fn is_bit_and(&self) -> bool

Source§

fn is_bit_or(&self) -> bool

Source§

fn is_exp(&self) -> bool

Source§

fn is_eof(&self) -> bool

Source§

impl<I: Tokens<TokenAndSpan>> Tokens<TokenAndSpan> for Capturing<I>

Source§

type Checkpoint = <I as Tokens<TokenAndSpan>>::Checkpoint

Source§

fn checkpoint_save(&self) -> Self::Checkpoint

Source§

fn checkpoint_load(&mut self, checkpoint: Self::Checkpoint)

Source§

fn set_ctx(&mut self, ctx: Context)

Source§

fn ctx_mut(&mut self) -> &mut Context

Source§

fn ctx(&self) -> Context

Source§

fn syntax(&self) -> SyntaxFlags

Source§

fn target(&self) -> EsVersion

Source§

fn start_pos(&self) -> BytePos

Source§

fn set_expr_allowed(&mut self, allow: bool)

Source§

fn set_next_regexp(&mut self, start: Option<BytePos>)

Source§

fn token_context(&self) -> &TokenContexts

Source§

fn token_context_mut(&mut self) -> &mut TokenContexts

Source§

fn set_token_context(&mut self, c: TokenContexts)

Source§

fn add_error(&mut self, error: Error)

Implementors should use Rc<RefCell<Vec>>. Read more
Source§

fn add_module_mode_error(&mut self, error: Error)

Add an error which is valid syntax in script mode. Read more
Source§

fn take_errors(&mut self) -> Vec<Error>

Source§

fn take_script_module_errors(&mut self) -> Vec<Error>

If the program was parsed as a script, this contains the module errors should the program be identified as a module in the future.
Source§

fn end_pos(&self) -> BytePos

Source§

fn update_token_flags(&mut self, _: impl FnOnce(&mut TokenFlags))

Source§

fn token_flags(&self) -> TokenFlags

Source§

impl Tokens<TokenAndSpan> for Lexer<'_>

Source§

type Checkpoint = Lexer<'_>

Source§

fn set_ctx(&mut self, ctx: Context)

Source§

fn ctx(&self) -> Context

Source§

fn ctx_mut(&mut self) -> &mut Context

Source§

fn checkpoint_save(&self) -> Self::Checkpoint

Source§

fn checkpoint_load(&mut self, checkpoint: Self::Checkpoint)

Source§

fn syntax(&self) -> SyntaxFlags

Source§

fn target(&self) -> EsVersion

Source§

fn start_pos(&self) -> BytePos

Source§

fn set_expr_allowed(&mut self, allow: bool)

Source§

fn set_next_regexp(&mut self, start: Option<BytePos>)

Source§

fn token_context(&self) -> &TokenContexts

Source§

fn token_context_mut(&mut self) -> &mut TokenContexts

Source§

fn set_token_context(&mut self, c: TokenContexts)

Source§

fn add_error(&mut self, error: Error)

Implementors should use Rc<RefCell<Vec>>. Read more
Source§

fn add_module_mode_error(&mut self, error: Error)

Add an error which is valid syntax in script mode. Read more
Source§

fn take_errors(&mut self) -> Vec<Error>

Source§

fn take_script_module_errors(&mut self) -> Vec<Error>

If the program was parsed as a script, this contains the module errors should the program be identified as a module in the future.
Source§

fn end_pos(&self) -> BytePos

Source§

fn update_token_flags(&mut self, _: impl FnOnce(&mut TokenFlags))

Source§

fn token_flags(&self) -> TokenFlags

Source§

impl Tokens<TokenAndSpan> for TokensInput

Source§

type Checkpoint = TokensInput

Source§

fn checkpoint_save(&self) -> Self::Checkpoint

Source§

fn checkpoint_load(&mut self, checkpoint: Self::Checkpoint)

Source§

fn set_ctx(&mut self, ctx: Context)

Source§

fn ctx_mut(&mut self) -> &mut Context

Source§

fn ctx(&self) -> Context

Source§

fn syntax(&self) -> SyntaxFlags

Source§

fn target(&self) -> EsVersion

Source§

fn start_pos(&self) -> BytePos

Source§

fn set_expr_allowed(&mut self, _: bool)

Source§

fn set_next_regexp(&mut self, _: Option<BytePos>)

Source§

fn token_context(&self) -> &TokenContexts

Source§

fn token_context_mut(&mut self) -> &mut TokenContexts

Source§

fn set_token_context(&mut self, c: TokenContexts)

Source§

fn add_error(&mut self, error: Error)

Implementors should use Rc<RefCell<Vec>>. Read more
Source§

fn add_module_mode_error(&mut self, error: Error)

Add an error which is valid syntax in script mode. Read more
Source§

fn take_errors(&mut self) -> Vec<Error>

Source§

fn take_script_module_errors(&mut self) -> Vec<Error>

If the program was parsed as a script, this contains the module errors should the program be identified as a module in the future.
Source§

fn end_pos(&self) -> BytePos

Source§

fn update_token_flags(&mut self, _: impl FnOnce(&mut TokenFlags))

Source§

fn token_flags(&self) -> TokenFlags

Source§

impl StructuralPartialEq for TokenAndSpan

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

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

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> SpanExt for T
where T: Spanned,

Source§

fn is_synthesized(&self) -> bool

Source§

fn starts_on_new_line(&self, format: ListFormat) -> bool

Source§

fn comment_range(&self) -> Span

Gets a custom text range to use when emitting comments.
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T

Source§

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

Source§

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

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 40 bytes