Skip to content

Commit 59c91f6

Browse files
authored
fix(50077): skip convertOverloadListToSingleSignature refactoring if position is in function body (microsoft#50093)
1 parent a3a5e00 commit 59c91f6

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

src/services/refactors/convertOverloadListToSingleSignature.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ ${newComment.split("\n").map(c => ` * ${c}`).join("\n")}
185185
if (!containingDecl) {
186186
return;
187187
}
188+
if (isFunctionLikeDeclaration(containingDecl) && containingDecl.body && rangeContainsPosition(containingDecl.body, startPosition)) {
189+
return;
190+
}
191+
188192
const checker = program.getTypeChecker();
189193
const signatureSymbol = containingDecl.symbol;
190194
if (!signatureSymbol) {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/// <reference path="fourslash.ts" />
2+
3+
/////*a1*/function foo(a: string): void;
4+
/////*a2*/function foo(a: number): void;/*b2*/
5+
/////*a3*/function foo(a: number | string): void/*b3*/ /*a4*/{
6+
//// /*a5*/console.log(1);/*b5*/
7+
////}/*b4*//*b1*/
8+
9+
goTo.select("a1", "b1");
10+
verify.refactorAvailable("Convert overload list to single signature", "Convert overload list to single signature", ts.Diagnostics.Convert_overload_list_to_single_signature.message);
11+
12+
goTo.select("a2", "b2");
13+
verify.refactorAvailable("Convert overload list to single signature", "Convert overload list to single signature", ts.Diagnostics.Convert_overload_list_to_single_signature.message);
14+
15+
goTo.select("a3", "b3");
16+
verify.refactorAvailable("Convert overload list to single signature", "Convert overload list to single signature", ts.Diagnostics.Convert_overload_list_to_single_signature.message);
17+
18+
goTo.select("a4", "b4");
19+
verify.not.refactorAvailable("Convert overload list to single signature", "Convert overload list to single signature", ts.Diagnostics.Convert_overload_list_to_single_signature.message);
20+
21+
goTo.select("a5", "b5");
22+
verify.not.refactorAvailable("Convert overload list to single signature", "Convert overload list to single signature", ts.Diagnostics.Convert_overload_list_to_single_signature.message);

0 commit comments

Comments
 (0)