diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters10.ts b/tests/cases/fourslash/refactorConvertToNamedParameters10.ts
deleted file mode 100644
index 209a06d5bfa..00000000000
--- a/tests/cases/fourslash/refactorConvertToNamedParameters10.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-///
-
-////const { foo, bar } = { foo: /*a*/(a: number, b: number)/*b*/ => {}, bar: () => {} };
-////foo(1, 2);
-
-goTo.select("a", "b");
-verify.not.refactorAvailable("Convert to named parameters");
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters19.ts b/tests/cases/fourslash/refactorConvertToNamedParameters19.ts
deleted file mode 100644
index b635ce5e379..00000000000
--- a/tests/cases/fourslash/refactorConvertToNamedParameters19.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-///
-
-////class Foo {
-//// /*a*/bar/*b*/(t: string, s: string): string {
-//// return s + t;
-//// }
-////}
-////var foo = {};
-////foo['bar']("a", "b");
-///
-
-goTo.select("a", "b");
-edit.applyRefactor({
- refactorName: "Convert to named parameters",
- actionName: "Convert to named parameters",
- actionDescription: "Convert to named parameters",
- newContent: `class Foo {
- bar({ t, s }: { t: string; s: string; }): string {
- return s + t;
- }
-}
-var foo = {};
-foo['bar']("a", "b");`
-});
\ No newline at end of file
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters28.ts b/tests/cases/fourslash/refactorConvertToNamedParameters28.ts
deleted file mode 100644
index 8218ac65d80..00000000000
--- a/tests/cases/fourslash/refactorConvertToNamedParameters28.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-///
-
-////function /*a*/foo/*b*/(// comment
-//// /** other comment */ a: number, b: number) { }
-
-goTo.select("a", "b");
-edit.applyRefactor({
- refactorName: "Convert to named parameters",
- actionName: "Convert to named parameters",
- actionDescription: "Convert to named parameters",
- newContent: `function foo(// comment { a, b }: { /** other comment */ a: number; b: number; }) { }`
-});
\ No newline at end of file
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters8.ts b/tests/cases/fourslash/refactorConvertToNamedParameters8.ts
deleted file mode 100644
index 2c3d7de339f..00000000000
--- a/tests/cases/fourslash/refactorConvertToNamedParameters8.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-///
-
-////function f(/*a*/a: number, b = 1/*b*/) {
-//// return b;
-////}
-////f(2);
-
-goTo.select("a", "b");
-edit.applyRefactor({
- refactorName: "Convert to named parameters",
- actionName: "Convert to named parameters",
- actionDescription: "Convert to named parameters",
- newContent: `function f({ a, b = 1 }: { a: number; b?: number; }) {
- return b;
-}
-f({ a: 2 });`
-});
\ No newline at end of file
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters7.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_allParamsOptional.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters7.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_allParamsOptional.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters12.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_arrowFunction.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters12.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_arrowFunction.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters22.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_arrowFunctionWithContextualType.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters22.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_arrowFunctionWithContextualType.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters27.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_callComments.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters27.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_callComments.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters_callComments2.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_callComments2.ts
new file mode 100644
index 00000000000..e0a78b091fc
--- /dev/null
+++ b/tests/cases/fourslash/refactorConvertToNamedParameters_callComments2.ts
@@ -0,0 +1,25 @@
+///
+
+////function /*a*/foo/*b*/(a: number, b: number, ...rest: number[]) {
+//// return a + b;
+////}
+////foo(
+//// /**a*/
+//// 1,
+//// /**c*/
+//// 2,
+//// /**e*/
+//// 3,
+//// /**g*/
+//// 4);
+
+goTo.select("a", "b");
+edit.applyRefactor({
+ refactorName: "Convert to named parameters",
+ actionName: "Convert to named parameters",
+ actionDescription: "Convert to named parameters",
+ newContent: `function foo({ a, b, rest = [] }: { a: number; b: number; rest?: number[]; }) {
+ return a + b;
+}
+foo({ a: /**a*/ 1, b: /**c*/ 2, rest: [/**e*/ 3, /**g*/ 4] });`
+});
\ No newline at end of file
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters20.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_chainedCall.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters20.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_chainedCall.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters14.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_classExpression.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters14.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_classExpression.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters16.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_classTypeParameters.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters16.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_classTypeParameters.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters2.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_constructor.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters2.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_constructor.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters15.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_defaultClass.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters15.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_defaultClass.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_function.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_function.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters26.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_functionComments.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters26.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_functionComments.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters25.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_functionComments1.ts
similarity index 62%
rename from tests/cases/fourslash/refactorConvertToNamedParameters25.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_functionComments1.ts
index 1b51102f80e..e0d34c8fe65 100644
--- a/tests/cases/fourslash/refactorConvertToNamedParameters25.ts
+++ b/tests/cases/fourslash/refactorConvertToNamedParameters_functionComments1.ts
@@ -1,6 +1,6 @@
///
-////function /*a*/foo/*b*/(a: number, b: number) { /** missing */
+////function /*a*/foo/*b*/(a: number /** a */, b: number /** b */) {
//// return a + b;
////}
@@ -9,7 +9,7 @@ edit.applyRefactor({
refactorName: "Convert to named parameters",
actionName: "Convert to named parameters",
actionDescription: "Convert to named parameters",
- newContent: `function foo({ a, b }: { a: number; b: number; }) { /** missing */
+ newContent: `function foo({ a, b }: { a: number /** a */; b: number /** b */; }) {
return a + b;
}`
});
\ No newline at end of file
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters29.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_functionComments2.ts
similarity index 56%
rename from tests/cases/fourslash/refactorConvertToNamedParameters29.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_functionComments2.ts
index 02582785944..923b49b4198 100644
--- a/tests/cases/fourslash/refactorConvertToNamedParameters29.ts
+++ b/tests/cases/fourslash/refactorConvertToNamedParameters_functionComments2.ts
@@ -1,7 +1,13 @@
///
////function /*a*/foo/*b*/(// comment
-//// a: number, b: number) { }
+//// // a comment
+//// a: number,
+//// // b comment
+//// b: number
+////) {
+//// return a + b;
+////}
goTo.select("a", "b");
edit.applyRefactor({
@@ -9,5 +15,12 @@ edit.applyRefactor({
actionName: "Convert to named parameters",
actionDescription: "Convert to named parameters",
newContent: `function foo(// comment
- { a, b }: { a: number; b: number }) { }`
+{ a, b }: {
+ // a comment
+ a: number;
+ // b comment
+ b: number;
+}) {
+ return a + b;
+}`
});
\ No newline at end of file
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters11.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_functionExpression.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters11.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_functionExpression.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters17.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_functionTypeParameters.ts
similarity index 90%
rename from tests/cases/fourslash/refactorConvertToNamedParameters17.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_functionTypeParameters.ts
index 7888c33f4e2..a1597fdeed1 100644
--- a/tests/cases/fourslash/refactorConvertToNamedParameters17.ts
+++ b/tests/cases/fourslash/refactorConvertToNamedParameters_functionTypeParameters.ts
@@ -1,7 +1,7 @@
///
////function foo(/*a*/t: T, s: S/*b*/) {
-//// return s;
+//// return s;
////}
////foo("a", "b");
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters6.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_initializer.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters6.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_initializer.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters4.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_initializerInference.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters4.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_initializerInference.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters1.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_method.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters1.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_method.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters5.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_methodCalls.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters5.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_methodCalls.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters_methodOverrides.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_methodOverrides.ts
new file mode 100644
index 00000000000..b6daac17dd4
--- /dev/null
+++ b/tests/cases/fourslash/refactorConvertToNamedParameters_methodOverrides.ts
@@ -0,0 +1,45 @@
+///
+
+////class A {
+//// /*a*/foo/*b*/(a: number, b: number) { }
+////}
+////class B extends A {
+//// /*c*/foo/*d*/(c: number, d: number) { }
+////}
+////var a = new A();
+////a.foo(3, 4);
+////var b = new B();
+////b.foo(5, 6);
+
+goTo.select("a", "b");
+edit.applyRefactor({
+ refactorName: "Convert to named parameters",
+ actionName: "Convert to named parameters",
+ actionDescription: "Convert to named parameters",
+ newContent: `class A {
+ foo(a: number, b: number) { }
+}
+class B extends A {
+ foo(c: number, d: number) { }
+}
+var a = new A();
+a.foo(3, 4);
+var b = new B();
+b.foo(5, 6);`
+});
+goTo.select("c", "d");
+edit.applyRefactor({
+ refactorName: "Convert to named parameters",
+ actionName: "Convert to named parameters",
+ actionDescription: "Convert to named parameters",
+ newContent: `class A {
+ foo(a: number, b: number) { }
+}
+class B extends A {
+ foo(c: number, d: number) { }
+}
+var a = new A();
+a.foo(3, 4);
+var b = new B();
+b.foo(5, 6);`
+});
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters9.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_overloads.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters9.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_overloads.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters30.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_paramDecorator.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters30.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_paramDecorator.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters_recursiveFunction.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_recursiveFunction.ts
new file mode 100644
index 00000000000..d1513cb7bf0
--- /dev/null
+++ b/tests/cases/fourslash/refactorConvertToNamedParameters_recursiveFunction.ts
@@ -0,0 +1,20 @@
+///
+
+////const f = function foo(/*a*/a: number, b: number/*b*/) {
+//// foo(1, 2);
+////}
+////function foo(a: number, b: number) { }
+////foo(3, 4);
+
+
+goTo.select("a", "b");
+edit.applyRefactor({
+ refactorName: "Convert to named parameters",
+ actionName: "Convert to named parameters",
+ actionDescription: "Convert to named parameters",
+ newContent: `const f = function foo({ a, b }: { a: number; b: number; }) {
+ foo({ a: 1, b: 2 });
+}
+function foo(a: number, b: number) { }
+foo(3, 4);`
+});
\ No newline at end of file
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters23.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_restParamInference.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters23.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_restParamInference.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters3.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_staticMethod.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters3.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_staticMethod.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters21.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_superCall.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters21.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_superCall.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters18.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_thisParam.ts
similarity index 91%
rename from tests/cases/fourslash/refactorConvertToNamedParameters18.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_thisParam.ts
index 069182e20e5..e4a96bc7bf1 100644
--- a/tests/cases/fourslash/refactorConvertToNamedParameters18.ts
+++ b/tests/cases/fourslash/refactorConvertToNamedParameters_thisParam.ts
@@ -1,7 +1,7 @@
///
////function foo(this: void, /*a*/t: string, s: string/*b*/) {
-//// return s;
+//// return s;
////}
////foo("a", "b");
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters24.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_typedRestParam.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters24.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_typedRestParam.ts
diff --git a/tests/cases/fourslash/refactorConvertToNamedParameters13.ts b/tests/cases/fourslash/refactorConvertToNamedParameters_varArrowFunction.ts
similarity index 100%
rename from tests/cases/fourslash/refactorConvertToNamedParameters13.ts
rename to tests/cases/fourslash/refactorConvertToNamedParameters_varArrowFunction.ts