Skip to content

Commit 05d428a

Browse files
committed
Sshow signature information if possible (even though signature resolution fails) in given location
1 parent 23bdc50 commit 05d428a

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

src/services/services.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2733,7 +2733,12 @@ module ts {
27332733
var useConstructSignatures = callExpression.kind === SyntaxKind.NewExpression || callExpression.func.kind === SyntaxKind.SuperKeyword;
27342734
var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures();
27352735

2736-
if (contains(allSignatures, signature.target || signature)) {
2736+
if (!contains(allSignatures, signature.target || signature)) {
2737+
// Get the first signature if there
2738+
signature = allSignatures.length ? allSignatures[0] : undefined;
2739+
}
2740+
2741+
if (signature) {
27372742
if (useConstructSignatures && (symbolFlags & SymbolFlags.Class)) {
27382743
// Constructor
27392744
symbolKind = ScriptElementKind.constructorImplementationElement;

tests/cases/fourslash_old/automaticConstructorToggling.ts renamed to tests/cases/fourslash/automaticConstructorToggling.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ goTo.marker('Csig');
2626
verify.quickInfoIs("(constructor) C<string>(val: string): C<string>");
2727

2828
goTo.marker('Dsig');
29-
verify.quickInfoIs("(constructor) D<string>(val: string): D<string>");
29+
verify.quickInfoIs("(constructor) D<T>(val: T): D<T>"); // Cannot resolve signature
3030

3131
goTo.marker(C);
3232
edit.deleteAtCaret('constructor(val: T) { }'.length);
@@ -37,10 +37,10 @@ goTo.marker('Bsig');
3737
verify.quickInfoIs("(constructor) B<string>(val: string): B<string>");
3838

3939
goTo.marker('Csig');
40-
verify.quickInfoIs("(constructor) C<{}>(): C<{}>");
40+
verify.quickInfoIs("(constructor) C<T>(): C<T>"); // Cannot resolve signature
4141

4242
goTo.marker('Dsig');
43-
verify.quickInfoIs("(constructor) D<string>(val: string): D<string>");
43+
verify.quickInfoIs("(constructor) D<T>(val: T): D<T>"); // Cannot resolve signature
4444

4545
goTo.marker(D);
4646
edit.deleteAtCaret("val: T".length);
@@ -51,7 +51,7 @@ goTo.marker('Bsig');
5151
verify.quickInfoIs("(constructor) B<string>(val: string): B<string>");
5252

5353
goTo.marker('Csig');
54-
verify.quickInfoIs("(constructor) C<{}>(): C<{}>");
54+
verify.quickInfoIs("(constructor) C<T>(): C<T>"); // Cannot resolve signature
5555

5656
goTo.marker('Dsig');
5757
verify.quickInfoIs("(constructor) D<string>(): D<string>");

tests/cases/fourslash/commentsOverloads.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,11 +310,11 @@ goTo.marker('18');
310310
verify.completionListContains('i1', 'interface i1', '');
311311
verify.completionListContains('i1_i', '(var) i1_i: new i1(b: number) => any (+ 1 overload(s))', '');
312312
verify.completionListContains('i2', 'interface i2', '');
313-
verify.completionListContains('i2_i', '(var) i2_i: i2', '');
313+
verify.completionListContains('i2_i', '(var) i2_i: new i2(a: string) => any (+ 1 overload(s))', '');
314314
verify.completionListContains('i3', 'interface i3', '');
315-
verify.completionListContains('i3_i', '(var) i3_i: i3', '');
315+
verify.completionListContains('i3_i', '(var) i3_i: new i3(a: string) => any (+ 1 overload(s))', 'new 1');
316316
verify.completionListContains('i4', 'interface i4', '');
317-
verify.completionListContains('i4_i', '(var) i4_i: i4', '');
317+
verify.completionListContains('i4_i', '(var) i4_i: new i4(a: string) => any (+ 1 overload(s))', '');
318318

319319
goTo.marker('19');
320320
verify.currentSignatureHelpDocCommentIs("");

0 commit comments

Comments
 (0)