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 copy 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

§

fn had_line_break_before_last(&self) -> bool

§

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

§

fn bump(&mut self)

§

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

§

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

§

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

§

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

§

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

§

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

§

fn cur_pos(&self) -> BytePos

§

fn last_pos(&self) -> BytePos

§

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

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

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

§

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

§

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

§

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

§

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

§

fn skip_line_comment(&mut self, start_skip: usize)

§

fn skip_block_comment(&mut self)

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

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

Skip comments or whitespaces. Read more
§

fn ensure_not_ident(&mut self) -> Result<(), Error>

Ensure that ident cannot directly follow numbers.
§

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

§

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

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

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

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

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

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

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

§

fn read_radix_number<const RADIX: u8>( &mut self, ) -> Result<Either<(f64, Atom), (Box<BigInt>, Atom)>, Error>

Returns Left(value) or Right(BigInt)
§

fn consume_pending_comments(&mut self)

Consume pending comments. Read more
§

fn read_jsx_word(&mut self) -> Result<Self::Token, Error>

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

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

§

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

§

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

§

fn read_unicode_escape(&mut self) -> Result<Vec<Char>, Error>

§

fn read_shebang(&mut self) -> Result<Option<Atom>, Error>

§

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

§

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

Read an escaped character for string literal. Read more
§

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

Expects current char to be ‘/’
§

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

This method is optimized for texts without escape sequences.
§

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

Slow path for identifier parsing that handles Unicode and escapes
§

fn read_token_number_sign(&mut self) -> Result<Self::Token, Error>

#
§

fn read_token_dot(&mut self) -> Result<Self::Token, Error>

Read a token given .. Read more
§

fn read_token_question_mark(&mut self) -> Result<Self::Token, Error>

Read a token given ?. Read more
§

fn read_token_colon(&mut self) -> Result<Self::Token, Error>

Read a token given :. Read more
§

fn read_token_zero(&mut self) -> Result<Self::Token, Error>

Read a token given 0. Read more
§

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

Read a token given | or &. Read more
§

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

Read a token given * or %. Read more
§

fn read_slash(&mut self) -> Result<Self::Token, Error>

§

fn read_ident_unknown(&mut self) -> Result<Self::Token, Error>

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

fn read_str_lit(&mut self) -> Result<Self::Token, Error>

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

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

§

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

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 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> TokenFactory<'a, TokenAndSpan, I> for Token

Source§

const ABSTRACT: Self = Token::Abstract

Source§

const ACCESSOR: Self = Token::Accessor

Source§

const ANY: Self = Token::Any

Source§

const ARROW: Self = Token::Arrow

Source§

const AS: Self = Token::As

Source§

const ASSERT: Self = Token::Assert

Source§

const ASSERTS: Self = Token::Asserts

Source§

const ASYNC: Self = Token::Async

Source§

const AT: Self = Token::At

Source§

const AWAIT: Self = Token::Await

Source§

const BACKQUOTE: Self = Token::BackQuote

Source§

const BANG: Self = Self::Bang

Source§

const BIGINT: Self = Token::Bigint

Source§

const BIT_AND: Self = Self::Ampersand

Source§

const BIT_AND_EQ: Self = Self::BitAndEq

Source§

const BIT_OR: Self = Self::Pipe

Source§

const BIT_OR_EQ: Self = Self::BitOrEq

Source§

const BOOLEAN: Self = Token::Boolean

Source§

const BREAK: Self = Token::Break

Source§

const CASE: Self = Token::Case

Source§

const CATCH: Self = Token::Catch

Source§

const CLASS: Self = Self::Class

Source§

const COLON: Self = Self::Colon

Source§

const COMMA: Self = Token::Comma

Source§

const CONST: Self = Self::Const

Source§

const CONTINUE: Self = Token::Continue

Source§

const DEBUGGER: Self = Token::Debugger

Source§

const DECLARE: Self = Token::Declare

Source§

const DEFAULT: Self = Token::Default

Source§

const DELETE: Self = Self::Delete

Source§

const DIV: Self = Token::Slash

Source§

const DIV_EQ: Self = Token::DivEq

Source§

const DO: Self = Token::Do

Source§

const DOLLAR_LBRACE: Self = Token::DollarLBrace

