diff --git a/tests/cases/fourslash/codeFixUndeclaredMethodFunctionArgs.ts b/tests/cases/fourslash/codeFixUndeclaredMethodFunctionArgs.ts
new file mode 100644
index 00000000000..1c06cfc3afd
--- /dev/null
+++ b/tests/cases/fourslash/codeFixUndeclaredMethodFunctionArgs.ts
@@ -0,0 +1,31 @@
+///
+
+//// class A {[|
+//// |]constructor() {
+//// this.foo1(() => 1, () => "2", () => false);
+//// this.foo2((a: number) => a, (b: string) => b, (c: boolean) => c);
+//// }
+//// }
+
+verify.codeFix({
+ description: "Declare method 'foo1'",
+ index: 0,
+ newRangeContent: `
+ foo1(arg0: () => number, arg1: () => string, arg2: () => boolean): any {
+ throw new Error("Method not implemented.");
+ }
+ `,
+});
+
+verify.codeFix({
+ description: "Declare method 'foo2'",
+ index: 0,
+ newRangeContent: `
+ foo2(arg0: (a: number) => number, arg1: (b: string) => string, arg2: (c: boolean) => boolean): any {
+ throw new Error("Method not implemented.");
+ }
+ foo1(arg0: () => number, arg1: () => string, arg2: () => boolean): any {
+ throw new Error("Method not implemented.");
+ }
+ `
+});
diff --git a/tests/cases/fourslash/codeFixUndeclaredMethodObjectLiteralArgs.ts b/tests/cases/fourslash/codeFixUndeclaredMethodObjectLiteralArgs.ts
new file mode 100644
index 00000000000..bd434cf9d9d
--- /dev/null
+++ b/tests/cases/fourslash/codeFixUndeclaredMethodObjectLiteralArgs.ts
@@ -0,0 +1,17 @@
+///
+
+//// class A {[|
+//// |]constructor() {
+//// this.foo1(null, {}, { a: 1, b: "2"});
+//// }
+//// }
+
+verify.codeFix({
+ description: "Declare method 'foo1'",
+ index: 0,
+ newRangeContent: `
+ foo1(arg0: null, arg1: {}, arg2: { a: number; b: string; }): any {
+ throw new Error("Method not implemented.");
+ }
+ `
+});