diff --git a/src/harness/unittests/extractMethods.ts b/src/harness/unittests/extractMethods.ts index 7d7125c5025..227f6b22b03 100644 --- a/src/harness/unittests/extractMethods.ts +++ b/src/harness/unittests/extractMethods.ts @@ -586,6 +586,20 @@ namespace A { testExtractMethod("extractMethod16", `function F() { const array: T[] = [#|[]|]; +}`); + // Class type parameter + testExtractMethod("extractMethod17", + `class C { + M(t1: T1, t2: T2) { + [#|t1.toString()|]; + } +}`); + // Method type parameter + testExtractMethod("extractMethod18", + `class C { + M(t1: T1, t2: T2) { + [#|t1.toString()|]; + } }`); }); diff --git a/tests/baselines/reference/extractMethod/extractMethod17.ts b/tests/baselines/reference/extractMethod/extractMethod17.ts new file mode 100644 index 00000000000..d800c79f3bd --- /dev/null +++ b/tests/baselines/reference/extractMethod/extractMethod17.ts @@ -0,0 +1,25 @@ +// ==ORIGINAL== +class C { + M(t1: T1, t2: T2) { + t1.toString(); + } +} +// ==SCOPE::class 'C'== +class C { + M(t1: T1, t2: T2) { + this.newFunction(t1); + } + + private newFunction(t1: T1) { + t1.toString(); + } +} +// ==SCOPE::global scope== +class C { + M(t1: T1, t2: T2) { + newFunction(t1); + } +} +function newFunction(t1: T1) { + t1.toString(); +} diff --git a/tests/baselines/reference/extractMethod/extractMethod18.ts b/tests/baselines/reference/extractMethod/extractMethod18.ts new file mode 100644 index 00000000000..ce6a90c3790 --- /dev/null +++ b/tests/baselines/reference/extractMethod/extractMethod18.ts @@ -0,0 +1,25 @@ +// ==ORIGINAL== +class C { + M(t1: T1, t2: T2) { + t1.toString(); + } +} +// ==SCOPE::class 'C'== +class C { + M(t1: T1, t2: T2) { + this.newFunction(t1); + } + + private newFunction(t1: T1) { + t1.toString(); + } +} +// ==SCOPE::global scope== +class C { + M(t1: T1, t2: T2) { + newFunction(t1); + } +} +function newFunction(t1: T1) { + t1.toString(); +}