Source§

const DOT: Self = Self::Dot

Source§

const DOTDOTDOT: Self = Self::DotDotDot

Source§

const ELSE: Self = Self::Else

Source§

const ENUM: Self = Token::Enum

Source§

const EOF: Self = Token::Eof

Source§

const EQUAL: Self = Token::Eq

Source§

const EXP: Self = Token::Exp

Source§

const EXPORT: Self = Token::Export

Source§

const EXP_EQ: Self = Token::ExpEq

Source§

const EXTENDS: Self = Token::Extends

Source§

const FALSE: Self = Token::False

Source§

const FINALLY: Self = Token::Finally

Source§

const FOR: Self = Token::For

Source§

const FROM: Self = Token::From

Source§

const FUNCTION: Self = Self::Function

Source§

const GET: Self = Token::Get

Source§

const GLOBAL: Self = Token::Global

Source§

const GREATER: Self = Token::Gt

Source§

const GREATER_EQ: Self = Token::GtEq

Source§

const HASH: Self = Self::Hash

Source§

const IF: Self = Self::If

Source§

const IMPLEMENTS: Self = Token::Implements

Source§

const IMPORT: Self = Self::Import

Source§

const IN: Self = Self::In

Source§

const INFER: Self = Token::Infer

Source§

const INSTANCEOF: Self = Token::InstanceOf

Source§

const INTERFACE: Self = Token::Interface

Source§

const INTRINSIC: Self = Token::Intrinsic

Source§

const IS: Self = Token::Is

Source§

const JSX_TAG_END: Self = Token::JSXTagEnd

Source§

const JSX_TAG_START: Self = Token::JSXTagStart

Source§

const KEYOF: Self = Token::Keyof

Source§

const LBRACE: Self = Self::LBrace

Source§

const LBRACKET: Self = Self::LBracket

Source§

const LESS: Self = Token::Lt

Source§

const LESS_EQ: Self = Token::LtEq

Source§

const LET: Self = Token::Let

Source§

const LOGICAL_AND: Self = Token::LogicalAnd

Source§

const LOGICAL_AND_EQ: Self = Self::LogicalAndEq

Source§

const LOGICAL_OR: Self = Token::LogicalOr

Source§

const LOGICAL_OR_EQ: Self = Self::LogicalOrEq

Source§

const LPAREN: Self = Self::LParen

Source§

const LSHIFT: Self = Token::LShift

Source§

const LSHIFT_EQ: Self = Token::LShiftEq

Source§

const MINUS: Self = Self::Minus

Source§

const MINUS_MINUS: Self = Self::MinusMinus

Source§

const MOD: Self = Token::Percent

Source§

const MOD_EQ: Self = Token::ModEq

Source§

const MUL: Self = Token::Asterisk

Source§

const MUL_EQ: Self = Token::MulEq

Source§

const NAMESPACE: Self = Token::Namespace

Source§

const NEVER: Self = Token::Never

Source§

const NEW: Self = Self::New

Source§

const NULL: Self = Token::Null

Source§

const NULLISH_ASSIGN: Self = Token::NullishEq

Source§

const NULLISH_COALESCING: Self = Token::NullishCoalescing

Source§

const NUMBER: Self = Token::Number

Source§

const OBJECT: Self = Token::Object

Source§

const OF: Self = Token::Of

Source§

const PACKAGE: Self = Token::Package

Source§

const PLUS: Self = Self::Plus

Source§

const PLUS_PLUS: Self = Self::PlusPlus

Source§

const PRIVATE: Self = Token::Private

Source§

const PROTECTED: Self = Token::Protected

Source§

const PUBLIC: Self = Token::Public

Source§

const QUESTION: Self = Token::QuestionMark

Source§

const RBRACE: Self = Self::RBrace

Source§

const RBRACKET: Self = Self::RBracket

Source§

const READONLY: Self = Token::Readonly

Source§

const REQUIRE: Self = Token::Require

Source§

const RETURN: Self = Token::Return

Source§

const RPAREN: Self = Self::RParen

Source§

const RSHIFT: Self = Token::RShift

Source§

const RSHIFT_EQ: Self = Token::RShiftEq

Source§

const SATISFIES: Self = Token::Satisfies

Source§

