From bd12ae24540e395a148abd5d748b3c69c40bae63 Mon Sep 17 00:00:00 2001 From: Oleksandr T Date: Fri, 22 Oct 2021 01:56:45 +0300 Subject: [PATCH] fix(46466): add missing async keyword before type parameters (#46467) --- src/services/codefixes/fixAwaitInSyncFunction.ts | 3 ++- tests/cases/fourslash/codeFixAddMissingAsync3.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/cases/fourslash/codeFixAddMissingAsync3.ts diff --git a/src/services/codefixes/fixAwaitInSyncFunction.ts b/src/services/codefixes/fixAwaitInSyncFunction.ts index bfd68e05d0a..0f0f2880ec3 100644 --- a/src/services/codefixes/fixAwaitInSyncFunction.ts +++ b/src/services/codefixes/fixAwaitInSyncFunction.ts @@ -53,7 +53,8 @@ namespace ts.codefix { insertBefore = findChildOfKind(containingFunction, SyntaxKind.FunctionKeyword, sourceFile); break; case SyntaxKind.ArrowFunction: - insertBefore = findChildOfKind(containingFunction, SyntaxKind.OpenParenToken, sourceFile) || first(containingFunction.parameters); + const kind = containingFunction.typeParameters ? SyntaxKind.LessThanToken : SyntaxKind.OpenParenToken; + insertBefore = findChildOfKind(containingFunction, kind, sourceFile) || first(containingFunction.parameters); break; default: return; diff --git a/tests/cases/fourslash/codeFixAddMissingAsync3.ts b/tests/cases/fourslash/codeFixAddMissingAsync3.ts new file mode 100644 index 00000000000..9588556afbe --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingAsync3.ts @@ -0,0 +1,16 @@ +/// + +////const foo = (x: T): string => { +//// await new Promise(resolve => resolve(true)); +//// return ""; +////} + +verify.codeFix({ + description: ts.Diagnostics.Add_async_modifier_to_containing_function.message, + index: 0, + newFileContent: +`const foo = async (x: T): Promise => { + await new Promise(resolve => resolve(true)); + return ""; +}` +});