diff --git a/crates/oxc_parser/src/cursor.rs b/crates/oxc_parser/src/cursor.rs index 4babc53f57ce2..51b822ce52139 100644 --- a/crates/oxc_parser/src/cursor.rs +++ b/crates/oxc_parser/src/cursor.rs @@ -174,7 +174,7 @@ impl<'a> Parser<'a> { /// # Errors pub fn expect_without_advance(&mut self, kind: Kind) -> Result<()> { if !self.at(kind) { - let range = self.current_range(); + let range = self.cur_token().span(); return Err( diagnostics::ExpectToken(kind.to_str(), self.cur_kind().to_str(), range).into() ); @@ -190,21 +190,6 @@ impl<'a> Parser<'a> { Ok(()) } - #[must_use] - pub fn current_range(&self) -> Span { - let cur_token = self.cur_token(); - match self.cur_kind() { - Kind::Eof => { - if self.prev_token_end < cur_token.end { - Span::new(self.prev_token_end, self.prev_token_end) - } else { - Span::new(self.prev_token_end - 1, self.prev_token_end) - } - } - _ => cur_token.span(), - } - } - /// Expect the next next token to be a `JsxChild`, i.e. `<` or `{` or `JSXText` /// # Errors pub fn expect_jsx_child(&mut self, kind: Kind) -> Result<()> { diff --git a/crates/oxc_parser/src/diagnostics.rs b/crates/oxc_parser/src/diagnostics.rs index 74fb6d471d956..cf1cc42d70cb5 100644 --- a/crates/oxc_parser/src/diagnostics.rs +++ b/crates/oxc_parser/src/diagnostics.rs @@ -15,13 +15,9 @@ pub struct Flow(#[label] pub Span); pub struct UnexpectedToken(#[label] pub Span); #[derive(Debug, Error, Diagnostic)] -#[error("Expect token")] +#[error("Expected `{0}` but found `{1}`")] #[diagnostic()] -pub struct ExpectToken( - pub &'static str, - pub &'static str, - #[label("Expect `{0}` here, but found `{1}`")] pub Span, -); +pub struct ExpectToken(pub &'static str, pub &'static str, #[label("`{0}` expected")] pub Span); #[derive(Debug, Error, Diagnostic)] #[error("Invalid escape sequence")] diff --git a/crates/oxc_parser/src/js/statement.rs b/crates/oxc_parser/src/js/statement.rs index 8f73df45e39ab..678092daf74be 100644 --- a/crates/oxc_parser/src/js/statement.rs +++ b/crates/oxc_parser/src/js/statement.rs @@ -297,7 +297,7 @@ impl<'a> Parser<'a> { .then(|| self.parse_expression()) .transpose() .map_err(|_| { - let range = self.current_range(); + let range = self.cur_token().span(); diagnostics::ExpectToken(Kind::Semicolon.to_str(), self.cur_kind().to_str(), range) })?; self.expect(Kind::Semicolon)?; diff --git a/crates/oxc_parser/src/lexer/mod.rs b/crates/oxc_parser/src/lexer/mod.rs index 4d80b58b13109..63661cd48c023 100644 --- a/crates/oxc_parser/src/lexer/mod.rs +++ b/crates/oxc_parser/src/lexer/mod.rs @@ -726,11 +726,15 @@ impl<'a> Lexer<'a> { self.identifier_unicode_escape_sequence(&mut builder, true); } Some(c) => { - self.error(diagnostics::InvalidCharacter(c, Span::new(start, self.offset() - 1))); + #[allow(clippy::cast_possible_truncation)] + self.error(diagnostics::InvalidCharacter( + c, + Span::new(start, start + c.len_utf8() as u32), + )); return Kind::Undetermined; } None => { - self.error(diagnostics::UnexpectedEnd(Span::new(start, self.offset() - 1))); + self.error(diagnostics::UnexpectedEnd(Span::new(start, start))); return Kind::Undetermined; } } diff --git a/crates/oxc_parser/src/lib.rs b/crates/oxc_parser/src/lib.rs index b46261efab499..fad480ef08f37 100644 --- a/crates/oxc_parser/src/lib.rs +++ b/crates/oxc_parser/src/lib.rs @@ -144,7 +144,7 @@ impl<'a> Parser<'a> { if self.cur_kind() == Kind::Undetermined { return Err(self.errors.borrow_mut().pop().unwrap()); } - Err(diagnostics::UnexpectedToken(self.current_range()).into()) + Err(diagnostics::UnexpectedToken(self.cur_token().span()).into()) } /// Push a Syntax Error diff --git a/tasks/coverage/babel.snap b/tasks/coverage/babel.snap index 01f2c41dd1b94..0977106e41ddb 100644 --- a/tasks/coverage/babel.snap +++ b/tasks/coverage/babel.snap @@ -237,12 +237,9 @@ Expect to Parse: "core/uncategorised/328/input.js" ╰──── Expect to Parse: "typescript/arrow-function/generic-tsx-babel-7/input.ts" - × Expect token - ╭─[typescript/arrow-function/generic-tsx-babel-7/input.ts:1:1] - 1 │ // Same as `generic`. Verify that JSX doesn't change things. + × Expected `<` but found `EOF` + ╭─[typescript/arrow-function/generic-tsx-babel-7/input.ts:2:1] 2 │ (a: T): T => a; - · ┬ - · ╰── Expect `<` here, but found `EOF` ╰──── Expect to Parse: "typescript/cast/satisfies/input.ts" @@ -289,12 +286,12 @@ Expect to Parse: "typescript/dts/valid-trailing-comma-for-rest/input.ts" ╰──── Expect to Parse: "typescript/interface/get-set-properties/input.ts" - × Expect token + × Expected `(` but found `:` ╭─[typescript/interface/get-set-properties/input.ts:1:1] 1 │ interface Foo { 2 │ get foo: string; · ┬ - · ╰── Expect `(` here, but found `:` + · ╰── `(` expected 3 │ set bar: string; ╰──── Expect to Parse: "typescript/module-namespace/body-nested-declare/input.ts" @@ -308,19 +305,19 @@ Expect to Parse: "typescript/module-namespace/body-nested-declare/input.ts" ╰──── Expect to Parse: "typescript/regression/nested-extends-in-arrow-type-param-babel-7/input.ts" - × Expect token + × Expected `,` but found `extends` ╭─[typescript/regression/nested-extends-in-arrow-type-param-babel-7/input.ts:1:1] 1 │ type Equals = A extends (x: B extends C ? D : E) => 0 ? F : G; · ───┬─── - · ╰── Expect `,` here, but found `extends` + · ╰── `,` expected ╰──── Expect to Parse: "typescript/regression/nested-extends-in-arrow-type-param/input.ts" - × Expect token + × Expected `,` but found `extends` ╭─[typescript/regression/nested-extends-in-arrow-type-param/input.ts:1:1] 1 │ type Equals = A extends (x: B extends C ? D : E) => 0 ? F : G; · ───┬─── - · ╰── Expect `,` here, but found `extends` + · ╰── `,` expected ╰──── Expect to Parse: "typescript/types/const-type-parameters-babel-7/input.ts" @@ -357,12 +354,12 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ╰── `f` has already been declared here ╰──── - × Expect token + × Expected `;` but found `Identifier` ╭─[core/categorized/for-missing-semicolons/input.js:2:1] 2 │ var a = 1 3 │ a < 3 · ┬ - · ╰── Expect `;` here, but found `Identifier` + · ╰── `;` expected 4 │ a++ ╰──── @@ -742,11 +739,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ── ╰──── - × Expect token + × Expected `(` but found `await` ╭─[core/opts/allowAwaitOutsideFunction-false/input.js:1:1] 1 │ for await (const i of imports) {} · ──┬── - · ╰── Expect `(` here, but found `await` + · ╰── `(` expected ╰──── × Unexpected new.target expression @@ -1093,11 +1090,9 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `}` but found `EOF` ╭─[core/uncategorised/345/input.js:1:1] 1 │ { - · ┬ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token @@ -1282,37 +1277,29 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─────── ╰──── - × Expect token + × Expected `]` but found `EOF` ╭─[core/uncategorised/375/input.js:1:1] 1 │ [ - · ┬ - · ╰── Expect `]` here, but found `EOF` ╰──── × Unexpected token ╭─[core/uncategorised/376/input.js:1:1] 1 │ [, - · ─ ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[core/uncategorised/377/input.js:1:1] 1 │ 1 + { - · ┬ - · ╰── Expect `}` here, but found `EOF` ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[core/uncategorised/378/input.js:1:1] 1 │ 1 + { t:t - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token ╭─[core/uncategorised/379/input.js:1:1] 1 │ 1 + { t:t, - · ─ ╰──── × Unterminated regular expression @@ -1346,19 +1333,15 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ── ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[core/uncategorised/385/input.js:1:1] 1 │ 1 + ( - · ┬ - · ╰── Expect `)` here, but found `EOF` ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[core/uncategorised/386/input.js:3:1] 3 │ 4 │ { - · ┬ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token @@ -1394,25 +1377,25 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─ ╰──── - × Expect token + × Expected `,` but found `{` ╭─[core/uncategorised/392/input.js:1:1] 1 │ ({ set: s() { } }) · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `{` ╭─[core/uncategorised/393/input.js:1:1] 1 │ ({ set: s(a, b) { } }) · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `{` ╭─[core/uncategorised/394/input.js:1:1] 1 │ ({ get: g(d) { } }) · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected ╰──── × Unexpected token @@ -1451,32 +1434,32 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ──── ╰──── - × Expect token + × Expected `(` but found `null` ╭─[core/uncategorised/401/input.js:1:1] 1 │ function null() { } · ──┬─ - · ╰── Expect `(` here, but found `null` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `true` ╭─[core/uncategorised/402/input.js:1:1] 1 │ function true() { } · ──┬─ - · ╰── Expect `(` here, but found `true` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `false` ╭─[core/uncategorised/403/input.js:1:1] 1 │ function false() { } · ──┬── - · ╰── Expect `(` here, but found `false` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `if` ╭─[core/uncategorised/404/input.js:1:1] 1 │ function if() { } · ─┬ - · ╰── Expect `(` here, but found `if` + · ╰── `(` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -1486,11 +1469,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `(` but found `.` ╭─[core/uncategorised/406/input.js:1:1] 1 │ if.a; · ┬ - · ╰── Expect `(` here, but found `.` + · ╰── `(` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -1536,7 +1519,6 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Unexpected token ╭─[core/uncategorised/413/input.js:1:1] 1 │ throw - · ─ ╰──── × Unexpected token @@ -1551,11 +1533,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───────── ╰──── - × Expect token + × Expected `;` but found `)` ╭─[core/uncategorised/416/input.js:1:1] 1 │ for ((i in {})); · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected ╰──── × Unexpected token @@ -1573,37 +1555,31 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Unexpected token ╭─[core/uncategorised/419/input.js:1:1] 1 │ if(false) - · ─ ╰──── × Unexpected token ╭─[core/uncategorised/420/input.js:1:1] 1 │ if(false) doThis(); else - · ─ ╰──── × Unexpected token ╭─[core/uncategorised/421/input.js:1:1] 1 │ do - · ─ ╰──── × Unexpected token ╭─[core/uncategorised/422/input.js:1:1] 1 │ while(false) - · ─ ╰──── × Unexpected token ╭─[core/uncategorised/423/input.js:1:1] 1 │ for(;;) - · ─ ╰──── × Unexpected token ╭─[core/uncategorised/424/input.js:1:1] 1 │ with(x) - · ─ ╰──── × Missing catch or finally clause @@ -1827,11 +1803,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: A `continue` statement can only be used within an enclosing `for`, `while` or `do while` - × Expect token + × Expected `while` but found `*` ╭─[core/uncategorised/458/input.js:1:1] 1 │ do { x } * · ┬ - · ╰── Expect `while` here, but found `*` + · ╰── `while` expected ╰──── × Use of undefined label @@ -2554,18 +2530,18 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ──── ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es2015/destructuring/binding-this/input.js:1:1] 1 │ var { this } = {}; · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected ╰──── - × Expect token + × Expected `,` but found `(` ╭─[es2015/destructuring/invalid-object-method/input.js:1:1] 1 │ const { foo() {} } = foo(); · ┬ - · ╰── Expect `,` here, but found `(` + · ╰── `,` expected ╰──── × Cannot assign to this expression @@ -2663,11 +2639,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─────── ╰──── - × Expect token + × Expected `)` but found `,` ╭─[es2015/for-of/invalid-expr/input.js:1:1] 1 │ for (let x of y, z) {} · ┬ - · ╰── Expect `)` here, but found `,` + · ╰── `)` expected ╰──── × Keywords cannot contain escape characters @@ -3393,21 +3369,21 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─ ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[es2015/object/async-method-linebreak/input.js:2:1] 2 │ async 3 │ foo() {} · ─┬─ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 4 │ }) ╰──── - × Expect token + × Expected `,` but found `*` ╭─[es2015/object/invalid-accessor-generator/input.js:1:1] 1 │ ({ 2 │ get *iterator() { }, · ┬ - · ╰── Expect `,` here, but found `*` + · ╰── `,` expected 3 │ set *iterator(iter) { } ╰──── @@ -3751,11 +3727,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `(` but found `default` ╭─[es2015/uncategorised/226/input.js:1:1] 1 │ function default() {} · ───┬─── - · ╰── Expect `(` here, but found `default` + · ╰── `(` expected ╰──── × Cannot assign to 'eval' in strict mode @@ -3820,18 +3796,14 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ────────── ╰──── - × Expect token + × Expected `from` but found `EOF` ╭─[es2015/uncategorised/237/input.js:1:1] 1 │ import foo - · ┬ - · ╰── Expect `from` here, but found `EOF` ╰──── - × Expect token + × Expected `from` but found `EOF` ╭─[es2015/uncategorised/238/input.js:1:1] 1 │ import { foo, bar } - · ┬ - · ╰── Expect `from` here, but found `EOF` ╰──── × Unexpected token @@ -3911,25 +3883,25 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `]` but found `,` ╭─[es2015/uncategorised/255/input.js:1:1] 1 │ void { [1, 2]: 3 }; · ┬ - · ╰── Expect `]` here, but found `,` + · ╰── `]` expected ╰──── - × Expect token + × Expected `(` but found `**` ╭─[es2015/uncategorised/261/input.js:1:1] 1 │ var obj = { *test** } · ─┬ - · ╰── Expect `(` here, but found `**` + · ╰── `(` expected ╰──── - × Expect token + × Expected `{` but found `default` ╭─[es2015/uncategorised/263/input.js:1:1] 1 │ class default · ───┬─── - · ╰── Expect `{` here, but found `default` + · ╰── `{` expected ╰──── × Unterminated string @@ -3938,18 +3910,16 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───── ╰──── - × Expect token + × Expected `(` but found `${}` ╭─[es2015/uncategorised/265/input.js:1:1] 1 │ switch `test` · ───┬── - · ╰── Expect `(` here, but found `${}` + · ╰── `(` expected ╰──── - × Expect token + × Expected `$}` but found `EOF` ╭─[es2015/uncategorised/266/input.js:1:1] 1 │ `hello ${10 `test` - · ┬ - · ╰── Expect `$}` here, but found `EOF` ╰──── × Unexpected token @@ -3991,7 +3961,6 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Unexpected token ╭─[es2015/uncategorised/278/input.js:1:1] 1 │ function f(a, ...b = 0) - · ─ ╰──── × Identifier `a` has already been declared @@ -4065,11 +4034,9 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─── ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[es2015/uncategorised/295/input.js:1:1] 1 │ switch (cond) { case 10: let a = 20; - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × Cannot assign to 'eval' in strict mode @@ -4292,60 +4259,60 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ──── ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es2015/uncategorised/372/input.js:1:1] 1 │ const { enum } = foo(); · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es2015/uncategorised/373/input.js:1:1] 1 │ const { enum } = foo(); · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es2015/uncategorised/374/input.js:1:1] 1 │ function foo({ enum }) {} · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es2015/uncategorised/375/input.js:1:1] 1 │ function foo({ enum }) {} · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected ╰──── - × Expect token + × Expected `(` but found `enum` ╭─[es2015/uncategorised/376/input.js:1:1] 1 │ function enum() {} · ──┬─ - · ╰── Expect `(` here, but found `enum` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `enum` ╭─[es2015/uncategorised/377/input.js:1:1] 1 │ function enum() {} · ──┬─ - · ╰── Expect `(` here, but found `enum` + · ╰── `(` expected ╰──── - × Expect token + × Expected `{` but found `enum` ╭─[es2015/uncategorised/378/input.js:1:1] 1 │ class enum {} · ──┬─ - · ╰── Expect `{` here, but found `enum` + · ╰── `{` expected ╰──── - × Expect token + × Expected `{` but found `enum` ╭─[es2015/uncategorised/379/input.js:1:1] 1 │ class enum {} · ──┬─ - · ╰── Expect `{` here, but found `enum` + · ╰── `{` expected ╰──── × Empty parenthesized expression @@ -4354,11 +4321,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ▲ ╰──── - × Expect token + × Expected `,` but found `=>` ╭─[es2015/uncategorised/38/input.js:1:1] 1 │ console.log(typeof () => {}); · ─┬ - · ╰── Expect `,` here, but found `=>` + · ╰── `,` expected ╰──── × Unexpected token @@ -4392,11 +4359,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───── ╰──── - × Expect token + × Expected `,` but found `:` ╭─[es2015/uncategorised/392/input.js:1:1] 1 │ import foo, { bar: { a } } from 'my-module'; · ┬ - · ╰── Expect `,` here, but found `:` + · ╰── `,` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -4406,18 +4373,16 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `from` but found `EOF` ╭─[es2015/uncategorised/84/input.js:1:1] 1 │ export * - · ┬ - · ╰── Expect `from` here, but found `EOF` ╰──── - × Expect token + × Expected `from` but found `default` ╭─[es2015/uncategorised/96/input.js:1:1] 1 │ import default from "foo" · ───┬─── - · ╰── Expect `from` here, but found `default` + · ╰── `from` expected ╰──── × Cannot use `yield` as an identifier in a generator context @@ -4447,11 +4412,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───── ╰──── - × Expect token + × Expected `{` but found `Identifier` ╭─[es2015/yield/in-class-heritage/input.js:1:1] 1 │ class A extends yield B { } · ┬ - · ╰── Expect `{` here, but found `Identifier` + · ╰── `{` expected ╰──── × A 'yield' expression is only allowed in a generator body. @@ -4862,11 +4827,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. - × Expect token + × Expected `,` but found `?` ╭─[es2017/async-call/with-optional-operator/input.js:1:1] 1 │ async(x?) · ┬ - · ╰── Expect `,` here, but found `?` + · ╰── `,` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -4899,18 +4864,18 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern. - × Expect token + × Expected `(` but found `}` ╭─[es2017/async-functions/4/input.js:1:1] 1 │ ({ async a }); · ┬ - · ╰── Expect `(` here, but found `}` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `:` ╭─[es2017/async-functions/5/input.js:1:1] 1 │ ({ async a: function () {} }); · ┬ - · ╰── Expect `(` here, but found `:` + · ╰── `(` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -5089,11 +5054,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ────────── ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[es2017/async-functions/invalid-escape-sequence-arrow-list/input.js:1:1] 1 │ (\u0061sync x => { await x }) · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -5121,11 +5086,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─────── ╰──── - × Expect token + × Expected `)` but found `;` ╭─[es2017/async-functions/invalid-for-await-expression-init/input.js:1:1] 1 │ for (await o\u0066 [0];;); · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected ╰──── × Invalid function declaration @@ -5216,12 +5181,12 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─ ╰──── - × Expect token + × Expected `(` but found `await` ╭─[es2018/async-generators/for-await-async-context/input.js:1:1] 1 │ function f() { 2 │ for await (let x of y); · ──┬── - · ╰── Expect `(` here, but found `await` + · ╰── `(` expected 3 │ } ╰──── @@ -5503,11 +5468,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───────────── ╰──── - × Expect token + × Expected `)` but found `string` ╭─[es2020/dynamic-import/multiple-args/input.js:1:1] 1 │ import('hello', 'world', '!'); · ─┬─ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected ╰──── × Unexpected token @@ -6935,18 +6900,18 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ╰── `a` has already been declared here ╰──── - × Expect token + × Expected `)` but found `=` ╭─[esprima/es2015-array-pattern/with-default-catch-param-fail/input.js:1:1] 1 │ try { } catch ([a] = []) { } · ┬ - · ╰── Expect `)` here, but found `=` + · ╰── `)` expected ╰──── - × Expect token + × Expected `,` but found `...` ╭─[esprima/es2015-arrow-function/arrow-rest-forgetting-comma/input.js:1:1] 1 │ (a ...b) => 0 · ─┬─ - · ╰── Expect `,` here, but found `...` + · ╰── `,` expected ╰──── × Rest element must be last element @@ -7018,11 +6983,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `,` but found `=>` ╭─[esprima/es2015-arrow-function/object-binding-pattern-invalid-pattern-without-parenthesis/input.js:1:1] 1 │ ({}=>0) · ─┬ - · ╰── Expect `,` here, but found `=>` + · ╰── `,` expected ╰──── × Unexpected token @@ -7031,11 +6996,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─── ╰──── - × Expect token + × Expected `=>` but found `+` ╭─[esprima/es2015-arrow-function/rest-without-arrow/input.js:1:1] 1 │ (...a) + 1 · ┬ - · ╰── Expect `=>` here, but found `+` + · ╰── `=>` expected ╰──── × Cannot assign to 'eval' in strict mode @@ -7075,18 +7040,16 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─── ╰──── - × Expect token + × Expected `from` but found `EOF` ╭─[esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/input.js:1:1] 1 │ export * - · ▲ - · ╰── Expect `from` here, but found `EOF` ╰──── - × Expect token + × Expected `from` but found `+` ╭─[esprima/es2015-export-declaration/invalid-export-batch-token/input.js:1:1] 1 │ export * + · ┬ - · ╰── Expect `from` here, but found `+` + · ╰── `from` expected ╰──── × Unexpected token @@ -7139,11 +7102,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───────── ╰──── - × Expect token + × Expected `;` but found `decimal` ╭─[esprima/es2015-for-of/unexpected-number/input.js:1:1] 1 │ for (const of 42); · ─┬ - · ╰── Expect `;` here, but found `decimal` + · ╰── `;` expected ╰──── × A 'yield' expression is only allowed in a generator body. @@ -7285,25 +7248,23 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ────── ╰──── - × Expect token + × Expected `from` but found `,` ╭─[esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/input.js:1:1] 1 │ import foo, {bar}, foo from "foo"; · ┬ - · ╰── Expect `from` here, but found `,` + · ╰── `from` expected ╰──── - × Expect token + × Expected `from` but found `,` ╭─[esprima/es2015-import-declaration/invalid-import-default-after-named/input.js:1:1] 1 │ import {bar}, foo from "foo" · ┬ - · ╰── Expect `from` here, but found `,` + · ╰── `from` expected ╰──── - × Expect token + × Expected `from` but found `EOF` ╭─[esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/input.js:1:1] 1 │ import foo - · ▲ - · ╰── Expect `from` here, but found `EOF` ╰──── × Unexpected token @@ -7312,25 +7273,23 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─── ╰──── - × Expect token + × Expected `from` but found `default` ╭─[esprima/es2015-import-declaration/invalid-import-default/input.js:1:1] 1 │ import default from "foo" · ───┬─── - · ╰── Expect `from` here, but found `default` + · ╰── `from` expected ╰──── - × Expect token + × Expected `from` but found `{` ╭─[esprima/es2015-import-declaration/invalid-import-missing-comma/input.js:1:1] 1 │ import foo { bar } from "bar"; · ┬ - · ╰── Expect `from` here, but found `{` + · ╰── `from` expected ╰──── - × Expect token + × Expected `from` but found `EOF` ╭─[esprima/es2015-import-declaration/invalid-import-missing-module-specifier/input.js:1:1] 1 │ import { foo, bar } - · ▲ - · ╰── Expect `from` here, but found `EOF` ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -7340,39 +7299,37 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `from` but found `,` ╭─[esprima/es2015-import-declaration/invalid-import-named-after-named/input.js:1:1] 1 │ import {bar}, {foo} from "foo"; · ┬ - · ╰── Expect `from` here, but found `,` + · ╰── `from` expected ╰──── - × Expect token + × Expected `from` but found `,` ╭─[esprima/es2015-import-declaration/invalid-import-named-after-namespace/input.js:1:1] 1 │ import * as foo, {bar} from "foo"; · ┬ - · ╰── Expect `from` here, but found `,` + · ╰── `from` expected ╰──── - × Expect token + × Expected `from` but found `EOF` ╭─[esprima/es2015-import-declaration/invalid-import-named-as-missing-from/input.js:1:1] 1 │ import {default as foo} - · ▲ - · ╰── Expect `from` here, but found `EOF` ╰──── - × Expect token + × Expected `from` but found `,` ╭─[esprima/es2015-import-declaration/invalid-import-namespace-after-named/input.js:1:1] 1 │ import {bar}, * as foo from "foo"; · ┬ - · ╰── Expect `from` here, but found `,` + · ╰── `from` expected ╰──── - × Expect token + × Expected `as` but found `from` ╭─[esprima/es2015-import-declaration/invalid-import-namespace-missing-as/input.js:1:1] 1 │ import * from "foo" · ──┬─ - · ╰── Expect `as` here, but found `from` + · ╰── `as` expected ╰──── × Unexpected token @@ -7548,11 +7505,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─── ╰──── - × Expect token + × Expected `(` but found `${}` ╭─[esprima/es2015-template-literals/after-switch/input.js:1:1] 1 │ switch `test` · ───┬── - · ╰── Expect `(` here, but found `${}` + · ╰── `(` expected ╰──── × Bad escape sequence in untagged template literal @@ -7567,11 +7524,9 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─ ╰──── - × Expect token + × Expected `$}` but found `EOF` ╭─[esprima/es2015-template-literals/unclosed-nested/input.js:1:1] 1 │ `hello ${10 `test` - · ▲ - · ╰── Expect `$}` here, but found `EOF` ╰──── × Unterminated string @@ -7828,11 +7783,9 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───── ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0000/input.js:1:1] 1 │ { - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token @@ -8245,37 +8198,29 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─────── ╰──── - × Expect token + × Expected `]` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0057/input.js:1:1] 1 │ [ - · ▲ - · ╰── Expect `]` here, but found `EOF` ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0058/input.js:1:1] 1 │ [, - · ▲ ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0059/input.js:1:1] 1 │ 1 + { - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0060/input.js:1:1] 1 │ 1 + { t:t - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0061/input.js:1:1] 1 │ 1 + { t:t, - · ▲ ╰──── × Unterminated regular expression @@ -8300,7 +8245,7 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Invalid Character `=` ╭─[esprima/invalid-syntax/migrated_0065/input.js:1:1] 1 │ i #= 42 - · ▲ + · ─ ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -8322,18 +8267,14 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ── ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0068/input.js:1:1] 1 │ 1 + ( - · ▲ - · ╰── Expect `)` here, but found `EOF` ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0069/input.js:1:1] 1 │ { - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token @@ -8375,39 +8316,39 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ── ╰──── - × Expect token + × Expected `,` but found `{` ╭─[esprima/invalid-syntax/migrated_0076/input.js:1:1] 1 │ ({ set: s() { } }) · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `{` ╭─[esprima/invalid-syntax/migrated_0077/input.js:1:1] 1 │ ({ set: s(a, b) { } }) · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `{` ╭─[esprima/invalid-syntax/migrated_0078/input.js:1:1] 1 │ ({ get: g(d) { } }) · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected ╰──── - × Expect token + × Expected `]` but found `,` ╭─[esprima/invalid-syntax/migrated_0080/input.js:1:1] 1 │ ({[a,b]:0}) · ┬ - · ╰── Expect `]` here, but found `,` + · ╰── `]` expected ╰──── - × Expect token + × Expected `]` but found `,` ╭─[esprima/invalid-syntax/migrated_0081/input.js:1:1] 1 │ ({get[a,b]:0}) · ┬ - · ╰── Expect `]` here, but found `,` + · ╰── `]` expected ╰──── × Unexpected token @@ -8416,18 +8357,16 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─ ╰──── - × Expect token + × Expected `,` but found `{` ╭─[esprima/invalid-syntax/migrated_0083/input.js:1:1] 1 │ ({get{a}:0}) · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0084/input.js:1:1] 1 │ ({get - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × Cannot assign to 'eval' in strict mode @@ -8495,11 +8434,9 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ▲ ╰──── - × Expect token + × Expected `:` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0096/input.js:1:1] 1 │ () ? 42 - · ▲ - · ╰── Expect `:` here, but found `EOF` ╰──── × Empty parenthesized expression @@ -8534,11 +8471,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ──── ╰──── - × Expect token + × Expected `,` but found `/` ╭─[esprima/invalid-syntax/migrated_0102/input.js:1:1] 1 │ p = { q/ } · ┬ - · ╰── Expect `,` here, but found `/` + · ╰── `,` expected ╰──── × Unexpected token @@ -8554,11 +8491,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `(` but found `.` ╭─[esprima/invalid-syntax/migrated_0113/input.js:1:1] 1 │ if.a; · ┬ - · ╰── Expect `(` here, but found `.` + · ╰── `(` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -8611,7 +8548,6 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Unexpected token ╭─[esprima/invalid-syntax/migrated_0120/input.js:1:1] 1 │ throw - · ▲ ╰──── × Unexpected token @@ -8630,7 +8566,6 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Unexpected token ╭─[esprima/invalid-syntax/migrated_0122/input.js:1:1] 1 │ throw - · ▲ ╰──── × Only a single declaration is allowed in a `for...in` statement @@ -8639,11 +8574,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───────── ╰──── - × Expect token + × Expected `;` but found `)` ╭─[esprima/invalid-syntax/migrated_0124/input.js:1:1] 1 │ for ((i in {})); · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected ╰──── × Unexpected token @@ -8661,37 +8596,31 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Unexpected token ╭─[esprima/invalid-syntax/migrated_0127/input.js:1:1] 1 │ if(false) - · ▲ ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0128/input.js:1:1] 1 │ if(false) doThis(); else - · ▲ ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0129/input.js:1:1] 1 │ do - · ▲ ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0130/input.js:1:1] 1 │ while(false) - · ▲ ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0131/input.js:1:1] 1 │ for(;;) - · ▲ ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0132/input.js:1:1] 1 │ with(x) - · ▲ ╰──── × Missing catch or finally clause @@ -8706,11 +8635,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ── ╰──── - × Expect token + × Expected `)` but found `(` ╭─[esprima/invalid-syntax/migrated_0135/input.js:1:1] 1 │ try {} catch (answer()) {} · ┬ - · ╰── Expect `)` here, but found `(` + · ╰── `)` expected ╰──── × Unexpected token @@ -8966,11 +8895,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: A `continue` statement can only be used within an enclosing `for`, `while` or `do while` - × Expect token + × Expected `while` but found `*` ╭─[esprima/invalid-syntax/migrated_0175/input.js:1:1] 1 │ do { x } * · ┬ - · ╰── Expect `while` here, but found `*` + · ╰── `while` expected ╰──── × Use of undefined label @@ -9449,27 +9378,21 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" × Unexpected token ╭─[esprima/invalid-syntax/migrated_0252/input.js:1:1] 1 │ var - · ▲ ╰──── × Unexpected token ╭─[esprima/invalid-syntax/migrated_0254/input.js:1:1] 1 │ const - · ▲ ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0255/input.js:1:1] 1 │ { ; ; - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0256/input.js:1:1] 1 │ function t() { ; ; - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -9491,53 +9414,45 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ──────── ╰──── - × Expect token + × Expected `{` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0261/input.js:1:1] 1 │ class - · ▲ - · ╰── Expect `{` here, but found `EOF` ╰──── - × Expect token + × Expected `{` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0262/input.js:1:1] 1 │ class - · ▲ - · ╰── Expect `{` here, but found `EOF` ╰──── - × Expect token + × Expected `{` but found `;` ╭─[esprima/invalid-syntax/migrated_0263/input.js:1:1] 1 │ class; · ┬ - · ╰── Expect `{` here, but found `;` + · ╰── `{` expected ╰──── - × Expect token + × Expected `{` but found `+` ╭─[esprima/invalid-syntax/migrated_0264/input.js:1:1] 1 │ class A extends a + b {} · ┬ - · ╰── Expect `{` here, but found `+` + · ╰── `{` expected ╰──── - × Expect token + × Expected `{` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0265/input.js:1:1] 1 │ class A - · ▲ - · ╰── Expect `{` here, but found `EOF` ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[esprima/invalid-syntax/migrated_0266/input.js:1:1] 1 │ class A { - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── - × Expect token + × Expected `{` but found `;` ╭─[esprima/invalid-syntax/migrated_0267/input.js:1:1] 1 │ class A; · ┬ - · ╰── Expect `{` here, but found `;` + · ╰── `{` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -9759,11 +9674,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───── ╰──── - × Expect token + × Expected `:` but found `;` ╭─[typescript/arrow-function/arrow-like-in-conditional-2/input.ts:1:1] 1 │ 0 ? v => (sum = v) : v => 0; · ┬ - · ╰── Expect `:` here, but found `;` + · ╰── `:` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -9792,11 +9707,9 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ──── ╰──── - × Expect token + × Expected `=>` but found `EOF` ╭─[typescript/async-call/with-optional-parameter/input.ts:1:1] 1 │ async(x?) - · ┬ - · ╰── Expect `=>` here, but found `EOF` ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -9827,11 +9740,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `=>` but found `;` ╭─[typescript/cast/invalid/input.ts:1:1] 1 │ (a:b); · ┬ - · ╰── Expect `=>` here, but found `;` + · ╰── `=>` expected 2 │ (a:b,c:d); ╰──── @@ -9843,11 +9756,11 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `,` but found `:` ╭─[typescript/cast/parameter-typecast/input.ts:1:1] 1 │ func(a: T); · ┬ - · ╰── Expect `,` here, but found `:` + · ╰── `,` expected 2 │ func(a: T); ╰──── @@ -9866,12 +9779,9 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" ╰──── help: Try insert a semicolon here - × Expect token - ╭─[typescript/class/extends-empty/input.ts:1:1] - 1 │ interface foo extends { + × Expected `{` but found `EOF` + ╭─[typescript/class/extends-empty/input.ts:2:1] 2 │ } - · ▲ - · ╰── Expect `{` here, but found `EOF` ╰──── × Unexpected token @@ -10046,21 +9956,21 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" 4 │ } ╰──── - × Expect token + × Expected `(` but found `<` ╭─[typescript/interface/get-set-type-parameters-babel-7/input.ts:1:1] 1 │ interface Foo { 2 │ get foo(): string; · ┬ - · ╰── Expect `(` here, but found `<` + · ╰── `(` expected 3 │ set bar(v); ╰──── - × Expect token + × Expected `(` but found `<` ╭─[typescript/interface/get-set-type-parameters/input.ts:1:1] 1 │ interface Foo { 2 │ get foo(): string; · ┬ - · ╰── Expect `(` here, but found `<` + · ╰── `(` expected 3 │ set bar(v); ╰──── @@ -10209,12 +10119,12 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" 2 │ yield 2; ╰──── - × Expect token + × Expected `,` but found `:` ╭─[typescript/tsx/cast-invalid/input.tsx:2:1] 2 │ return ( 3 │
· ┬ - · ╰── Expect `,` here, but found `:` + · ╰── `,` expected 4 │ ); ╰──── @@ -10275,32 +10185,24 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ───── ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[typescript/types-arrow-function-babel-7/invalid-incomplete-array-like/input.ts:1:1] 1 │ type F = ([ - · ▲ - · ╰── Expect `)` here, but found `EOF` ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[typescript/types-arrow-function-babel-7/invalid-incomplete-object-like/input.ts:1:1] 1 │ type F = ({ - · ▲ - · ╰── Expect `)` here, but found `EOF` ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[typescript/types-arrow-function/invalid-incomplete-array-like/input.ts:1:1] 1 │ type F = ([ - · ▲ - · ╰── Expect `)` here, but found `EOF` ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[typescript/types-arrow-function/invalid-incomplete-object-like/input.ts:1:1] 1 │ type F = ({ - · ▲ - · ╰── Expect `)` here, but found `EOF` ╰──── × Unexpected token @@ -10333,60 +10235,60 @@ Expect to Parse: "typescript/types/const-type-parameters/input.ts" · ─ ╰──── - × Expect token + × Expected `,` but found `:` ╭─[typescript/types/tuple-invalid-label-1/input.ts:1:1] 1 │ type T = [x.y: A]; · ┬ - · ╰── Expect `,` here, but found `:` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `:` ╭─[typescript/types/tuple-invalid-label-2/input.ts:1:1] 1 │ type T = [x: A]; · ┬ - · ╰── Expect `,` here, but found `:` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `?` ╭─[typescript/types/tuple-labeled-invalid-optional/input.ts:1:1] 1 │ type T = [x: A?]; · ┬ - · ╰── Expect `,` here, but found `?` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[typescript/types/variance-annotations-babel-7/input.ts:94:1] 94 │ 95 │ type T20 = T; // Error · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 96 │ type T21 = T; // Error ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[typescript/types/variance-annotations-with-jsx-babel-7/input.tsx:97:1] 97 │ 98 │ type T20 = T; // Error · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 99 │ type T21 = T; // Error ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[typescript/types/variance-annotations-with-jsx/input.tsx:97:1] 97 │ 98 │ type T20 = T; // Error · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 99 │ type T21 = T; // Error ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[typescript/types/variance-annotations/input.ts:94:1] 94 │ 95 │ type T20 = T; // Error · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 96 │ type T21 = T; // Error ╰──── diff --git a/tasks/coverage/test262.snap b/tasks/coverage/test262.snap index bdbd39f53cb47..9fa56917353ca 100644 --- a/tasks/coverage/test262.snap +++ b/tasks/coverage/test262.snap @@ -79,12 +79,12 @@ Negative Passed: 3915/3915 (100.00%) ╰──── help: Try insert a semicolon here - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9.2_A1_T3.js:16:1] 16 │ for( a ; b 17 │ ) · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected ╰──── × Unexpected token @@ -101,12 +101,12 @@ Negative Passed: 3915/3915 (100.00%) · ─ ╰──── - × Expect token + × Expected `,` but found `;` ╭─[language/asi/S7.9_A10_T4.js:15:1] 15 │ //CHECK#1 16 │ ({};) * 1 · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected ╰──── × Unexpected token @@ -173,93 +173,93 @@ Negative Passed: 3915/3915 (100.00%) 25 │ ╰─▶ y ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T1.js:19:1] 19 │ for(; 20 │ ) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 21 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T10.js:20:1] 20 │ false 21 │ ;) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 22 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T2.js:20:1] 20 │ ; 21 │ ) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 22 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T3.js:19:1] 19 │ for( 20 │ ;) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 21 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T4.js:20:1] 20 │ 21 │ ;) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 22 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T5.js:19:1] 19 │ for(false;false 20 │ ) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 21 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T6.js:20:1] 20 │ false 21 │ ) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 22 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T7.js:20:1] 20 │ ; 21 │ ) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 22 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T8.js:20:1] 20 │ ;false 21 │ ) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 22 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.2_T9.js:19:1] 19 │ for( 20 │ ;false) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 21 │ break; ╰──── @@ -287,48 +287,48 @@ Negative Passed: 3915/3915 (100.00%) 23 │ break; ╰──── - × Expect token + × Expected `;` but found `)` ╭─[language/asi/S7.9_A6.3_T4.js:20:1] 20 │ false 21 │ ) { · ┬ - · ╰── Expect `;` here, but found `)` + · ╰── `;` expected 22 │ break; ╰──── - × Expect token + × Expected `;` but found `false` ╭─[language/asi/S7.9_A6.3_T5.js:19:1] 19 │ for(false 20 │ false · ──┬── - · ╰── Expect `;` here, but found `false` + · ╰── `;` expected 21 │ ) { ╰──── - × Expect token + × Expected `;` but found `false` ╭─[language/asi/S7.9_A6.3_T6.js:20:1] 20 │ false 21 │ false · ──┬── - · ╰── Expect `;` here, but found `false` + · ╰── `;` expected 22 │ ) { ╰──── - × Expect token + × Expected `;` but found `false` ╭─[language/asi/S7.9_A6.3_T7.js:20:1] 20 │ false 21 │ false · ──┬── - · ╰── Expect `;` here, but found `false` + · ╰── `;` expected 22 │ false ╰──── - × Expect token + × Expected `)` but found `;` ╭─[language/asi/S7.9_A6.4_T1.js:17:1] 17 │ //CHECK#1 18 │ for(false;false;false;) { · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected 19 │ break; ╰──── @@ -341,25 +341,21 @@ Negative Passed: 3915/3915 (100.00%) ╰──── × Unexpected token - ╭─[language/asi/S7.9_A9_T6.js:16:1] - 16 │ do + ╭─[language/asi/S7.9_A9_T6.js:17:1] 17 │ while (false) - · ▲ ╰──── × Unexpected token - ╭─[language/asi/S7.9_A9_T7.js:17:1] - 17 │ + ╭─[language/asi/S7.9_A9_T7.js:18:1] 18 │ while (false) - · ▲ ╰──── - × Expect token + × Expected `while` but found `;` ╭─[language/asi/S7.9_A9_T8.js:15:1] 15 │ //CHECK#1 16 │ do {}; · ┬ - · ╰── Expect `while` here, but found `;` + · ╰── `while` expected 17 │ while (false) ╰──── @@ -1325,12 +1321,12 @@ Negative Passed: 3915/3915 (100.00%) 2 │ ╰──── - × Expect token + × Expected `in` but found `throw` ╭─[language/comments/hashbang/escaped-bang-041.js:19:1] 19 │ 20 │ throw "Test262: This statement should not be evaluated."; · ──┬── - · ╰── Expect `in` here, but found `throw` + · ╰── `in` expected ╰──── × Invalid Character `!` @@ -1340,12 +1336,12 @@ Negative Passed: 3915/3915 (100.00%) 2 │ ╰──── - × Expect token + × Expected `in` but found `throw` ╭─[language/comments/hashbang/escaped-bang-u0021.js:19:1] 19 │ 20 │ throw "Test262: This statement should not be evaluated."; · ──┬── - · ╰── Expect `in` here, but found `throw` + · ╰── `in` expected ╰──── × Invalid Character `!` @@ -1355,12 +1351,12 @@ Negative Passed: 3915/3915 (100.00%) 2 │ ╰──── - × Expect token + × Expected `in` but found `throw` ╭─[language/comments/hashbang/escaped-bang-u21.js:19:1] 19 │ 20 │ throw "Test262: This statement should not be evaluated."; · ──┬── - · ╰── Expect `in` here, but found `throw` + · ╰── `in` expected ╰──── × Invalid Unicode escape sequence @@ -1370,12 +1366,12 @@ Negative Passed: 3915/3915 (100.00%) 2 │ ╰──── - × Expect token + × Expected `in` but found `throw` ╭─[language/comments/hashbang/escaped-bang-x21.js:19:1] 19 │ 20 │ throw "Test262: This statement should not be evaluated."; · ──┬── - · ╰── Expect `in` here, but found `throw` + · ╰── `in` expected ╰──── × Invalid Unicode escape sequence @@ -1456,7 +1452,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/comments/hashbang/function-body.js:18:1] 18 │ 19 │ function fn() {#! - · ▲ + · ─ 20 │ } ╰──── @@ -1473,7 +1469,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/comments/hashbang/preceding-directive-prologue-sc.js:1:1] 1 │ "use strict"; 2 │ #! - · ▲ + · ─ 3 │ ╰──── @@ -1481,14 +1477,14 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/comments/hashbang/preceding-directive-prologue.js:1:1] 1 │ "use strict" 2 │ #! - · ▲ + · ─ 3 │ ╰──── × Invalid Character `!` ╭─[language/comments/hashbang/preceding-empty-statement.js:1:1] 1 │ ;#! - · ▲ + · ─ 2 │ ╰──── @@ -1496,7 +1492,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/comments/hashbang/preceding-hashbang.js:1:1] 1 │ #! 2 │ #! - · ▲ + · ─ 3 │ ╰──── @@ -1504,7 +1500,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/comments/hashbang/preceding-line-comment.js:1:1] 1 │ // 2 │ #! - · ▲ + · ─ 3 │ ╰──── @@ -1512,14 +1508,14 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/comments/hashbang/preceding-multi-line-comment.js:1:1] 1 │ /* 2 │ */#! - · ▲ + · ─ 3 │ ╰──── × Invalid Character `!` ╭─[language/comments/hashbang/preceding-whitespace.js:1:1] 1 │ #! - · ▲ + · ─ 2 │ ╰──── @@ -1527,7 +1523,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/comments/hashbang/statement-block.js:19:1] 19 │ { 20 │ #! - · ▲ + · ─ 21 │ } ╰──── @@ -9683,21 +9679,21 @@ Negative Passed: 3915/3915 (100.00%) 24 │ ╰──── - × Expect token + × Expected `{` but found `=>` ╭─[language/expressions/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js:22:1] 22 │ 23 │ var C = class extends () => {} { · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 24 │ ╰──── - × Expect token + × Expected `{` but found `=>` ╭─[language/expressions/class/elements/syntax/early-errors/class-heritage-array-literal-async-arrow-heritage.js:22:1] 22 │ 23 │ var C = class extends async () => {} { · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 24 │ ╰──── @@ -11055,12 +11051,12 @@ Negative Passed: 3915/3915 (100.00%) ╰──── help: Try insert a semicolon here - × Expect token + × Expected `{` but found `=>` ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-array-literal.js:35:1] 35 │ 36 │ var C = class extends (o) => [o.#foo] · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 37 │ { ╰──── @@ -11096,12 +11092,12 @@ Negative Passed: 3915/3915 (100.00%) 37 │ { ╰──── - × Expect token + × Expected `{` but found `=>` ╭─[language/expressions/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-obj-literal.js:35:1] 35 │ 36 │ var C = class extends (o) => {x: o.#foo} · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 37 │ { ╰──── @@ -11313,7 +11309,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-error.js:34:1] 34 │ var C = class { 35 │ # x - · ▲ + · ─ 36 │ }; ╰──── @@ -11353,7 +11349,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js:27:1] 27 │ var C = class { 28 │ get # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11370,7 +11366,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js:27:1] 27 │ var C = class { 28 │ set # m(_) {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11387,7 +11383,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js:27:1] 27 │ var C = class { 28 │ async * # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11395,7 +11391,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js:27:1] 27 │ var C = class { 28 │ async # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11412,7 +11408,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js:36:1] 36 │ m() { 37 │ this.f().# x; - · ▲ + · ─ 38 │ } ╰──── @@ -11420,7 +11416,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js:27:1] 27 │ var C = class { 28 │ # x = 1; - · ▲ + · ─ 29 │ }; ╰──── @@ -11428,7 +11424,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-field.js:27:1] 27 │ var C = class { 28 │ # x; - · ▲ + · ─ 29 │ }; ╰──── @@ -11436,7 +11432,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js:27:1] 27 │ var C = class { 28 │ * # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11444,7 +11440,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js:31:1] 31 │ m() { 32 │ this.# x; - · ▲ + · ─ 33 │ } ╰──── @@ -11452,7 +11448,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js:27:1] 27 │ var C = class { 28 │ # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11460,7 +11456,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js:27:1] 27 │ var C = class { 28 │ static get # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11477,7 +11473,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js:27:1] 27 │ var C = class { 28 │ static set # m(_) {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11494,7 +11490,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js:27:1] 27 │ var C = class { 28 │ static async * # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11502,7 +11498,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js:27:1] 27 │ var C = class { 28 │ static async # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11519,7 +11515,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js:27:1] 27 │ var C = class { 28 │ static # x = 1; - · ▲ + · ─ 29 │ }; ╰──── @@ -11536,7 +11532,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js:27:1] 27 │ var C = class { 28 │ static # x; - · ▲ + · ─ 29 │ }; ╰──── @@ -11553,7 +11549,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js:27:1] 27 │ var C = class { 28 │ static * # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -11561,7 +11557,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/expressions/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js:27:1] 27 │ var C = class { 28 │ static # m() {} - · ▲ + · ─ 29 │ }; ╰──── @@ -13143,12 +13139,12 @@ Negative Passed: 3915/3915 (100.00%) · ─── ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js:37:1] 37 │ 38 │ let f = () => import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected ╰──── × Cannot use new with dynamic import @@ -13167,12 +13163,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ }; ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js:38:1] 38 │ let f = () => { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ }; ╰──── @@ -13200,12 +13196,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ }); ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js:38:1] 38 │ (async () => { 39 │ await import('./empty_FIXTURE.js', {}, '') · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ }); ╰──── @@ -13231,12 +13227,12 @@ Negative Passed: 3915/3915 (100.00%) · ─── ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args.js:37:1] 37 │ 38 │ (async () => await import('./empty_FIXTURE.js', {}, '')) · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected ╰──── × Unexpected token @@ -13271,12 +13267,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js:38:1] 38 │ async function f() { 39 │ await import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13296,12 +13292,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js:38:1] 38 │ async function f() { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13329,12 +13325,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js:38:1] 38 │ async function f() { 39 │ return await import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13362,12 +13358,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js:38:1] 38 │ async function * f() { 39 │ await import('./empty_FIXTURE.js', {}, '') · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13403,12 +13399,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ }; ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js:38:1] 38 │ label: { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ }; ╰──── @@ -13428,12 +13424,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ }; ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js:38:1] 38 │ { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ }; ╰──── @@ -13461,12 +13457,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } while (false); ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js:38:1] 38 │ do { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } while (false); ╰──── @@ -13500,12 +13496,12 @@ Negative Passed: 3915/3915 (100.00%) · ─── ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js:39:1] 39 │ 40 │ } else import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected ╰──── × Cannot use new with dynamic import @@ -13524,12 +13520,12 @@ Negative Passed: 3915/3915 (100.00%) 45 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js:40:1] 40 │ } else { 41 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 42 │ } ╰──── @@ -13557,12 +13553,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js:38:1] 38 │ function fn() { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13590,12 +13586,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js:38:1] 38 │ function fn() { 39 │ return import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13629,12 +13625,12 @@ Negative Passed: 3915/3915 (100.00%) · ─── ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js:37:1] 37 │ 38 │ if (true) import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected ╰──── × Cannot use new with dynamic import @@ -13653,12 +13649,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js:38:1] 38 │ if (true) { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13686,12 +13682,12 @@ Negative Passed: 3915/3915 (100.00%) 45 │ }; ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js:40:1] 40 │ x++; 41 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 42 │ }; ╰──── @@ -13725,12 +13721,12 @@ Negative Passed: 3915/3915 (100.00%) · ─── ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args.js:37:1] 37 │ 38 │ with (import('./empty_FIXTURE.js', {}, '')) {} · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected ╰──── × Cannot use new with dynamic import @@ -13749,12 +13745,12 @@ Negative Passed: 3915/3915 (100.00%) 43 │ } ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js:38:1] 38 │ with ({}) { 39 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected 40 │ } ╰──── @@ -13780,12 +13776,12 @@ Negative Passed: 3915/3915 (100.00%) · ─── ╰──── - × Expect token + × Expected `)` but found `string` ╭─[language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args.js:27:1] 27 │ 28 │ import('./empty_FIXTURE.js', {}, ''); · ─┬ - · ╰── Expect `)` here, but found `string` + · ╰── `)` expected ╰──── × Unexpected exponentiation expression @@ -15683,12 +15679,12 @@ Negative Passed: 3915/3915 (100.00%) 18 │ }) ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[language/expressions/object/method-definition/early-errors-object-method-async-lineterminator.js:20:1] 20 │ async 21 │ foo() { } · ─┬─ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 22 │ }) ╰──── @@ -15735,12 +15731,12 @@ Negative Passed: 3915/3915 (100.00%) 18 │ }) ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js:16:1] 16 │ ({ 17 │ async function foo(bar) { let bar; } · ─┬─ - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 18 │ }) ╰──── @@ -16281,20 +16277,20 @@ Negative Passed: 3915/3915 (100.00%) ╰──── help: Try insert a semicolon here - × Expect token + × Expected `(` but found `}` ╭─[language/expressions/object/prop-def-invalid-async-prefix.js:34:1] 34 │ 35 │ ({async async}); · ┬ - · ╰── Expect `(` here, but found `}` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `}` ╭─[language/expressions/object/prop-def-invalid-star-prefix.js:20:1] 20 │ 21 │ ({* foo}); · ┬ - · ╰── Expect `(` here, but found `}` + · ╰── `(` expected ╰──── × The keyword 'public' is reserved @@ -18030,28 +18026,28 @@ Negative Passed: 3915/3915 (100.00%) · ─────── ╰──── - × Expect token + × Expected `(` but found `=` ╭─[language/keywords/ident-ref-for.js:19:1] 19 │ 20 │ for = 1; · ┬ - · ╰── Expect `(` here, but found `=` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `=` ╭─[language/keywords/ident-ref-function.js:19:1] 19 │ 20 │ function = 1; · ┬ - · ╰── Expect `(` here, but found `=` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `=` ╭─[language/keywords/ident-ref-if.js:19:1] 19 │ 20 │ if = 1; · ┬ - · ╰── Expect `(` here, but found `=` + · ╰── `(` expected ╰──── × Unexpected token @@ -18082,12 +18078,12 @@ Negative Passed: 3915/3915 (100.00%) · ─ ╰──── - × Expect token + × Expected `(` but found `=` ╭─[language/keywords/ident-ref-switch.js:19:1] 19 │ 20 │ switch = 1; · ┬ - · ╰── Expect `(` here, but found `=` + · ╰── `(` expected ╰──── × Unexpected token @@ -18104,12 +18100,12 @@ Negative Passed: 3915/3915 (100.00%) · ─ ╰──── - × Expect token + × Expected `{` but found `=` ╭─[language/keywords/ident-ref-try.js:19:1] 19 │ 20 │ try = 1; · ┬ - · ╰── Expect `{` here, but found `=` + · ╰── `{` expected ╰──── × Unexpected token @@ -18133,20 +18129,20 @@ Negative Passed: 3915/3915 (100.00%) · ─ ╰──── - × Expect token + × Expected `(` but found `=` ╭─[language/keywords/ident-ref-while.js:19:1] 19 │ 20 │ while = 1; · ┬ - · ╰── Expect `(` here, but found `=` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `=` ╭─[language/keywords/ident-ref-with.js:19:1] 19 │ 20 │ with = 1; · ┬ - · ╰── Expect `(` here, but found `=` + · ╰── `(` expected ╰──── × Unterminated string @@ -21523,53 +21519,53 @@ Negative Passed: 3915/3915 (100.00%) · ─────── ╰──── - × Expect token + × Expected `(` but found `{` ╭─[language/statements/block/12.1-4.js:13:1] 13 │ 14 │ if{};else{} · ┬ - · ╰── Expect `(` here, but found `{` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `{` ╭─[language/statements/block/12.1-5.js:13:1] 13 │ 14 │ if{};else if{} · ┬ - · ╰── Expect `(` here, but found `{` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `{` ╭─[language/statements/block/12.1-6.js:15:1] 15 │ 16 │ if{};else if{};else{} · ┬ - · ╰── Expect `(` here, but found `{` + · ╰── `(` expected ╰──── - × Expect token + × Expected `while` but found `;` ╭─[language/statements/block/12.1-7.js:13:1] 13 │ 14 │ do{};while() · ┬ - · ╰── Expect `while` here, but found `;` + · ╰── `while` expected ╰──── - × Expect token + × Expected `,` but found `;` ╭─[language/statements/block/S12.1_A4_T1.js:18:1] 18 │ //CHECK#1 19 │ y={__func;}(); · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 20 │ // ╰──── - × Expect token + × Expected `,` but found `;` ╭─[language/statements/block/S12.1_A4_T2.js:18:1] 18 │ //CHECK#1 19 │ y={x;}; · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 20 │ // ╰──── @@ -22532,12 +22528,12 @@ Negative Passed: 3915/3915 (100.00%) 16 │ } ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js:16:1] 16 │ class Foo { 17 │ async function foo(bar) { let bar; } · ─┬─ - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 18 │ } ╰──── @@ -25089,21 +25085,21 @@ Negative Passed: 3915/3915 (100.00%) 24 │ ╰──── - × Expect token + × Expected `{` but found `=>` ╭─[language/statements/class/elements/syntax/early-errors/class-heritage-array-literal-arrow-heritage.js:22:1] 22 │ 23 │ class C extends () => {} { · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 24 │ ╰──── - × Expect token + × Expected `{` but found `=>` ╭─[language/statements/class/elements/syntax/early-errors/class-heritage-array-literal-async-arrow-heritage.js:22:1] 22 │ 23 │ class C extends async () => {} { · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 24 │ ╰──── @@ -26461,12 +26457,12 @@ Negative Passed: 3915/3915 (100.00%) ╰──── help: Try insert a semicolon here - × Expect token + × Expected `{` but found `=>` ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-array-literal.js:35:1] 35 │ 36 │ class C extends (o) => [o.#foo] · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 37 │ { ╰──── @@ -26502,12 +26498,12 @@ Negative Passed: 3915/3915 (100.00%) 37 │ { ╰──── - × Expect token + × Expected `{` but found `=>` ╭─[language/statements/class/elements/syntax/early-errors/grammar-private-environment-on-class-heritage-obj-literal.js:35:1] 35 │ 36 │ class C extends (o) => {x: o.#foo} · ─┬ - · ╰── Expect `{` here, but found `=>` + · ╰── `{` expected 37 │ { ╰──── @@ -26719,7 +26715,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-error.js:34:1] 34 │ class C { 35 │ # x - · ▲ + · ─ 36 │ } ╰──── @@ -26759,7 +26755,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-accessor-get-meth.js:27:1] 27 │ class C { 28 │ get # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26776,7 +26772,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-accessor-set-meth.js:27:1] 27 │ class C { 28 │ set # m(_) {} - · ▲ + · ─ 29 │ } ╰──── @@ -26793,7 +26789,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-async-gen-meth.js:27:1] 27 │ class C { 28 │ async * # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26801,7 +26797,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-async-meth.js:27:1] 27 │ class C { 28 │ async # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26818,7 +26814,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-call-expr.js:36:1] 36 │ m() { 37 │ this.f().# x; - · ▲ + · ─ 38 │ } ╰──── @@ -26826,7 +26822,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-field-init.js:27:1] 27 │ class C { 28 │ # x = 1; - · ▲ + · ─ 29 │ } ╰──── @@ -26834,7 +26830,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-field.js:27:1] 27 │ class C { 28 │ # x; - · ▲ + · ─ 29 │ } ╰──── @@ -26842,7 +26838,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-gen-meth.js:27:1] 27 │ class C { 28 │ * # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26850,7 +26846,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-member-expr.js:31:1] 31 │ m() { 32 │ this.# x; - · ▲ + · ─ 33 │ } ╰──── @@ -26858,7 +26854,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-meth.case.js:27:1] 27 │ class C { 28 │ # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26866,7 +26862,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-get-meth.js:27:1] 27 │ class C { 28 │ static get # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26883,7 +26879,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-accessor-set-meth.js:27:1] 27 │ class C { 28 │ static set # m(_) {} - · ▲ + · ─ 29 │ } ╰──── @@ -26900,7 +26896,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-async-gen-meth.js:27:1] 27 │ class C { 28 │ static async * # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26908,7 +26904,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-async-meth.js:27:1] 27 │ class C { 28 │ static async # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26925,7 +26921,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-field-init.js:27:1] 27 │ class C { 28 │ static # x = 1; - · ▲ + · ─ 29 │ } ╰──── @@ -26942,7 +26938,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-field.js:27:1] 27 │ class C { 28 │ static # x; - · ▲ + · ─ 29 │ } ╰──── @@ -26959,7 +26955,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-gen-meth.js:27:1] 27 │ class C { 28 │ static * # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -26967,7 +26963,7 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/class/elements/syntax/early-errors/grammar-privatename-whitespace-error-static-meth.js:27:1] 27 │ class C { 28 │ static # m() {} - · ▲ + · ─ 29 │ } ╰──── @@ -28644,12 +28640,12 @@ Negative Passed: 3915/3915 (100.00%) · ──────── ╰──── - × Expect token + × Expected `while` but found `var` ╭─[language/statements/do-while/S12.6.1_A12.js:16:1] 16 │ //CHECK#1 17 │ do var x=1; var y =2; while (0); · ─┬─ - · ╰── Expect `while` here, but found `var` + · ╰── `while` expected 18 │ // ╰──── @@ -28661,57 +28657,57 @@ Negative Passed: 3915/3915 (100.00%) 20 │ // ╰──── - × Expect token + × Expected `(` but found `decimal` ╭─[language/statements/do-while/S12.6.1_A6_T1.js:16:1] 16 │ //CHECK#1 17 │ do break; while 1; · ┬ - · ╰── Expect `(` here, but found `decimal` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `decimal` ╭─[language/statements/do-while/S12.6.1_A6_T2.js:16:1] 16 │ //CHECK#1 17 │ do break; while 0; · ┬ - · ╰── Expect `(` here, but found `decimal` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `true` ╭─[language/statements/do-while/S12.6.1_A6_T3.js:16:1] 16 │ //CHECK#1 17 │ do break; while true; · ──┬─ - · ╰── Expect `(` here, but found `true` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `false` ╭─[language/statements/do-while/S12.6.1_A6_T4.js:16:1] 16 │ //CHECK#1 17 │ do break; while false; · ──┬── - · ╰── Expect `(` here, but found `false` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `string` ╭─[language/statements/do-while/S12.6.1_A6_T5.js:16:1] 16 │ //CHECK#1 17 │ do break; while ''; · ─┬ - · ╰── Expect `(` here, but found `string` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `string` ╭─[language/statements/do-while/S12.6.1_A6_T6.js:16:1] 16 │ //CHECK#1 17 │ do break; while 'hood'; · ───┬── - · ╰── Expect `(` here, but found `string` + · ╰── `(` expected 18 │ // ╰──── @@ -29538,12 +29534,12 @@ Negative Passed: 3915/3915 (100.00%) ╰──── help: Wrap this declaration in a block statement - × Expect token + × Expected `,` but found `;` ╭─[language/statements/for-in/S12.6.4_A15.js:18:1] 18 │ //CHECK# 19 │ for(x in {__arr;}){ · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 20 │ break ; ╰──── @@ -30597,20 +30593,20 @@ Negative Passed: 3915/3915 (100.00%) · ─────────── ╰──── - × Expect token + × Expected `)` but found `,` ╭─[language/statements/for-of/head-decl-no-expr.js:16:1] 16 │ 17 │ for (let x of [], []) {} · ┬ - · ╰── Expect `)` here, but found `,` + · ╰── `)` expected ╰──── - × Expect token + × Expected `)` but found `,` ╭─[language/statements/for-of/head-expr-no-expr.js:17:1] 17 │ var x; 18 │ for (x of [], []) {} · ┬ - · ╰── Expect `)` here, but found `,` + · ╰── `)` expected ╰──── × Identifier `x` has already been declared @@ -30676,12 +30672,12 @@ Negative Passed: 3915/3915 (100.00%) · ────────── ╰──── - × Expect token + × Expected `;` but found `[` ╭─[language/statements/for-of/head-lhs-let.js:24:1] 24 │ 25 │ for ( let of [] ) ; · ┬ - · ╰── Expect `;` here, but found `[` + · ╰── `;` expected ╰──── × Unexpected token @@ -30698,12 +30694,12 @@ Negative Passed: 3915/3915 (100.00%) · ───────── ╰──── - × Expect token + × Expected `)` but found `,` ╭─[language/statements/for-of/head-var-no-expr.js:16:1] 16 │ 17 │ for (var x of [], []) {} · ┬ - · ╰── Expect `)` here, but found `,` + · ╰── `)` expected ╰──── × Invalid function declaration @@ -30782,21 +30778,21 @@ Negative Passed: 3915/3915 (100.00%) 25 │ __str+=""+index+index_n; ╰──── - × Expect token + × Expected `)` but found `;` ╭─[language/statements/for/S12.6.3_A4.1.js:21:1] 21 │ //CHECK#1 22 │ for (var a in arr;1;){ · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected 23 │ break; ╰──── - × Expect token + × Expected `)` but found `;` ╭─[language/statements/for/S12.6.3_A4_T1.js:21:1] 21 │ //CHECK#1 22 │ for (a in arr;1;){ · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected 23 │ break; ╰──── @@ -30808,57 +30804,57 @@ Negative Passed: 3915/3915 (100.00%) 23 │ break; ╰──── - × Expect token + × Expected `)` but found `;` ╭─[language/statements/for/S12.6.3_A7.1_T1.js:20:1] 20 │ //CHECK#1 21 │ for(var index=0; index<10; index++; index--); · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected 22 │ // ╰──── - × Expect token + × Expected `)` but found `;` ╭─[language/statements/for/S12.6.3_A7.1_T2.js:20:1] 20 │ //CHECK#1 21 │ for(var index=0; index<10; index+=4; index++; index--) ; · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected 22 │ // ╰──── - × Expect token + × Expected `)` but found `;` ╭─[language/statements/for/S12.6.3_A7_T1.js:20:1] 20 │ //CHECK#1 21 │ for(index=0; index<10; index++; index--) ; · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected 22 │ // ╰──── - × Expect token + × Expected `)` but found `;` ╭─[language/statements/for/S12.6.3_A7_T2.js:20:1] 20 │ //CHECK#1 21 │ for(index=0; index<10; index+=4; index++; index--) ; · ┬ - · ╰── Expect `)` here, but found `;` + · ╰── `)` expected 22 │ // ╰──── - × Expect token + × Expected `,` but found `++` ╭─[language/statements/for/S12.6.3_A8.1_T1.js:20:1] 20 │ //CHECK#1 21 │ for(var index=0; index<100; {index++; index*2;}) { arr.add(""+index);}; · ─┬ - · ╰── Expect `,` here, but found `++` + · ╰── `,` expected 22 │ // ╰──── - × Expect token + × Expected `;` but found `++` ╭─[language/statements/for/S12.6.3_A8.1_T2.js:20:1] 20 │ //CHECK#1 21 │ for(var index=0; {index++;index<100;}; index*2;) { arr.add(""+index);}; · ─┬ - · ╰── Expect `;` here, but found `++` + · ╰── `;` expected 22 │ // ╰──── @@ -30870,30 +30866,30 @@ Negative Passed: 3915/3915 (100.00%) 22 │ // ╰──── - × Expect token + × Expected `,` but found `++` ╭─[language/statements/for/S12.6.3_A8_T1.js:20:1] 20 │ //CHECK#1 21 │ for(index=0; index<100; {index++; index*2;}) { arr.add(""+index);}; · ─┬ - · ╰── Expect `,` here, but found `++` + · ╰── `,` expected 22 │ // ╰──── - × Expect token + × Expected `;` but found `++` ╭─[language/statements/for/S12.6.3_A8_T2.js:20:1] 20 │ //CHECK#1 21 │ for(index=0; {index++;index<100;}; index*2;) { arr.add(""+index);}; · ─┬ - · ╰── Expect `;` here, but found `++` + · ╰── `;` expected 22 │ // ╰──── - × Expect token + × Expected `,` but found `;` ╭─[language/statements/for/S12.6.3_A8_T3.js:20:1] 20 │ //CHECK#1 21 │ for({index=0; index+=1;} index++<=10; index*2;) { arr.add(""+index);}; · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 22 │ // ╰──── @@ -31457,20 +31453,20 @@ Negative Passed: 3915/3915 (100.00%) 24 │ } ╰──── - × Expect token + × Expected `(` but found `,` ╭─[language/statements/function/invalid-2-names.js:15:1] 15 │ 16 │ function x, y() {} · ┬ - · ╰── Expect `(` here, but found `,` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `,` ╭─[language/statements/function/invalid-3-names.js:15:1] 15 │ 16 │ function x,y,z(){} · ┬ - · ╰── Expect `(` here, but found `,` + · ╰── `(` expected ╰──── × Unterminated regular expression @@ -31491,23 +31487,23 @@ Negative Passed: 3915/3915 (100.00%) ╭─[language/statements/function/invalid-function-body-3.js:16:1] 16 │ 17 │ function __func(){# ABC} - · ▲ + · ─ ╰──── - × Expect token + × Expected `(` but found `.` ╭─[language/statements/function/invalid-name-dot.js:15:1] 15 │ 16 │ function obj.tt() {} · ┬ - · ╰── Expect `(` here, but found `.` + · ╰── `(` expected ╰──── - × Expect token + × Expected `(` but found `.` ╭─[language/statements/function/invalid-name-two-dots.js:15:1] 15 │ 16 │ function obj.tt.ss() {} · ┬ - · ╰── Expect `(` here, but found `.` + · ╰── `(` expected ╰──── × Cannot assign to 'arguments' in strict mode @@ -32007,21 +32003,21 @@ Negative Passed: 3915/3915 (100.00%) 18 │ { ╰──── - × Expect token + × Expected `(` but found `true` ╭─[language/statements/if/S12.5_A6_T1.js:16:1] 16 │ //CHECK#1 17 │ if true; · ──┬─ - · ╰── Expect `(` here, but found `true` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `false` ╭─[language/statements/if/S12.5_A6_T2.js:16:1] 16 │ //CHECK#2 17 │ if false; · ──┬── - · ╰── Expect `(` here, but found `false` + · ╰── `(` expected 18 │ // ╰──── @@ -32968,21 +32964,21 @@ Negative Passed: 3915/3915 (100.00%) 19 │ case 0: ╰──── - × Expect token + × Expected `(` but found `{` ╭─[language/statements/switch/S12.11_A3_T2.js:17:1] 17 │ 18 │ switch { · ┬ - · ╰── Expect `(` here, but found `{` + · ╰── `(` expected 19 │ case 0: ╰──── - × Expect token + × Expected `{` but found `;` ╭─[language/statements/switch/S12.11_A3_T3.js:14:1] 14 │ 15 │ switch(value); · ┬ - · ╰── Expect `{` here, but found `;` + · ╰── `{` expected ╰──── × Unexpected token @@ -33568,12 +33564,9 @@ Negative Passed: 3915/3915 (100.00%) · ╰── `f` has already been declared here ╰──── - × Expect token - ╭─[language/statements/try/S12.14_A16_T1.js:17:1] - 17 │ // CHECK#1 + × Expected `{` but found `EOF` + ╭─[language/statements/try/S12.14_A16_T1.js:18:1] 18 │ try - · ▲ - · ╰── Expect `{` here, but found `EOF` ╰──── × Unexpected token @@ -33616,21 +33609,21 @@ Negative Passed: 3915/3915 (100.00%) 24 │ { ╰──── - × Expect token + × Expected `{` but found `(` ╭─[language/statements/try/S12.14_A16_T14.js:17:1] 17 │ // CHECK#1 18 │ try(e1){ · ┬ - · ╰── Expect `{` here, but found `(` + · ╰── `{` expected 19 │ } ╰──── - × Expect token + × Expected `{` but found `(` ╭─[language/statements/try/S12.14_A16_T15.js:21:1] 21 │ } 22 │ finally(e){} · ┬ - · ╰── Expect `{` here, but found `(` + · ╰── `{` expected ╰──── × Unexpected token @@ -34207,57 +34200,57 @@ Negative Passed: 3915/3915 (100.00%) 18 │ break ; ╰──── - × Expect token + × Expected `(` but found `decimal` ╭─[language/statements/while/S12.6.2_A6_T1.js:16:1] 16 │ //CHECK#1 17 │ while 1 break; · ┬ - · ╰── Expect `(` here, but found `decimal` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `decimal` ╭─[language/statements/while/S12.6.2_A6_T2.js:16:1] 16 │ //CHECK#1 17 │ while 0 break; · ┬ - · ╰── Expect `(` here, but found `decimal` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `true` ╭─[language/statements/while/S12.6.2_A6_T3.js:16:1] 16 │ //CHECK#1 17 │ while true break; · ──┬─ - · ╰── Expect `(` here, but found `true` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `false` ╭─[language/statements/while/S12.6.2_A6_T4.js:16:1] 16 │ //CHECK#1 17 │ while false break; · ──┬── - · ╰── Expect `(` here, but found `false` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `string` ╭─[language/statements/while/S12.6.2_A6_T5.js:16:1] 16 │ //CHECK#1 17 │ while '' break; · ─┬ - · ╰── Expect `(` here, but found `string` + · ╰── `(` expected 18 │ // ╰──── - × Expect token + × Expected `(` but found `string` ╭─[language/statements/while/S12.6.2_A6_T6.js:16:1] 16 │ //CHECK#1 17 │ while 'hood' break; · ───┬── - · ╰── Expect `(` here, but found `string` + · ╰── `(` expected 18 │ // ╰──── diff --git a/tasks/coverage/typescript.snap b/tasks/coverage/typescript.snap index f02f8653867a0..413a67cd281db 100644 --- a/tasks/coverage/typescript.snap +++ b/tasks/coverage/typescript.snap @@ -2001,32 +2001,32 @@ Expect to Parse: "jsdoc/declarations/jsDeclarationsNonIdentifierInferredNames.ts ╰──── Expect to Parse: "jsx/jsxAttributeInitializer.ts" - × Expect token + × Expected `>` but found `Identifier` ╭─[jsx/jsxAttributeInitializer.ts:5:1] 5 │
6 │
/> · ──┬─ - · ╰── Expect `>` here, but found `Identifier` + · ╰── `>` expected 7 │
foo
/> ╰──── Expect to Parse: "jsx/tsxEmitSpreadAttribute.ts" - × Expect token + × Expected `>` but found `Identifier` ╭─[jsx/tsxEmitSpreadAttribute.ts:7:1] 7 │ export function T1(a: any) { 8 │ return
T1
; · ────┬──── - · ╰── Expect `>` here, but found `Identifier` + · ╰── `>` expected 9 │ } ╰──── Expect to Parse: "jsx/tsxReactEmitSpreadAttribute.ts" - × Expect token + × Expected `>` but found `Identifier` ╭─[jsx/tsxReactEmitSpreadAttribute.ts:6:1] 6 │ export function T1(a: any) { 7 │ return
T1
; · ────┬──── - · ╰── Expect `>` here, but found `Identifier` + · ╰── `>` expected 8 │ } ╰──── Expect to Parse: "salsa/plainJSRedeclare3.ts" @@ -2196,21 +2196,21 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 6 │ } ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[async/es5/asyncGetter_es5.ts:4:1] 4 │ class C { 5 │ async get foo() { · ─┬─ - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 6 │ } ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[async/es5/asyncSetter_es5.ts:4:1] 4 │ class C { 5 │ async set foo(value) { · ─┬─ - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 6 │ } ╰──── @@ -2310,21 +2310,21 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 5 │ } ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[async/es6/asyncGetter_es6.ts:3:1] 3 │ class C { 4 │ async get foo() { · ─┬─ - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 5 │ } ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[async/es6/asyncSetter_es6.ts:3:1] 3 │ class C { 4 │ async set foo(value) { · ─┬─ - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 5 │ } ╰──── @@ -2471,12 +2471,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 18 │ ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[classes/classDeclarations/classAbstractKeyword/classAbstractMixedWithModifiers.ts:15:1] 15 │ abstract async foo_f(); 16 │ async abstract foo_g(); · ──┬── - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 17 │ } ╰──── @@ -2515,12 +2515,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `{` but found `?.` ╭─[classes/classDeclarations/classHeritageSpecification/classExtendingOptionalChain.ts:8:1] 8 │ // error 9 │ class C2 implements A?.B {} · ─┬ - · ╰── Expect `{` here, but found `?.` + · ╰── `{` expected ╰──── × Unexpected token @@ -2539,29 +2539,29 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 4 │ class C5a extends null { } ╰──── - × Expect token + × Expected `,` but found `;` ╭─[classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType.ts:5:1] 5 │ 6 │ class C2 extends { foo: string; } { } // error · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 7 │ var x: { foo: string; } ╰──── - × Expect token + × Expected `,` but found `;` ╭─[classes/classDeclarations/classHeritageSpecification/classExtendsEveryObjectType2.ts:1:1] 1 │ class C2 extends { foo: string; } { } // error · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 2 │ ╰──── - × Expect token + × Expected `{` but found `void` ╭─[classes/classDeclarations/classWithPredefinedTypesAsNames2.ts:2:1] 2 │ 3 │ class void {} · ──┬─ - · ╰── Expect `{` here, but found `void` + · ╰── `{` expected ╰──── × Private field 'y' must be declared in an enclosing class @@ -2580,12 +2580,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 24 │ getY = (obj: D) => obj.#y; ╰──── - × Expect token + × Expected `(` but found `{` ╭─[classes/classStaticBlock/classStaticBlock20.ts:1:1] 1 │ class C { 2 │ async static { · ┬ - · ╰── Expect `(` here, but found `{` + · ╰── `(` expected 3 │ // something ╰──── @@ -2794,12 +2794,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: either remove this super, or extend the class - × Expect token + × Expected `,` but found `[` ╭─[classes/indexMemberDeclarations/privateIndexer2.ts:3:1] 3 │ var x = { 4 │ private [x: string]: string; · ┬ - · ╰── Expect `,` here, but found `[` + · ╰── `,` expected 5 │ } ╰──── @@ -3681,8 +3681,9 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╭─[classes/members/privateNames/privateNameHashCharName.ts:2:1] 2 │ 3 │ # - · ▲ + · ─ 4 │ + 5 │ class C { ╰──── × Private field 'x' must be declared in an enclosing class @@ -3693,12 +3694,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 10 │ } ╰──── - × Expect token + × Expected `in` but found `)` ╭─[classes/members/privateNames/privateNameInInExpression.ts:28:1] 28 │ 29 │ const c = (#field) in v; // Bad - privateID is not an expression on its own · ┬ - · ╰── Expect `in` here, but found `)` + · ╰── `in` expected 30 │ ╰──── @@ -3892,12 +3893,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 15 │ } ╰──── - × Expect token + × Expected `(` but found `*` ╭─[classes/members/privateNames/privateNameStaticMethodAsync.ts:12:1] 12 │ } 13 │ async static *#bazBad() { yield 42; } · ┬ - · ╰── Expect `(` here, but found `*` + · ╰── `(` expected 14 │ } ╰──── @@ -3965,12 +3966,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 29 │ a = b; // Error ╰──── - × Expect token + × Expected `(` but found `#identifier` ╭─[classes/members/privateNames/privateNamesIncompatibleModifiers.ts:29:1] 29 │ declare set #whatProp(value: number) // Error 30 │ async get #asyncProp() { return 1; } // Error · ─────┬──── - · ╰── Expect `(` here, but found `#identifier` + · ╰── `(` expected 31 │ async set #asyncProp(value: number) { } // Error ╰──── @@ -4124,12 +4125,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 10 │ static readonly [s: number]: 42 | 233 ╰──── - × Expect token + × Expected `,` but found `is` ╭─[controlFlow/assertionTypePredicates1.ts:166:1] 166 │ get p1(): this is string; 167 │ set p1(x: this is string); · ─┬ - · ╰── Expect `,` here, but found `is` + · ╰── `,` expected 168 │ get p2(): asserts this is string; ╰──── @@ -4141,12 +4142,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 73 │ let b! = 1; ╰──── - × Expect token + × Expected `,` but found `!` ╭─[controlFlow/definiteAssignmentAssertionsWithObjectShortHand.ts:4:1] 4 │ const a: string | undefined = 'ff'; 5 │ const foo = { a! } · ┬ - · ╰── Expect `,` here, but found `!` + · ╰── `,` expected 6 │ ╰──── @@ -4168,12 +4169,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `,` but found `@` ╭─[decorators/class/constructor/parameter/decoratorOnClassConstructorParameter4.ts:5:1] 5 │ class C { 6 │ constructor(public @dec p: number) {} · ┬ - · ╰── Expect `,` here, but found `@` + · ╰── `,` expected 7 │ } ╰──── @@ -4270,12 +4271,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 6 │ baz = yield 1, ╰──── - × Expect token + × Expected `,` but found `;` ╭─[enums/enumErrors.ts:47:1] 47 │ 48 │ postSemicolon; · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 49 │ postColonValueComma: 2, ╰──── @@ -4604,12 +4605,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ────── ╰──── - × Expect token + × Expected `,` but found `?` ╭─[es6/destructuring/destructuringObjectBindingPatternAndAssignment3.ts:1:1] 1 │ // Error 2 │ var {h?} = { h?: 1 }; · ┬ - · ╰── Expect `,` here, but found `?` + · ╰── `,` expected 3 │ var {i}: string | number = { i: 2 }; ╰──── @@ -4633,12 +4634,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 98 │ ╰──── - × Expect token + × Expected `,` but found `)` ╭─[es6/destructuring/destructuringParameterDeclaration2.ts:6:1] 6 │ function a0([a, b, [[c]]]: [number, number, string[][]]) { } 7 │ a0([1, "string", [["world"]]); // Error · ┬ - · ╰── Expect `,` here, but found `)` + · ╰── `,` expected 8 │ a0([1, 2, [["world"]], "string"]); // Error ╰──── @@ -4650,12 +4651,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 16 │ function a5([a, b, [[c]]]) { } ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es6/destructuring/destructuringParameterDeclaration6.ts:6:1] 6 │ // Error 7 │ function a({while}) { } · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected 8 │ function a1({public}) { } ╰──── @@ -4882,12 +4883,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 12 │ })(); ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es6/destructuring/objectBindingPatternKeywordIdentifiers01.ts:1:1] 1 │ 2 │ var { while } = { while: 1 } · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected ╰──── × Unexpected token @@ -4897,12 +4898,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ───── ╰──── - × Expect token + × Expected `:` but found `}` ╭─[es6/destructuring/objectBindingPatternKeywordIdentifiers03.ts:1:1] 1 │ 2 │ var { "while" } = { while: 1 } · ┬ - · ╰── Expect `:` here, but found `}` + · ╰── `:` expected ╰──── × Unexpected token @@ -5061,12 +5062,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ─ ╰──── - × Expect token + × Expected `(` but found `}` ╭─[es6/memberFunctionDeclarations/MemberFunctionDeclaration6_es6.ts:3:1] 3 │ *foo 4 │ } · ┬ - · ╰── Expect `(` here, but found `}` + · ╰── `(` expected ╰──── × Invalid Character `¬` @@ -5251,11 +5252,9 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 11 │ }; ╰──── - × Expect token + × Expected `$}` but found `EOF` ╭─[es6/templates/TemplateExpression1.ts:1:1] 1 │ var v = `foo ${ a - · ▲ - · ╰── Expect `$}` here, but found `EOF` ╰──── × 'super' can only be used with function calls or in property accesses @@ -5417,11 +5416,11 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ─────── ╰──── - × Expect token + × Expected `(` but found `{` ╭─[es6/templates/templateStringWithEmbeddedYieldKeyword.ts:1:1] 1 │ function* gen { · ┬ - · ╰── Expect `(` here, but found `{` + · ╰── `(` expected 2 │ // Once this is supported, yield *must* be parenthesized. ╰──── @@ -5681,7 +5680,6 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╭─[es6/variableDeclarations/VariableDeclaration11_es6.ts:2:1] 2 │ "use strict"; 3 │ let - · ─ ╰──── × Unexpected token @@ -5695,7 +5693,6 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╭─[es6/variableDeclarations/VariableDeclaration1_es6.ts:1:1] 1 │ // @target:es6 2 │ const - · ─ ╰──── × Missing initializer in const declaration @@ -5716,7 +5713,6 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╭─[es6/variableDeclarations/VariableDeclaration6_es6.ts:1:1] 1 │ // @target:es6 2 │ let - · ─ ╰──── × A 'yield' expression is only allowed in a generator body. @@ -7684,12 +7680,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ───── ╰──── - × Expect token + × Expected `>` but found `is` ╭─[expressions/typeAssertions/typeAssertions.ts:43:1] 43 │ var str: string; 44 │ if((numOrStr === undefined)) { // Error · ─┬ - · ╰── Expect `>` here, but found `is` + · ╰── `>` expected 45 │ str = numOrStr; // Error, no narrowing occurred ╰──── @@ -7991,12 +7987,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ─ ╰──── - × Expect token + × Expected `>` but found `,` ╭─[externalModules/topLevelAwaitErrors.1.ts:9:1] 9 │ await (1,); 10 │ await (1); · ┬ - · ╰── Expect `>` here, but found `,` + · ╰── `>` expected 11 │ ╰──── @@ -8089,12 +8085,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 6 │ } ╰──── - × Expect token + × Expected `=` but found `;` ╭─[externalModules/typeOnly/exportDeclaration_missingBraces.ts:13:1] 13 │ namespace ns { 14 │ export type T; // Normal parse error because there is no other 'T' · ┬ - · ╰── Expect `=` here, but found `;` + · ╰── `=` expected 15 │ } ╰──── @@ -8170,18 +8166,14 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 44 │ } ╰──── - × Expect token + × Expected `{` but found `EOF` ╭─[importAssertion/importAssertion4.ts:1:1] 1 │ import * as f from "./first" assert - · ▲ - · ╰── Expect `{` here, but found `EOF` ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[importAssertion/importAssertion5.ts:1:1] 1 │ import * as f from "./first" assert { - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── × The keyword 'interface' is reserved @@ -8209,12 +8201,10 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `}` but found `EOF` ╭─[interfaces/interfacesExtendingClasses/interfaceExtendingClass2.ts:16:1] 16 │ }; 17 │ } - · ┬ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token @@ -8299,12 +8289,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 14 │ ; ╰──── - × Expect token + × Expected `}` but found `:` ╭─[jsx/jsxAndTypeAssertion.tsx:7:1] 7 │ var x: any; 8 │ x = { test: }; · ┬ - · ╰── Expect `}` here, but found `:` + · ╰── `}` expected 9 │ ╰──── @@ -8356,39 +8346,39 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 8 │ } ╰──── - × Expect token + × Expected `>` but found `Identifier` ╭─[jsx/tsxFragmentErrors.tsx:11:1] 11 │ 12 │ <>hi
// Error · ─┬─ - · ╰── Expect `>` here, but found `Identifier` + · ╰── `>` expected 13 │ ╰──── - × Expect token + × Expected `,` but found `;` ╭─[jsx/tsxStatelessFunctionComponents1.tsx:46:1] 46 │ let o = { 47 │ prop1: true; · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 48 │ } ╰──── - × Expect token + × Expected `(` but found `Identifier` ╭─[override/overrideKeywordOrder.ts:14:1] 14 │ override async m1() {} 15 │ async override m2() {} // error · ─┬ - · ╰── Expect `(` here, but found `Identifier` + · ╰── `(` expected 16 │ } ╰──── - × Expect token + × Expected `,` but found `get` ╭─[parser/ecmascript5/Accessors/parserAccessors10.ts:2:1] 2 │ var v = { 3 │ public get foo() { } · ─┬─ - · ╰── Expect `,` here, but found `get` + · ╰── `,` expected 4 │ }; ╰──── @@ -8413,11 +8403,11 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ────── ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression1.ts:1:1] 1 │ var v = (public x: string) => { }; · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -8427,11 +8417,11 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `,` but found `||` ╭─[parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression3.ts:1:1] 1 │ a = (() => { } || a) · ─┬ - · ╰── Expect `,` here, but found `||` + · ╰── `,` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -8459,12 +8449,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 5 │ } ╰──── - × Expect token + × Expected `,` but found `:` ╭─[parser/ecmascript5/EnumDeclarations/parserEnum5.ts:1:1] 1 │ enum E2 { a, } 2 │ enum E3 { a: 1, } · ┬ - · ╰── Expect `,` here, but found `:` + · ╰── `,` expected 3 │ enum E1 { a, b: 1, c, d: 2 = 3 } ╰──── @@ -8475,12 +8465,10 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 2 │ } ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[parser/ecmascript5/ErrorRecovery/AccessibilityAfterStatic/parserAccessibilityAfterStatic6.ts:2:1] 2 │ { 3 │ static public - · ┬ - · ╰── Expect `}` here, but found `EOF` ╰──── × Unexpected token @@ -8507,12 +8495,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 4 │ } ╰──── - × Expect token + × Expected `,` but found `return` ╭─[parser/ecmascript5/ErrorRecovery/ArgumentLists/parserErrorRecovery_ArgumentList4.ts:2:1] 2 │ bar(a,b 3 │ return; · ───┬── - · ╰── Expect `,` here, but found `return` + · ╰── `,` expected 4 │ } ╰──── @@ -8528,27 +8516,27 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ─ ╰──── - × Expect token + × Expected `,` but found `decimal` ╭─[parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression1.ts:1:1] 1 │ var v = [1, 2, 3 2 │ 4, 5, 6, 7]; · ┬ - · ╰── Expect `,` here, but found `decimal` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `float` ╭─[parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression2.ts:2:1] 2 │ 3 │ .7042760848999023, 1.1955541372299194, 0.19600726664066315, -0.7120069861412048]; · ────────┬──────── - · ╰── Expect `,` here, but found `float` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `;` ╭─[parser/ecmascript5/ErrorRecovery/ArrayLiteralExpressions/parserErrorRecoveryArrayLiteralExpression3.ts:1:1] 1 │ var texCoords = [2, 2, 0.5000001192092895, 0.8749999 ; 403953552, 0.5000001192092895, 0.8749999403953552]; · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected ╰──── × Unexpected token @@ -8638,27 +8626,23 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ▲ ╰──── - × Expect token + × Expected `{` but found `EOF` ╭─[parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause1.ts:1:1] 1 │ class C extends { 2 │ } - · ┬ - · ╰── Expect `{` here, but found `EOF` ╰──── - × Expect token + × Expected `{` but found `EOF` ╭─[parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause2.ts:1:1] 1 │ class C extends A, { 2 │ } - · ┬ - · ╰── Expect `{` here, but found `EOF` ╰──── - × Expect token + × Expected `{` but found `Identifier` ╭─[parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause3.ts:1:1] 1 │ class C extends implements A { · ┬ - · ╰── Expect `{` here, but found `Identifier` + · ╰── `{` expected 2 │ } ╰──── @@ -8669,19 +8653,17 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 2 │ } ╰──── - × Expect token + × Expected `{` but found `Identifier` ╭─[parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause5.ts:1:1] 1 │ class C extends A, implements B, { · ┬ - · ╰── Expect `{` here, but found `Identifier` + · ╰── `{` expected 2 │ } ╰──── - × Expect token + × Expected `{` but found `EOF` ╭─[parser/ecmascript5/ErrorRecovery/ExtendsOrImplementsClauses/parserErrorRecovery_ExtendsOrImplementsClause6.ts:1:1] 1 │ interface I extends { } - · ┬ - · ╰── Expect `{` here, but found `EOF` ╰──── × Unexpected token @@ -8692,21 +8674,21 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 5 │ f2() { ╰──── - × Expect token + × Expected `)` but found `}` ╭─[parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement2.ts:3:1] 3 │ if (a 4 │ } · ┬ - · ╰── Expect `)` here, but found `}` + · ╰── `)` expected 5 │ f2() { ╰──── - × Expect token + × Expected `)` but found `}` ╭─[parser/ecmascript5/ErrorRecovery/IfStatements/parserErrorRecoveryIfStatement3.ts:3:1] 3 │ if (a.b 4 │ } · ┬ - · ╰── Expect `)` here, but found `}` + · ╰── `)` expected 5 │ f2() { ╰──── @@ -8774,19 +8756,19 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 8 │ ) ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral1.ts:1:1] 1 │ var v = { a: 1 b: 2 } · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected ╰──── - × Expect token + × Expected `,` but found `return` ╭─[parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral2.ts:1:1] 1 │ var v = { a 2 │ return; · ───┬── - · ╰── Expect `,` here, but found `return` + · ╰── `,` expected ╰──── × Unexpected token @@ -8796,12 +8778,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ────── ╰──── - × Expect token + × Expected `,` but found `return` ╭─[parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral4.ts:1:1] 1 │ var v = { a: 1 2 │ return; · ───┬── - · ╰── Expect `,` here, but found `return` + · ╰── `,` expected ╰──── × Unexpected token @@ -8811,20 +8793,18 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ─ ╰──── - × Expect token + × Expected `,` but found `{` ╭─[parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList1.ts:1:1] 1 │ function f(a { · ┬ - · ╰── Expect `,` here, but found `{` + · ╰── `,` expected 2 │ } ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList2.ts:1:1] 1 │ function f(a, { 2 │ } - · ┬ - · ╰── Expect `)` here, but found `EOF` ╰──── × Invalid Character `¬` @@ -8834,11 +8814,11 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 2 │ } ╰──── - × Expect token + × Expected `,` but found `=>` ╭─[parser/ecmascript5/ErrorRecovery/ParameterLists/parserErrorRecovery_ParameterList5.ts:1:1] 1 │ (a:number => { } · ─┬ - · ╰── Expect `,` here, but found `=>` + · ╰── `,` expected ╰──── × Unexpected token @@ -8899,18 +8879,18 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 3 │ } ╰──── - × Expect token + × Expected `(` but found `=>` ╭─[parser/ecmascript5/ErrorRecovery/parserEqualsGreaterThanAfterFunction1.ts:1:1] 1 │ function => · ─┬ - · ╰── Expect `(` here, but found `=>` + · ╰── `(` expected ╰──── - × Expect token + × Expected `,` but found `=>` ╭─[parser/ecmascript5/ErrorRecovery/parserEqualsGreaterThanAfterFunction2.ts:1:1] 1 │ function (a => b; · ─┬ - · ╰── Expect `,` here, but found `=>` + · ╰── `,` expected ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -8983,12 +8963,10 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" ╰──── help: Try insert a semicolon here - × Expect token + × Expected `>` but found `EOF` ╭─[parser/ecmascript5/ErrorRecovery/parserUnterminatedGeneric1.ts:1:1] 1 │ interface IQService { 2 │ all(promises: IPromise < any > []): IPromise< - · ┬ - · ╰── Expect `>` here, but found `EOF` ╰──── × Expected a semicolon or an implicit semicolon after a statement, but found none @@ -9003,7 +8981,6 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" × Unexpected token ╭─[parser/ecmascript5/ExportAssignments/parserExportAssignment3.ts:1:1] 1 │ export = - · ─ ╰──── × Unexpected token @@ -9215,12 +9192,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 3 │ } ╰──── - × Expect token + × Expected `]` but found `,` ╭─[parser/ecmascript5/IndexSignatures/parserIndexSignature10.ts:1:1] 1 │ interface I { 2 │ [a, b]: number · ┬ - · ╰── Expect `]` here, but found `,` + · ╰── `]` expected 3 │ } ╰──── @@ -9232,12 +9209,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 4 │ [p2: string, p3: number]; ╰──── - × Expect token + × Expected `]` but found `Identifier` ╭─[parser/ecmascript5/IndexSignatures/parserIndexSignature2.ts:1:1] 1 │ interface I { 2 │ [public a] · ┬ - · ╰── Expect `]` here, but found `Identifier` + · ╰── `]` expected 3 │ } ╰──── @@ -9349,12 +9326,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ──── ╰──── - × Expect token + × Expected `(` but found `;` ╭─[parser/ecmascript5/ObjectTypes/parserObjectType5.ts:2:1] 2 │ A: B 3 │ ; · ┬ - · ╰── Expect `(` here, but found `;` + · ╰── `(` expected 4 │ }; ╰──── @@ -9382,20 +9359,20 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 3 │ } ╰──── - × Expect token + × Expected `)` but found `Identifier` ╭─[parser/ecmascript5/ParameterLists/parserParameterList5.ts:1:1] 1 │ function A(): (public B) => C { · ┬ - · ╰── Expect `)` here, but found `Identifier` + · ╰── `)` expected 2 │ } ╰──── - × Expect token + × Expected `)` but found `Identifier` ╭─[parser/ecmascript5/ParameterLists/parserParameterList6.ts:1:1] 1 │ class C { 2 │ constructor(C: (public A) => any) { · ┬ - · ╰── Expect `)` here, but found `Identifier` + · ╰── `)` expected 3 │ } ╰──── @@ -9424,27 +9401,25 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 5 │ ╰──── - × Expect token + × Expected `=>` but found `{` ╭─[parser/ecmascript5/RegressionTests/parser509669.ts:1:1] 1 │ function foo():any { 2 │ return ():void {}; · ┬ - · ╰── Expect `=>` here, but found `{` + · ╰── `=>` expected 3 │ } ╰──── - × Expect token + × Expected `}` but found `EOF` ╭─[parser/ecmascript5/RegressionTests/parser512084.ts:1:1] 1 │ class foo { - · ▲ - · ╰── Expect `}` here, but found `EOF` ╰──── - × Expect token + × Expected `,` but found `;` ╭─[parser/ecmascript5/RegressionTests/parser512097.ts:1:1] 1 │ var tt = { aa; } · ┬ - · ╰── Expect `,` here, but found `;` + · ╰── `,` expected 2 │ ╰──── @@ -9655,11 +9630,9 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 1 │ foo(a, \ ╰──── - × Expect token + × Expected `)` but found `EOF` ╭─[parser/ecmascript5/SkippedTokens/parserSkippedTokens17.ts:1:1] 1 │ foo(a, \ - · ┬ - · ╰── Expect `)` here, but found `EOF` ╰──── × Invalid Unicode escape sequence @@ -9667,11 +9640,11 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 1 │ foo(a \ ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[parser/ecmascript5/SkippedTokens/parserSkippedTokens18.ts:1:1] 1 │ foo(a \ · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected ╰──── × Invalid Unicode escape sequence @@ -9697,11 +9670,11 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 1 │ var v: X · ┬ - · ╰── Expect `from` here, but found `<` + · ╰── `from` expected 2 │ const a = import ╰──── - × Expect token + × Expected `}` but found `Identifier` ╭─[types/mapped/mappedTypeProperties.ts:9:1] 9 │ [placeType in PlaceType]: void; 10 │ model: 'hour' | 'day' · ──┬── - · ╰── Expect `}` here, but found `Identifier` + · ╰── `}` expected 11 │ } ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[types/objectTypeLiteral/callSignatures/callSignaturesWithAccessibilityModifiersOnParameters.ts:11:1] 11 │ var f6 = function (private x: string, public y: number) { } 12 │ var f7 = (private x: string, public y: number) => { } · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 13 │ var f8 = (private x: T, public y: T) => { } ╰──── @@ -11599,12 +11567,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 51 │ b: (...x: Array) => { } ╰──── - × Expect token + × Expected `,` but found `?` ╭─[types/objectTypeLiteral/methodSignatures/objectTypesWithOptionalProperties.ts:23:1] 23 │ var b = { 24 │ x?: 1 // error · ┬ - · ╰── Expect `,` here, but found `?` + · ╰── `,` expected 25 │ } ╰──── @@ -11616,21 +11584,21 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 5 │ } ╰──── - × Expect token + × Expected `,` but found `decimal` ╭─[types/objectTypeLiteral/propertySignatures/numericNamedPropertyDuplicates.ts:19:1] 19 │ 2: 1 20 │ 2: 1 · ┬ - · ╰── Expect `,` here, but found `decimal` + · ╰── `,` expected 21 │ } ╰──── - × Expect token + × Expected `,` but found `string` ╭─[types/objectTypeLiteral/propertySignatures/stringNamedPropertyDuplicates.ts:19:1] 19 │ "a b": 1 20 │ "a b": 1 · ──┬── - · ╰── Expect `,` here, but found `string` + · ╰── `,` expected 21 │ } ╰──── @@ -11686,12 +11654,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" · ──── ╰──── - × Expect token + × Expected `{` but found `void` ╭─[types/specifyingTypes/predefinedTypes/objectTypesWithPredefinedTypesAsName2.ts:2:1] 2 │ 3 │ class void {} // parse error unlike the others · ──┬─ - · ╰── Expect `{` here, but found `void` + · ╰── `{` expected ╰──── × Unexpected token @@ -11709,30 +11677,30 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 3 │ let o8 = { ...*o }; ╰──── - × Expect token + × Expected `,` but found `this` ╭─[types/thisType/thisTypeInFunctionsNegative.ts:169:1] 169 │ ///// parse errors ///// 170 │ function modifiers(async this: C): number { return this.n; } · ──┬─ - · ╰── Expect `,` here, but found `this` + · ╰── `,` expected 171 │ function restParam(...this: C): number { return this.n; } ╰──── - × Expect token + × Expected `,` but found `?` ╭─[types/tuple/named/namedTupleMembersErrors.ts:11:1] 11 │ 12 │ export type Opt = [element: string?]; // question mark on element disallowed · ┬ - · ╰── Expect `,` here, but found `?` + · ╰── `,` expected 13 │ ╰──── - × Expect token + × Expected `,` but found `?` ╭─[types/tuple/restTupleElements1.ts:12:1] 12 │ type T08 = [...string]; // Error 13 │ type T09 = [...string?]; // Error · ┬ - · ╰── Expect `,` here, but found `?` + · ╰── `,` expected 14 │ type T10 = [string, ...[...string[]]]; ╰──── @@ -11761,12 +11729,12 @@ Expect to Parse: "salsa/privateIdentifierExpando.ts" 4 │ ╰──── - × Expect token + × Expected `,` but found `Identifier` ╭─[types/typeParameters/typeParameterLists/varianceAnnotations.ts:97:1] 97 │ 98 │ type T20 = T; // Error · ┬ - · ╰── Expect `,` here, but found `Identifier` + · ╰── `,` expected 99 │ type T21 = T; // Error ╰────