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);