const SEMI: Self = Token::Semi

Source§

const SET: Self = Token::Set

Source§

const STATIC: Self = Token::Static

Source§

const STRING: Self = Token::String

Source§

const SUPER: Self = Self::Super

Source§

const SWITCH: Self = Token::Switch

Source§

const SYMBOL: Self = Token::Symbol

Source§

const TARGET: Self = Token::Target

Source§

const THIS: Self = Token::This

Source§

const THROW: Self = Token::Throw

Source§

const TILDE: Self = Self::Tilde

Source§

const TRUE: Self = Token::True

Source§

const TRY: Self = Token::Try

Source§

const TYPE: Self = Token::Type

Source§

const TYPEOF: Self = Self::TypeOf

Source§

const UNDEFINED: Self = Token::Undefined

Source§

const UNIQUE: Self = Token::Unique

Source§

const UNKNOWN: Self = Token::Unknown

Source§

const USING: Self = Self::Using

Source§

const VAR: Self = Self::Var

Source§

const VOID: Self = Self::Void

Source§

const WHILE: Self = Token::While

Source§

const WITH: Self = Token::With

Source§

const YIELD: Self = Token::Yield

Source§

const ZERO_FILL_RSHIFT: Self = Token::ZeroFillRShift

Source§

const ZERO_FILL_RSHIFT_EQ: Self = Token::ZeroFillRShiftEq

Source§

type Buffer = Buffer<I>

Source§

type Lexer = Lexer<'a>

Source§

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

Source§

fn is_jsx_name(&self) -> bool

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

fn is_error(&self) -> bool

Source§

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

Source§

fn is_str(&self) -> bool

Source§

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

Source§

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

Source§

fn is_num(&self) -> bool

Source§

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

Source§

fn is_bigint(&self) -> bool

Source§

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

Source§

fn is_word(&self) -> bool

Source§

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

Source§

fn is_unknown_ident(&self) -> bool

Source§

fn take_unknown_ident(self, buffer: &mut Self::Buffer) -> 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 take_unknown_ident_ref<'b>(&'b self, buffer: &'b Self::Buffer) -> &'b Atom

Source§

fn is_template(&self) -> bool

Source§

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

Source§

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

Source§

fn is_jsx_text(&self) -> bool

Source§

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

Source§

fn starts_expr(&self) -> bool

Source§

fn to_string(&self, buffer: &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, buffer: &mut Self::Buffer) -> (Atom, Atom)

Source§

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

Source§

fn is_shebang(&self) -> bool

Source§

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

Source§

fn is_no_substitution_template_literal(&self) -> bool

Source§

fn is_template_head(&self) -> bool

§

fn is_less(&self) -> bool

§

fn is_less_eq(&self) -> bool

§

fn is_greater(&self) -> bool

§

fn is_colon(&self) -> bool

§

fn is_comma(&self) -> bool

§

fn is_equal(&self) -> bool

§

fn is_question(&self) -> bool

§

fn is_null(&self) -> bool

§

fn is_lshift(&self) -> bool

§

fn is_rshift(&self) -> bool

§

fn is_rshift_eq(&self) -> bool

§

fn is_greater_eq(&self) -> bool

§

fn is_true(&self) -> bool

§

fn is_false(&self) -> bool

§

fn is_enum(&self) -> bool

§

fn is_yield(&self) -> bool

§

fn is_let(&self) -> bool

§

fn is_var(&self) -> bool

§

fn is_static(&self) -> bool

§

fn is_extends(&self) -> bool

§

fn is_implements(&self) -> bool

§

fn is_interface(&self) -> bool

§

fn is_type(&self) -> bool

§

fn is_package(&self) -> bool

§

fn is_private(&self) -> bool

§

fn is_protected(&self) -> bool

§

fn is_public(&self) -> bool

§

fn is_readonly(&self) -> bool

§

fn is_await(&self) -> bool

§

fn is_break(&self) -> bool

§

fn is_continue(&self) -> bool

§

fn is_arrow(&self) -> bool

§

fn is_this(&self) -> bool

§

fn is_super(&self) -> bool

§

fn is_using(&self) -> bool

§

fn is_backquote(&self) -> bool

§

fn is_lparen(&self) -> bool

§

fn is_rparen(&self) -> bool

