From 5d91394713910e48e32932f9bbfe8489affbf329 Mon Sep 17 00:00:00 2001 From: Yui T Date: Mon, 15 Dec 2014 10:15:12 -0800 Subject: [PATCH] Movev grammar checking: typeReference; there are still errors from incomplet grammar migration --- src/compiler/checker.ts | 7 +++++-- src/compiler/parser.ts | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 10abc5601af..ae7fc25c7e4 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7363,6 +7363,9 @@ module ts { } function checkTypeReference(node: TypeReferenceNode) { + // Grammar checking + checkGrammarTypeArguments(node, node.typeArguments); + var type = getTypeFromTypeReferenceNode(node); if (type !== unknownType && node.typeArguments) { // Do type argument local checks only if referenced type is successfully resolved @@ -10082,7 +10085,7 @@ module ts { checkGrammarModifiers(node) || checkGrammarIndexSignatureParameters(node) || checkGrammarForIndexSignatureModifier(node); } - function checkGrammarForAtLeastOneTypeArgument(node: CallExpression, typeArguments: NodeArray): boolean { + function checkGrammarForAtLeastOneTypeArgument(node: Node, typeArguments: NodeArray): boolean { if (typeArguments && typeArguments.length === 0) { var sourceFile = getSourceFileOfNode(node); var start = typeArguments.pos - "<".length; @@ -10091,7 +10094,7 @@ module ts { } } - function checkGrammarTypeArguments(node: CallExpression, typeArguments: NodeArray): boolean { + function checkGrammarTypeArguments(node: Node, typeArguments: NodeArray): boolean { return checkGrammarForDisallowedTrailingComma(typeArguments) || checkGrammarForAtLeastOneTypeArgument(node, typeArguments); } diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 41ccdfd3dc3..c1ec9a113a7 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4672,7 +4672,7 @@ module ts { //case SyntaxKind.SwitchStatement: return checkSwitchStatement(node); //case SyntaxKind.TaggedTemplateExpression: return checkTaggedTemplateExpression(node); //case SyntaxKind.ThrowStatement: return checkThrowStatement(node); - case SyntaxKind.TypeReference: return checkTypeReference(node); + //case SyntaxKind.TypeReference: return checkTypeReference(node); case SyntaxKind.VariableDeclaration: return checkVariableDeclaration(node); case SyntaxKind.VariableStatement: return checkVariableStatement(node); case SyntaxKind.WithStatement: return checkWithStatement(node);