Skip to content

Commit 4ed6a80

Browse files
Limited identifying identifiers after dots to keywords.
1 parent a3b59f8 commit 4ed6a80

File tree

3 files changed

+11
-5
lines changed

3 files changed

+11
-5
lines changed

src/compiler/parser.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,10 @@ module ts {
648648
return SyntaxKind.FirstKeyword <= token && token <= SyntaxKind.LastKeyword;
649649
}
650650

651+
export function isTrivia(token: SyntaxKind) {
652+
return SyntaxKind.FirstTriviaToken <= token && token <= SyntaxKind.LastTriviaToken;
653+
}
654+
651655
export function isModifier(token: SyntaxKind): boolean {
652656
switch (token) {
653657
case SyntaxKind.PublicKeyword:

src/services/services.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4556,7 +4556,7 @@ module ts {
45564556
token = SyntaxKind.RegularExpressionLiteral;
45574557
}
45584558
}
4559-
else if (lastNonTriviaToken === SyntaxKind.DotToken) {
4559+
else if (lastNonTriviaToken === SyntaxKind.DotToken && isKeyword(token)) {
45604560
token = SyntaxKind.Identifier;
45614561
}
45624562

@@ -4611,10 +4611,6 @@ module ts {
46114611
result.entries.push({ length: length, classification: classification });
46124612
}
46134613
}
4614-
4615-
function isTrivia(token: SyntaxKind) {
4616-
return SyntaxKind.FirstTriviaToken <= token && token <= SyntaxKind.LastTriviaToken;
4617-
}
46184614
}
46194615

46204616
function isBinaryExpressionOperatorToken(token: SyntaxKind): boolean {

tests/cases/unittests/services/colorization.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,12 @@ describe('Colorization', function () {
189189
identifier("var"));
190190
});
191191

192+
it("correctly classifies a string literal after a dot", function () {
193+
test("a.\"var\"",
194+
ts.EndOfLineState.Start,
195+
stringLiteral("\"var\""));
196+
});
197+
192198
it("correctly classifies a keyword after a dot separated by comment trivia", function () {
193199
test("a./*hello world*/ var",
194200
ts.EndOfLineState.Start,

0 commit comments

Comments
 (0)