Show token hints for missing closing braces (#36317)

* Add error for missing brace in object literal

* Add new baseline test

* Update all affected tests
This commit is contained in:
Sheon Han
2020-03-12 18:52:02 -04:00
committed by GitHub
parent c6cfd66fa8
commit b014e2b568
14 changed files with 82 additions and 6 deletions

View File

@@ -5110,13 +5110,22 @@ namespace ts {
function parseObjectLiteralExpression(): ObjectLiteralExpression {
const node = <ObjectLiteralExpression>createNode(SyntaxKind.ObjectLiteralExpression);
const openBracePosition = scanner.getTokenPos();
parseExpected(SyntaxKind.OpenBraceToken);
if (scanner.hasPrecedingLineBreak()) {
node.multiLine = true;
}
node.properties = parseDelimitedList(ParsingContext.ObjectLiteralMembers, parseObjectLiteralElement, /*considerSemicolonAsDelimiter*/ true);
parseExpected(SyntaxKind.CloseBraceToken);
if (!parseExpected(SyntaxKind.CloseBraceToken)) {
const lastError = lastOrUndefined(parseDiagnostics);
if (lastError && lastError.code === Diagnostics._0_expected.code) {
addRelatedInfo(
lastError,
createFileDiagnostic(sourceFile, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here)
);
}
}
return finishNode(node);
}