package fourslash_test import ( "testing" "efprojects.com/kitten-ipc/kitcom/internal/tsgo/fourslash" "efprojects.com/kitten-ipc/kitcom/internal/tsgo/testutil" ) func TestQuickInfoGenerics(t *testing.T) { t.Parallel() t.Skip() defer testutil.RecoverAndFail(t, "Panic on fourslash test") const content = `class Con/*1*/tainer { x: T; } interface IList { getItem(i: number): /*3*/T; } class List2> implements IList { private __it/*6*/em: /*5*/T[]; public get/*7*/Item(i: number) { return this.__item[i]; } public /*8*/method>(s: S, p: /*10*/T[]) { return s; } } function foo4(test: T): T; function foo4(test: S): S; function foo4(test: any): any; function foo4(test: any): any { return null; } var x: List2>; var y = x./*14*/getItem(10); var x2: IList>; var x3: IList; var y2 = x./*15*/method(x2, [x3, x3]);` f := fourslash.NewFourslash(t, nil /*capabilities*/, content) f.VerifyQuickInfoAt(t, "1", "class Container", "") f.VerifyQuickInfoAt(t, "2", "(type parameter) T in IList", "") f.VerifyQuickInfoAt(t, "3", "(type parameter) T in IList", "") f.VerifyQuickInfoAt(t, "4", "(type parameter) T in List2>", "") f.VerifyQuickInfoAt(t, "5", "(type parameter) T in List2>", "") f.VerifyQuickInfoAt(t, "6", "(property) List2>.__item: T[]", "") f.VerifyQuickInfoAt(t, "7", "(method) List2>.getItem(i: number): T", "") f.VerifyQuickInfoAt(t, "8", "(method) List2>.method>(s: S, p: T[]): S", "") f.VerifyQuickInfoAt(t, "9", "(type parameter) S in List2>.method>(s: S, p: T[]): S", "") f.VerifyQuickInfoAt(t, "10", "(type parameter) T in List2>", "") f.VerifyQuickInfoAt(t, "11", "(type parameter) T in foo4(test: T): T", "") f.VerifyQuickInfoAt(t, "12", "(type parameter) S in foo4(test: S): S", "") f.VerifyQuickInfoAt(t, "13", "(type parameter) T in foo4(test: any): any", "") f.VerifyQuickInfoAt(t, "14", "(method) List2>.getItem(i: number): IList", "") f.VerifyQuickInfoAt(t, "15", "(method) List2>.method>>(s: IList>, p: IList[]): IList>", "") }