Skip to content

Commit 54a5be1

Browse files
author
Andy
authored
At '.' in object literal, don't close the object (#27850)
* At '.' in object literal, don't close the object * Include diagnostics test
1 parent 12cd3ea commit 54a5be1

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

src/compiler/parser.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1482,7 +1482,15 @@ namespace ts {
14821482
// which would be a candidate for improved error reporting.
14831483
return token() === SyntaxKind.OpenBracketToken || isLiteralPropertyName();
14841484
case ParsingContext.ObjectLiteralMembers:
1485-
return token() === SyntaxKind.OpenBracketToken || token() === SyntaxKind.AsteriskToken || token() === SyntaxKind.DotDotDotToken || isLiteralPropertyName();
1485+
switch (token()) {
1486+
case SyntaxKind.OpenBracketToken:
1487+
case SyntaxKind.AsteriskToken:
1488+
case SyntaxKind.DotDotDotToken:
1489+
case SyntaxKind.DotToken: // Not an object literal member, but don't want to close the object (see `tests/cases/fourslash/completionsDotInObjectLiteral.ts`)
1490+
return true;
1491+
default:
1492+
return isLiteralPropertyName();
1493+
}
14861494
case ParsingContext.RestProperties:
14871495
return isLiteralPropertyName();
14881496
case ParsingContext.ObjectBindingElements:

src/testRunner/unittests/convertCompilerOptionsFromJson.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -596,8 +596,7 @@ namespace ts {
596596
{
597597
compilerOptions: {
598598
target: undefined,
599-
module: ModuleKind.ESNext,
600-
types: []
599+
module: ModuleKind.ESNext
601600
},
602601
hasParseErrors: true
603602
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
////const o = {
4+
//// a: 1,
5+
//// [|.|]/**/
6+
////[|}|];
7+
8+
verify.getSyntacticDiagnostics(test.ranges().map((range): FourSlashInterface.Diagnostic =>
9+
({ code: 1003, message: "Identifier expected.", range })));
10+
verify.completions({ marker: "", exact: undefined });

0 commit comments

Comments
 (0)