🤖 Pick PR #48067 (Fix incorrect parser error assumpti...) into release-4.6 (#48068)

Co-authored-by: Jake Bailey <5341706+jakebailey@users.noreply.github.com>
This commit is contained in:
TypeScript Bot 2022-03-01 10:22:42 -08:00 committed by GitHub
parent 78ee4cacaf
commit 014dc3dc89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 14 deletions

View File

@ -1680,19 +1680,8 @@ namespace ts {
return;
}
// If an initializer was parsed but there is still an error in finding the next semicolon,
// we generally know there was an error already reported in the initializer...
// class Example { a = new Map([), ) }
// ~
if (initializer) {
// ...unless we've found the start of a block after a property declaration, in which
// case we can know that regardless of the initializer we should complain on the block.
// class Example { a = 0 {} }
// ~
if (token() === SyntaxKind.OpenBraceToken) {
parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(SyntaxKind.SemicolonToken));
}
parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(SyntaxKind.SemicolonToken));
return;
}

View File

@ -1,6 +1,6 @@
tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,28): error TS2304: Cannot find name 'DisplayPosition'.
tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,45): error TS1137: Expression or comma expected.
tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,46): error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.
tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,46): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,49): error TS1005: ';' expected.
tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,51): error TS2300: Duplicate identifier '3'.
tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(2,52): error TS1005: ';' expected.
@ -41,7 +41,7 @@ tests/cases/conformance/parser/ecmascript5/Fuzz/parser0_004152.ts(3,25): error T
~
!!! error TS1137: Expression or comma expected.
~
!!! error TS1068: Unexpected token. A constructor, method, accessor, or property was expected.
!!! error TS1005: ';' expected.
~
!!! error TS1005: ';' expected.
~

View File

@ -0,0 +1,17 @@
/// <reference path="fourslash.ts" />
// @target: esnext
// @lib: es2015
// @strict: true
//// class C {
//// map = new Set<string, number>/*$*/
////
//// foo() {
////
//// }
//// }
goTo.marker('$');
edit.insert('()');
verify.getSyntacticDiagnostics([]);