Gracefully parse 'super' with type arguments (#10677) (#30913)

This commit is contained in:
Andrew
2019-04-16 01:06:29 +05:00
committed by Ryan Cavanaugh
parent 72f66566d9
commit 13d9f08976
23 changed files with 58 additions and 91 deletions

View File

@@ -2605,6 +2605,10 @@
"category": "Error",
"code": 2753
},
"'super' may not use type arguments.": {
"category": "Error",
"code": 2754
},
"Import declaration '{0}' is using private name '{1}'.": {
"category": "Error",

View File

@@ -4189,6 +4189,14 @@ namespace ts {
function parseSuperExpression(): MemberExpression {
const expression = parseTokenNode<PrimaryExpression>();
if (token() === SyntaxKind.LessThanToken) {
const startPos = getNodePos();
const typeArguments = tryParse(parseTypeArgumentsInExpression);
if (typeArguments !== undefined) {
parseErrorAt(startPos, getNodePos(), Diagnostics.super_may_not_use_type_arguments);
}
}
if (token() === SyntaxKind.OpenParenToken || token() === SyntaxKind.DotToken || token() === SyntaxKind.OpenBracketToken) {
return expression;
}