From df3b2befd7f9107feb6a2f293186b366e821fb8c Mon Sep 17 00:00:00 2001 From: dcode Date: Thu, 17 Jan 2019 00:37:28 +0100 Subject: [PATCH] Support type names with enclosed dots, see #423 --- src/parser.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/parser.ts b/src/parser.ts index 24c0b0dd..efde0a74 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -459,6 +459,23 @@ export class Parser extends DiagnosticEmitter { let parameters = new Array(); let nullable = false; + // Identifier ('.' Identifier)+ + while (tn.skip(Token.DOT)) { + if (tn.skip(Token.IDENTIFIER)) { + // TODO: this works for now, but the representation isn't great + identifier = Node.createIdentifierExpression( + identifier.text + "." + tn.readIdentifier(), + tn.range(identifier.range.start, tn.pos) + ); + } else { + this.error( + DiagnosticCode.Identifier_expected, + tn.range(tn.pos) + ); + return null; + } + } + // Name if (tn.skip(Token.LESSTHAN)) { do {