fix(28516): forbid using async modifier with the abstract modifier (#39963)

This commit is contained in:
Alexander T
2020-09-05 00:59:53 +03:00
committed by GitHub
parent f6f2d36ee3
commit 09d68efae1
6 changed files with 59 additions and 25 deletions

View File

@@ -38095,6 +38095,9 @@ namespace ts {
if (flags & ModifierFlags.Private) {
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "private", "abstract");
}
if (flags & ModifierFlags.Async && lastAsync) {
return grammarErrorOnNode(lastAsync, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "async", "abstract");
}
}
if (isNamedDeclaration(node) && node.name.kind === SyntaxKind.PrivateIdentifier) {
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_a_private_identifier, "abstract");
@@ -38113,6 +38116,9 @@ namespace ts {
else if (node.kind === SyntaxKind.Parameter) {
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, "async");
}
if (flags & ModifierFlags.Abstract) {
return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "async", "abstract");
}
flags |= ModifierFlags.Async;
lastAsync = modifier;
break;