From 739e1e9786c827055ad2dcb4445001cb1563b050 Mon Sep 17 00:00:00 2001 From: BigAru Date: Wed, 7 Nov 2018 08:49:50 +0100 Subject: [PATCH] fix for unnecessary duplication of comment --- ...onvertArrowFunctionOrFunctionExpression.ts | 1 + ...tionExpression_ToNamed_Modifier_Comment.ts | 19 +++++++++++++++++++ ...sion_ToNamed_MultiDecl_Modifier_Comment.ts | 17 +++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_Modifier_Comment.ts create mode 100644 tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_MultiDecl_Modifier_Comment.ts diff --git a/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts b/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts index 9bf16775f6c..685ea4b5275 100644 --- a/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts +++ b/src/services/refactors/convertArrowFunctionOrFunctionExpression.ts @@ -149,6 +149,7 @@ namespace ts.refactor.convertArrowFunctionOrFunctionExpression { if (!variableInfo) return undefined; const { variableDeclaration, variableDeclarationList, statement, name } = variableInfo; + suppressLeadingTrivia(statement); const newNode = createFunctionDeclaration(func.decorators, statement.modifiers, func.asteriskToken, name, func.typeParameters, func.parameters, func.type, body); let edits: FileTextChanges[]; diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_Modifier_Comment.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_Modifier_Comment.ts new file mode 100644 index 00000000000..20bb3885590 --- /dev/null +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_Modifier_Comment.ts @@ -0,0 +1,19 @@ +/// + +//// // Do not add me second time +//// export let foo = /*x*/a/*y*/ => { +//// let b = 1; +//// return a + b; +//// }; + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert arrow function or function expression", + actionName: "Convert to named function", + actionDescription: "Convert to named function", + newContent: `// Do not add me second time +export function foo(a) { + let b = 1; + return a + b; +}`, +}); diff --git a/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_MultiDecl_Modifier_Comment.ts b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_MultiDecl_Modifier_Comment.ts new file mode 100644 index 00000000000..46fc080ebda --- /dev/null +++ b/tests/cases/fourslash/refactorConvertArrowFunctionOrFunctionExpression_ToNamed_MultiDecl_Modifier_Comment.ts @@ -0,0 +1,17 @@ +/// + +//// // Do not add me second time +//// export let foo, bar = /*x*/(/*y*/) => 1 + 1; + +goTo.select("x", "y"); +edit.applyRefactor({ + refactorName: "Convert arrow function or function expression", + actionName: "Convert to named function", + actionDescription: "Convert to named function", + newContent: `// Do not add me second time +export let foo; +export function bar() { + return 1 + 1; +} +`, +});