add testcase and apply feedback from pr

This commit is contained in:
BigAru
2018-10-31 14:27:36 +01:00
parent 649b53c8de
commit 595131868f
7 changed files with 21 additions and 6 deletions
@@ -172,7 +172,7 @@ namespace ts.refactor.convertArrowFunctionOrFunctionExpression {
const head = statements[0];
let body: ConciseBody;
if (func.body.statements.length === 1 && (isReturnStatement(head) || isExpressionStatement(head))) {
if (func.body.statements.length === 1 && ((isReturnStatement(head) && !!head.expression) || isExpressionStatement(head))) {
body = head.expression!;
suppressLeadingAndTrailingTrivia(body);
copyComments(head, body, file, SyntaxKind.MultiLineCommentTrivia, /* hasTrailingNewLine */ false);
@@ -25,4 +25,4 @@ verify.not.refactorAvailable("Convert arrow function or function expression", "C
goTo.select("r", "q");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to named function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to anonymous function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
@@ -31,4 +31,4 @@ verify.refactorAvailable("Convert arrow function or function expression", "Conve
goTo.select("p", "o");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to named function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to anonymous function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
@@ -30,4 +30,4 @@ verify.not.refactorAvailable("Convert arrow function or function expression", "C
goTo.select("p", "o");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to named function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to anonymous function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
@@ -27,4 +27,4 @@ verify.not.refactorAvailable("Convert arrow function or function expression", "C
goTo.select("r", "q");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to named function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to anonymous function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
@@ -20,4 +20,4 @@ verify.not.refactorAvailable("Convert arrow function or function expression", "C
goTo.select("t", "s");
verify.refactorAvailable("Convert arrow function or function expression", "Convert to named function");
verify.refactorAvailable("Convert arrow function or function expression", "Convert to anonymous function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
verify.not.refactorAvailable("Convert arrow function or function expression", "Convert to arrow function");
@@ -0,0 +1,15 @@
/// <reference path='fourslash.ts' />
//// const foo = /*x*/f/*y*/unction() {
//// return;
//// };
goTo.select("x", "y");
edit.applyRefactor({
refactorName: "Convert arrow function or function expression",
actionName: "Convert to arrow function",
actionDescription: "Convert to arrow function",
newContent: `const foo = () => {
return;
};`,
});