§

fn is_lbracket(&self) -> bool

§

fn is_rbracket(&self) -> bool

§

fn is_lbrace(&self) -> bool

§

fn is_rbrace(&self) -> bool

§

fn is_function(&self) -> bool

§

fn is_class(&self) -> bool

§

fn is_if(&self) -> bool

§

fn is_return(&self) -> bool

§

fn is_switch(&self) -> bool

§

fn is_throw(&self) -> bool

§

fn is_catch(&self) -> bool

§

fn is_finally(&self) -> bool

§

fn is_try(&self) -> bool

§

fn is_with(&self) -> bool

§

fn is_while(&self) -> bool

§

fn is_new(&self) -> bool

§

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

§

fn is_import(&self) -> bool

§

fn is_export(&self) -> bool

§

fn is_dot(&self) -> bool

§

fn is_do(&self) -> bool

§

fn is_for(&self) -> bool

§

fn is_from(&self) -> bool

§

fn is_dotdotdot(&self) -> bool

§

fn is_plus(&self) -> bool

§

fn is_minus(&self) -> bool

§

fn is_bang(&self) -> bool

§

fn is_tilde(&self) -> bool

§

fn is_plus_plus(&self) -> bool

§

fn is_minus_minus(&self) -> bool

§

fn is_delete(&self) -> bool

§

fn is_typeof(&self) -> bool

§

fn is_of(&self) -> bool

§

fn is_void(&self) -> bool

§

fn is_hash(&self) -> bool

§

fn is_in(&self) -> bool

§

fn is_const(&self) -> bool

§

fn is_star(&self) -> bool

§

fn is_mod(&self) -> bool

§

fn is_semi(&self) -> bool

§

fn is_slash(&self) -> bool

§

fn is_slash_eq(&self) -> bool

§

fn is_jsx_tag_start(&self) -> bool

§

fn is_jsx_tag_end(&self) -> bool

§

fn is_asserts(&self) -> bool

§

fn is_is(&self) -> bool

§

fn is_as(&self) -> bool

§

fn is_satisfies(&self) -> bool

§

fn is_instanceof(&self) -> bool

§

fn is_async(&self) -> bool

§

fn is_case(&self) -> bool

§

fn is_default(&self) -> bool

§

fn is_debugger(&self) -> bool

§

fn is_bit_and(&self) -> bool

§

fn is_bit_or(&self) -> bool

§

fn is_exp(&self) -> bool

§

fn is_eof(&self) -> bool

Source§

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

Source§

type Checkpoint = CapturingCheckpoint<I>

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(&self) -> Context

Source§

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

Source§

fn syntax(&self) -> SyntaxFlags

Source§

fn target(&self) -> EsVersion

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 end_pos(&self) -> BytePos

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 update_token_flags(&mut self, f: impl FnOnce(&mut TokenFlags))

Source§

fn token_flags(&self) -> TokenFlags

§

fn start_pos(&self) -> BytePos

Source§

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

Source§

type Checkpoint = LexerCheckpoint

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(&self) -> Context

Source§

fn ctx_mut(&mut self) -> &mut 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, 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, _: 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, f: impl FnOnce(&mut TokenFlags))

Source§

fn token_flags(&self) -> TokenFlags

Source§

impl Copy 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
§

impl<T> ArchivePointee for T

§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
§

impl<T> AsOut<T> for T
where T: Copy,

§

fn as_out(&mut self) -> Out<'_, T>

Returns an out reference to self.
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
§

impl<T> Conv for T

§

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

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

impl<T> FmtForward for T

§

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

§

impl<T> Instrument for T

§

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

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

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
§

impl<T> LayoutRaw for T

§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
§

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

§

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
§

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
§

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
§

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
§

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
§

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.
§

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.
§

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.
§

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.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Pointee for T

§

type Metadata = ()

The metadata type for pointers and references to this type.
§

impl<T> Tap for T

§

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

Immutable access to a value. Read more
§

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

Mutable access to a value. Read more
§

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
§

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
§

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
§

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
§

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
§

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
§

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

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

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

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

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.
§

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.
§

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.
§

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.
§

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.
§

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
§

impl<T> TryConv for T

§

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.
§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

§

impl<T> MaybeSendSync for T