// Code generated by convertFourslash; DO NOT EDIT. // To modify this test, run "npm run makemanual commentsOverloadsFourslash" package fourslash_test import ( "testing" "github.com/microsoft/typescript-go/internal/fourslash" . "github.com/microsoft/typescript-go/internal/fourslash/tests/util" "github.com/microsoft/typescript-go/internal/lsp/lsproto" "github.com/microsoft/typescript-go/internal/testutil" ) func TestCommentsOverloadsFourslash(t *testing.T) { fourslash.SkipIfFailing(t) t.Parallel() defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `/** this is signature 1*/ function /*1*/f1(/**param a*/a: number): number; function /*2*/f1(b: string): number; function /*3*/f1(aOrb: any) { return 10; } f/*4q*/1(/*4*/"hello"); f/*o4q*/1(/*o4*/10); function /*5*/f2(/**param a*/a: number): number; /** this is signature 2*/ function /*6*/f2(b: string): number; /** this is f2 var comment*/ function /*7*/f2(aOrb: any) { return 10; } f/*8q*/2(/*8*/"hello"); f/*o8q*/2(/*o8*/10); function /*9*/f3(a: number): number; function /*10*/f3(b: string): number; function /*11*/f3(aOrb: any) { return 10; } f/*12q*/3(/*12*/"hello"); f/*o12q*/3(/*o12*/10); /** this is signature 4 - with number parameter*/ function /*13*/f4(/**param a*/a: number): number; /** this is signature 4 - with string parameter*/ function /*14*/f4(b: string): number; function /*15*/f4(aOrb: any) { return 10; } f/*16q*/4(/*16*/"hello"); f/*o16q*/4(/*o16*/10); /*17*/ interface i1 { /**this signature 1*/ (/**param a*/ a: number): number; /**this is signature 2*/ (b: string): number; /** foo 1*/ foo(a: number): number; /** foo 2*/ foo(b: string): number; foo2(a: number): number; /** foo2 2*/ foo2(b: string): number; foo3(a: number): number; foo3(b: string): number; /** foo4 1*/ foo4(a: number): number; foo4(b: string): number; /** new 1*/ new (a: string); new (b: number); } var i1_i: i1; interface i2 { new (a: string); /** new 2*/ new (b: number); (a: number): number; /**this is signature 2*/ (b: string): number; } var i2_i: i2; interface i3 { /** new 1*/ new (a: string); /** new 2*/ new (b: number); /**this is signature 1*/ (a: number): number; (b: string): number; } var i3_i: i3; interface i4 { new (a: string); new (b: number); (a: number): number; (b: string): number; } var i4_i: i4; new /*18*/i1/*19q*/_i(/*19*/10); new i/*20q*/1_i(/*20*/"Hello"); i/*21q*/1_i(/*21*/10); i/*22q*/1_i(/*22*/"hello"); i1_i./*23*/f/*24q*/oo(/*24*/10); i1_i.f/*25q*/oo(/*25*/"hello"); i1_i.fo/*26q*/o2(/*26*/10); i1_i.fo/*27q*/o2(/*27*/"hello"); i1_i.fo/*28q*/o3(/*28*/10); i1_i.fo/*29q*/o3(/*29*/"hello"); i1_i.fo/*30q*/o4(/*30*/10); i1_i.fo/*31q*/o4(/*31*/"hello"); new i2/*32q*/_i(/*32*/10); new i2/*33q*/_i(/*33*/"Hello"); i/*34q*/2_i(/*34*/10); i2/*35q*/_i(/*35*/"hello"); new i/*36q*/3_i(/*36*/10); new i3/*37q*/_i(/*37*/"Hello"); i3/*38q*/_i(/*38*/10); i3/*39q*/_i(/*39*/"hello"); new i4/*40q*/_i(/*40*/10); new i/*41q*/4_i(/*41*/"Hello"); i4/*42q*/_i(/*42*/10); i4/*43q*/_i(/*43*/"hello"); class c { public /*93*/prop1(a: number): number; public /*94*/prop1(b: string): number; public /*95*/prop1(aorb: any) { return 10; } /** prop2 1*/ public /*96*/prop2(a: number): number; public /*97*/prop2(b: string): number; public /*98*/prop2(aorb: any) { return 10; } public /*99*/prop3(a: number): number; /** prop3 2*/ public /*100*/prop3(b: string): number; public /*101*/prop3(aorb: any) { return 10; } /** prop4 1*/ public /*102*/prop4(a: number): number; /** prop4 2*/ public /*103*/prop4(b: string): number; public /*104*/prop4(aorb: any) { return 10; } /** prop5 1*/ public /*105*/prop5(a: number): number; /** prop5 2*/ public /*106*/prop5(b: string): number; /** Prop5 implementaion*/ public /*107*/prop5(aorb: any) { return 10; } } class c1 { /*78*/constructor(a: number); /*79*/constructor(b: string); /*80*/constructor(aorb: any) { } } class c2 { /** c2 1*/ /*81*/constructor(a: number); /*82*/constructor(b: string); /*83*/constructor(aorb: any) { } } class c3 { /*84*/constructor(a: number); /** c3 2*/ /*85*/constructor(b: string); /*86*/constructor(aorb: any) { } } class c4 { /** c4 1*/ /*87*/constructor(a: number); /** c4 2*/ /*88*/constructor(b: string); /*89*/constructor(aorb: any) { } } class c5 { /** c5 1*/ /*90*/constructor(a: number); /** c5 2*/ /*91*/constructor(b: string); /** c5 implementation*/ /*92*/constructor(aorb: any) { } } var c_i = new c(); c_i./*44*/pro/*45q*/p1(/*45*/10); c_i.pr/*46q*/op1(/*46*/"hello"); c_i.pr/*47q*/op2(/*47*/10); c_i.pr/*48q*/op2(/*48*/"hello"); c_i.pro/*49q*/p3(/*49*/10); c_i.pr/*50q*/op3(/*50*/"hello"); c_i.pr/*51q*/op4(/*51*/10); c_i.pr/*52q*/op4(/*52*/"hello"); c_i.pr/*53q*/op5(/*53*/10); c_i.pr/*54q*/op5(/*54*/"hello"); var c1/*66*/_i_1 = new c/*55q*/1(/*55*/10); var c1_i_2 = new c/*56q*/1(/*56*/"hello"); var c2_i_1 = new c/*57q*/2(/*57*/10); var c/*67*/2_i_2 = new c/*58q*/2(/*58*/"hello"); var c3_i_1 = new c/*59q*/3(/*59*/10); var c/*68*/3_i_2 = new c/*60q*/3(/*60*/"hello"); var c4/*69*/_i_1 = new c/*61q*/4(/*61*/10); var c4_i_2 = new c/*62q*/4(/*62*/"hello"); var c/*70*/5_i_1 = new c/*63q*/5(/*63*/10); var c5_i_2 = new c/*64q*/5(/*64*/"hello"); /** This is multiOverload F1 1*/ function multiOverload(a: number): string; /** This is multiOverload F1 2*/ function multiOverload(b: string): string; /** This is multiOverload F1 3*/ function multiOverload(c: boolean): string; /** This is multiOverload Implementation */ function multiOverload(d): string { return "Hello"; } multiOverl/*71*/oad(10); multiOverl/*72*/oad("hello"); multiOverl/*73*/oad(true); /** This is ambient F1 1*/ declare function ambientF1(a: number): string; /** This is ambient F1 2*/ declare function ambientF1(b: string): string; /** This is ambient F1 3*/ declare function ambientF1(c: boolean): boolean; /*65*/ ambient/*74*/F1(10); ambient/*75*/F1("hello"); ambient/*76*/F1(true); function foo(a/*77*/a: i3) { } foo(null);` f, done := fourslash.NewFourslash(t, nil /*capabilities*/, content) defer done() f.VerifyQuickInfoAt(t, "1", "function f1(a: number): number (+1 overload)", "this is signature 1") f.VerifyQuickInfoAt(t, "2", "function f1(b: string): number (+1 overload)", "this is signature 1") f.VerifyQuickInfoAt(t, "3", "function f1(a: number): number (+1 overload)", "this is signature 1") f.VerifyQuickInfoAt(t, "4q", "function f1(b: string): number (+1 overload)", "this is signature 1") f.VerifyQuickInfoAt(t, "o4q", "function f1(a: number): number (+1 overload)", "this is signature 1") f.GoToMarker(t, "4") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.GoToMarker(t, "o4") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this is signature 1", ParameterDocComment: "param a", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "5", "function f2(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "6", "function f2(b: string): number (+1 overload)", "this is signature 2") f.VerifyQuickInfoAt(t, "7", "function f2(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "8q", "function f2(b: string): number (+1 overload)", "this is signature 2") f.VerifyQuickInfoAt(t, "o8q", "function f2(a: number): number (+1 overload)", "") f.GoToMarker(t, "8") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this is signature 2", OverloadsCount: 2}) f.GoToMarker(t, "o8") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{ParameterDocComment: "param a", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "9", "function f3(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "10", "function f3(b: string): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "11", "function f3(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "12q", "function f3(b: string): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "o12q", "function f3(a: number): number (+1 overload)", "") f.GoToMarker(t, "12") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.GoToMarker(t, "o12") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "13", "function f4(a: number): number (+1 overload)", "this is signature 4 - with number parameter") f.VerifyQuickInfoAt(t, "14", "function f4(b: string): number (+1 overload)", "this is signature 4 - with string parameter") f.VerifyQuickInfoAt(t, "15", "function f4(a: number): number (+1 overload)", "this is signature 4 - with number parameter") f.VerifyQuickInfoAt(t, "16q", "function f4(b: string): number (+1 overload)", "this is signature 4 - with string parameter") f.VerifyQuickInfoAt(t, "o16q", "function f4(a: number): number (+1 overload)", "this is signature 4 - with number parameter") f.GoToMarker(t, "16") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this is signature 4 - with string parameter", OverloadsCount: 2}) f.GoToMarker(t, "o16") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this is signature 4 - with number parameter", ParameterDocComment: "param a", OverloadsCount: 2}) f.VerifyCompletions(t, "17", &fourslash.CompletionsExpectedList{ IsIncomplete: false, ItemDefaults: &fourslash.CompletionsExpectedItemDefaults{ CommitCharacters: &DefaultCommitCharacters, EditRange: Ignored, }, Items: &fourslash.CompletionsExpectedItems{ Includes: []fourslash.CompletionsExpectedItem{ &lsproto.CompletionItem{ Label: "f1", Detail: new("function f1(a: number): number (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "this is signature 1", }, }, }, &lsproto.CompletionItem{ Label: "f2", Detail: new("function f2(a: number): number (+1 overload)"), }, &lsproto.CompletionItem{ Label: "f3", Detail: new("function f3(a: number): number (+1 overload)"), }, &lsproto.CompletionItem{ Label: "f4", Detail: new("function f4(a: number): number (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "this is signature 4 - with number parameter", }, }, }, }, }, }) f.VerifyCompletions(t, "18", &fourslash.CompletionsExpectedList{ IsIncomplete: false, ItemDefaults: &fourslash.CompletionsExpectedItemDefaults{ CommitCharacters: &DefaultCommitCharacters, EditRange: Ignored, }, Items: &fourslash.CompletionsExpectedItems{ Includes: []fourslash.CompletionsExpectedItem{ &lsproto.CompletionItem{ Label: "i1_i", Detail: new("var i1_i: i1\nnew (b: number) => any (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "new 1", }, }, }, &lsproto.CompletionItem{ Label: "i2_i", Detail: new("var i2_i: i2\nnew (a: string) => any (+1 overload)"), }, &lsproto.CompletionItem{ Label: "i3_i", Detail: new("var i3_i: i3\nnew (a: string) => any (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "new 1", }, }, }, &lsproto.CompletionItem{ Label: "i4_i", Detail: new("var i4_i: i4\nnew (a: string) => any (+1 overload)"), }, }, Excludes: []string{ "i1", "i2", "i3", "i4", }, }, }) f.GoToMarker(t, "19") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "19q", "var i1_i: i1\nnew (b: number) => any (+1 overload)", "new 1") f.GoToMarker(t, "20") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "new 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "20q", "var i1_i: i1\nnew (a: string) => any (+1 overload)", "new 1") f.GoToMarker(t, "21") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this signature 1", ParameterDocComment: "param a", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "21q", "var i1_i: i1\n(a: number) => number (+1 overload)", "this signature 1") f.GoToMarker(t, "22") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this is signature 2", OverloadsCount: 2}) f.GoToMarker(t, "22q") f.VerifyQuickInfoAt(t, "22q", "var i1_i: i1\n(b: string) => number (+1 overload)", "this is signature 2") f.VerifyCompletions(t, "23", &fourslash.CompletionsExpectedList{ IsIncomplete: false, ItemDefaults: &fourslash.CompletionsExpectedItemDefaults{ CommitCharacters: &DefaultCommitCharacters, EditRange: Ignored, }, Items: &fourslash.CompletionsExpectedItems{ Includes: []fourslash.CompletionsExpectedItem{ &lsproto.CompletionItem{ Label: "foo", Detail: new("(method) i1.foo(a: number): number (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "foo 1", }, }, }, &lsproto.CompletionItem{ Label: "foo2", Detail: new("(method) i1.foo2(a: number): number (+1 overload)"), }, &lsproto.CompletionItem{ Label: "foo3", Detail: new("(method) i1.foo3(a: number): number (+1 overload)"), }, &lsproto.CompletionItem{ Label: "foo4", Detail: new("(method) i1.foo4(a: number): number (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "foo4 1", }, }, }, }, }, }) f.GoToMarker(t, "24") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "foo 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "24q", "(method) i1.foo(a: number): number (+1 overload)", "foo 1") f.GoToMarker(t, "25") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "foo 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "25q", "(method) i1.foo(b: string): number (+1 overload)", "foo 2") f.GoToMarker(t, "26") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "26q", "(method) i1.foo2(a: number): number (+1 overload)", "") f.GoToMarker(t, "27") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "foo2 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "27q", "(method) i1.foo2(b: string): number (+1 overload)", "foo2 2") f.GoToMarker(t, "28") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "28q", "(method) i1.foo3(a: number): number (+1 overload)", "") f.GoToMarker(t, "29") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "29q", "(method) i1.foo3(b: string): number (+1 overload)", "") f.GoToMarker(t, "30") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "foo4 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "30q", "(method) i1.foo4(a: number): number (+1 overload)", "foo4 1") f.GoToMarker(t, "31") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "31q", "(method) i1.foo4(b: string): number (+1 overload)", "foo4 1") f.GoToMarker(t, "32") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "new 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "32q", "var i2_i: i2\nnew (b: number) => any (+1 overload)", "new 2") f.GoToMarker(t, "33") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "33q", "var i2_i: i2\nnew (a: string) => any (+1 overload)", "") f.GoToMarker(t, "34") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "34q", "var i2_i: i2\n(a: number) => number (+1 overload)", "") f.GoToMarker(t, "35") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this is signature 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "35q", "var i2_i: i2\n(b: string) => number (+1 overload)", "this is signature 2") f.GoToMarker(t, "36") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "new 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "36q", "var i3_i: i3\nnew (b: number) => any (+1 overload)", "new 2") f.GoToMarker(t, "37") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "new 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "37q", "var i3_i: i3\nnew (a: string) => any (+1 overload)", "new 1") f.GoToMarker(t, "38") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "this is signature 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "38q", "var i3_i: i3\n(a: number) => number (+1 overload)", "this is signature 1") f.GoToMarker(t, "39") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "39q", "var i3_i: i3\n(b: string) => number (+1 overload)", "this is signature 1") f.GoToMarker(t, "40") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "40q", "var i4_i: i4\nnew (b: number) => any (+1 overload)", "") f.GoToMarker(t, "41") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "41q", "var i4_i: i4\nnew (a: string) => any (+1 overload)", "") f.GoToMarker(t, "42") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "42q", "var i4_i: i4\n(a: number) => number (+1 overload)", "") f.GoToMarker(t, "43") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "43q", "var i4_i: i4\n(b: string) => number (+1 overload)", "") f.VerifyCompletions(t, "44", &fourslash.CompletionsExpectedList{ IsIncomplete: false, ItemDefaults: &fourslash.CompletionsExpectedItemDefaults{ CommitCharacters: &DefaultCommitCharacters, EditRange: Ignored, }, Items: &fourslash.CompletionsExpectedItems{ Exact: []fourslash.CompletionsExpectedItem{ &lsproto.CompletionItem{ Label: "prop1", Detail: new("(method) c.prop1(a: number): number (+1 overload)"), }, &lsproto.CompletionItem{ Label: "prop2", Detail: new("(method) c.prop2(a: number): number (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "prop2 1", }, }, }, &lsproto.CompletionItem{ Label: "prop3", Detail: new("(method) c.prop3(a: number): number (+1 overload)"), }, &lsproto.CompletionItem{ Label: "prop4", Detail: new("(method) c.prop4(a: number): number (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "prop4 1", }, }, }, &lsproto.CompletionItem{ Label: "prop5", Detail: new("(method) c.prop5(a: number): number (+1 overload)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "prop5 1", }, }, }, }, }, }) f.GoToMarker(t, "45") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "45q", "(method) c.prop1(a: number): number (+1 overload)", "") f.GoToMarker(t, "46") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "46q", "(method) c.prop1(b: string): number (+1 overload)", "") f.GoToMarker(t, "47") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "prop2 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "47q", "(method) c.prop2(a: number): number (+1 overload)", "prop2 1") f.GoToMarker(t, "48") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "48q", "(method) c.prop2(b: string): number (+1 overload)", "prop2 1") f.GoToMarker(t, "49") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "49q", "(method) c.prop3(a: number): number (+1 overload)", "") f.GoToMarker(t, "50") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "prop3 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "50q", "(method) c.prop3(b: string): number (+1 overload)", "prop3 2") f.GoToMarker(t, "51") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "prop4 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "51q", "(method) c.prop4(a: number): number (+1 overload)", "prop4 1") f.GoToMarker(t, "52") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "prop4 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "52q", "(method) c.prop4(b: string): number (+1 overload)", "prop4 2") f.GoToMarker(t, "53") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "prop5 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "53q", "(method) c.prop5(a: number): number (+1 overload)", "prop5 1") f.GoToMarker(t, "54") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "prop5 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "54q", "(method) c.prop5(b: string): number (+1 overload)", "prop5 2") f.GoToMarker(t, "55") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "55q", "constructor c1(a: number): c1 (+1 overload)", "") f.GoToMarker(t, "56") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "56q", "constructor c1(b: string): c1 (+1 overload)", "") f.GoToMarker(t, "57") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "c2 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "57q", "constructor c2(a: number): c2 (+1 overload)", "c2 1") f.GoToMarker(t, "58") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "58q", "constructor c2(b: string): c2 (+1 overload)", "c2 1") f.GoToMarker(t, "59") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "59q", "constructor c3(a: number): c3 (+1 overload)", "") f.GoToMarker(t, "60") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "c3 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "60q", "constructor c3(b: string): c3 (+1 overload)", "c3 2") f.GoToMarker(t, "61") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "c4 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "61q", "constructor c4(a: number): c4 (+1 overload)", "c4 1") f.GoToMarker(t, "62") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "c4 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "62q", "constructor c4(b: string): c4 (+1 overload)", "c4 2") f.GoToMarker(t, "63") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "c5 1", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "63q", "constructor c5(a: number): c5 (+1 overload)", "c5 1") f.GoToMarker(t, "64") f.VerifySignatureHelp(t, fourslash.VerifySignatureHelpOptions{DocComment: "c5 2", OverloadsCount: 2}) f.VerifyQuickInfoAt(t, "64q", "constructor c5(b: string): c5 (+1 overload)", "c5 2") f.VerifyCompletions(t, "65", &fourslash.CompletionsExpectedList{ IsIncomplete: false, ItemDefaults: &fourslash.CompletionsExpectedItemDefaults{ CommitCharacters: &DefaultCommitCharacters, EditRange: Ignored, }, Items: &fourslash.CompletionsExpectedItems{ Includes: []fourslash.CompletionsExpectedItem{ &lsproto.CompletionItem{ Label: "c", Detail: new("class c"), }, &lsproto.CompletionItem{ Label: "c1", Detail: new("class c1"), }, &lsproto.CompletionItem{ Label: "c2", Detail: new("class c2"), }, &lsproto.CompletionItem{ Label: "c3", Detail: new("class c3"), }, &lsproto.CompletionItem{ Label: "c4", Detail: new("class c4"), }, &lsproto.CompletionItem{ Label: "c5", Detail: new("class c5"), }, &lsproto.CompletionItem{ Label: "c_i", Detail: new("var c_i: c"), }, &lsproto.CompletionItem{ Label: "c1_i_1", Detail: new("var c1_i_1: c1"), }, &lsproto.CompletionItem{ Label: "c2_i_1", Detail: new("var c2_i_1: c2"), }, &lsproto.CompletionItem{ Label: "c3_i_1", Detail: new("var c3_i_1: c3"), }, &lsproto.CompletionItem{ Label: "c4_i_1", Detail: new("var c4_i_1: c4"), }, &lsproto.CompletionItem{ Label: "c5_i_1", Detail: new("var c5_i_1: c5"), }, &lsproto.CompletionItem{ Label: "c1_i_2", Detail: new("var c1_i_2: c1"), }, &lsproto.CompletionItem{ Label: "c2_i_2", Detail: new("var c2_i_2: c2"), }, &lsproto.CompletionItem{ Label: "c3_i_2", Detail: new("var c3_i_2: c3"), }, &lsproto.CompletionItem{ Label: "c4_i_2", Detail: new("var c4_i_2: c4"), }, &lsproto.CompletionItem{ Label: "c5_i_2", Detail: new("var c5_i_2: c5"), }, &lsproto.CompletionItem{ Label: "multiOverload", Detail: new("function multiOverload(a: number): string (+2 overloads)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "This is multiOverload F1 1", }, }, }, &lsproto.CompletionItem{ Label: "ambientF1", Detail: new("function ambientF1(a: number): string (+2 overloads)"), Documentation: &lsproto.StringOrMarkupContent{ MarkupContent: &lsproto.MarkupContent{ Kind: lsproto.MarkupKindMarkdown, Value: "This is ambient F1 1", }, }, }, }, }, }) f.VerifyQuickInfoAt(t, "66", "var c1_i_1: c1", "") f.VerifyQuickInfoAt(t, "67", "var c2_i_2: c2", "") f.VerifyQuickInfoAt(t, "68", "var c3_i_2: c3", "") f.VerifyQuickInfoAt(t, "69", "var c4_i_1: c4", "") f.VerifyQuickInfoAt(t, "70", "var c5_i_1: c5", "") f.VerifyQuickInfoAt(t, "71", "function multiOverload(a: number): string (+2 overloads)", "This is multiOverload F1 1") f.VerifyQuickInfoAt(t, "72", "function multiOverload(b: string): string (+2 overloads)", "This is multiOverload F1 2") f.VerifyQuickInfoAt(t, "73", "function multiOverload(c: boolean): string (+2 overloads)", "This is multiOverload F1 3") f.VerifyQuickInfoAt(t, "74", "function ambientF1(a: number): string (+2 overloads)", "This is ambient F1 1") f.VerifyQuickInfoAt(t, "75", "function ambientF1(b: string): string (+2 overloads)", "This is ambient F1 2") f.VerifyQuickInfoAt(t, "76", "function ambientF1(c: boolean): boolean (+2 overloads)", "This is ambient F1 3") f.VerifyQuickInfoAt(t, "77", "(parameter) aa: i3", "") f.VerifyQuickInfoAt(t, "78", "constructor c1(a: number): c1 (+1 overload)", "") f.VerifyQuickInfoAt(t, "79", "constructor c1(b: string): c1 (+1 overload)", "") f.VerifyQuickInfoAt(t, "80", "constructor c1(a: number): c1 (+1 overload)", "") f.VerifyQuickInfoAt(t, "81", "constructor c2(a: number): c2 (+1 overload)", "c2 1") f.VerifyQuickInfoAt(t, "82", "constructor c2(b: string): c2 (+1 overload)", "c2 1") f.VerifyQuickInfoAt(t, "83", "constructor c2(a: number): c2 (+1 overload)", "c2 1") f.VerifyQuickInfoAt(t, "84", "constructor c3(a: number): c3 (+1 overload)", "") f.VerifyQuickInfoAt(t, "85", "constructor c3(b: string): c3 (+1 overload)", "c3 2") f.VerifyQuickInfoAt(t, "86", "constructor c3(a: number): c3 (+1 overload)", "") f.VerifyQuickInfoAt(t, "87", "constructor c4(a: number): c4 (+1 overload)", "c4 1") f.VerifyQuickInfoAt(t, "88", "constructor c4(b: string): c4 (+1 overload)", "c4 2") f.VerifyQuickInfoAt(t, "89", "constructor c4(a: number): c4 (+1 overload)", "c4 1") f.VerifyQuickInfoAt(t, "90", "constructor c5(a: number): c5 (+1 overload)", "c5 1") f.VerifyQuickInfoAt(t, "91", "constructor c5(b: string): c5 (+1 overload)", "c5 2") f.VerifyQuickInfoAt(t, "92", "constructor c5(a: number): c5 (+1 overload)", "c5 1") f.VerifyQuickInfoAt(t, "93", "(method) c.prop1(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "94", "(method) c.prop1(b: string): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "95", "(method) c.prop1(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "96", "(method) c.prop2(a: number): number (+1 overload)", "prop2 1") f.VerifyQuickInfoAt(t, "97", "(method) c.prop2(b: string): number (+1 overload)", "prop2 1") f.VerifyQuickInfoAt(t, "98", "(method) c.prop2(a: number): number (+1 overload)", "prop2 1") f.VerifyQuickInfoAt(t, "99", "(method) c.prop3(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "100", "(method) c.prop3(b: string): number (+1 overload)", "prop3 2") f.VerifyQuickInfoAt(t, "101", "(method) c.prop3(a: number): number (+1 overload)", "") f.VerifyQuickInfoAt(t, "102", "(method) c.prop4(a: number): number (+1 overload)", "prop4 1") f.VerifyQuickInfoAt(t, "103", "(method) c.prop4(b: string): number (+1 overload)", "prop4 2") f.VerifyQuickInfoAt(t, "104", "(method) c.prop4(a: number): number (+1 overload)", "prop4 1") f.VerifyQuickInfoAt(t, "105", "(method) c.prop5(a: number): number (+1 overload)", "prop5 1") f.VerifyQuickInfoAt(t, "106", "(method) c.prop5(b: string): number (+1 overload)", "prop5 2") f.VerifyQuickInfoAt(t, "107", "(method) c.prop5(a: number): number (+1 overload)", "prop5 1") }