add related info to error for use of for-await-of in non-async function
This commit is contained in:
parent
b0143bb446
commit
246b66c714
1 changed files with 14 additions and 1 deletions
|
@ -31598,7 +31598,20 @@ namespace ts {
|
|||
|
||||
if (forInOrOfStatement.kind === SyntaxKind.ForOfStatement && forInOrOfStatement.awaitModifier) {
|
||||
if ((forInOrOfStatement.flags & NodeFlags.AwaitContext) === NodeFlags.None) {
|
||||
return grammarErrorOnNode(forInOrOfStatement.awaitModifier, Diagnostics.A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator);
|
||||
// use of 'for-await-of' in non-async function
|
||||
const sourceFile = getSourceFileOfNode(forInOrOfStatement);
|
||||
if (!hasParseDiagnostics(sourceFile)) {
|
||||
const diagnostic = createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.A_for_await_of_statement_is_only_allowed_within_an_async_function_or_async_generator);
|
||||
const func = getContainingFunction(forInOrOfStatement);
|
||||
if (func) {
|
||||
Debug.assert((getFunctionFlags(func) & FunctionFlags.Async) === 0, "Enclosing function should never be an async function.");
|
||||
const relatedInfo = createDiagnosticForNode(func, Diagnostics.Did_you_mean_to_mark_this_function_as_async);
|
||||
addRelatedInfo(diagnostic, relatedInfo);
|
||||
}
|
||||
diagnostics.add(diagnostic);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue