/// ////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]); verify.quickInfos({ 1: "class Container", 2: "(type parameter) T in IList", 3: "(type parameter) T in IList", 4: "(type parameter) T in List2>", 5: "(type parameter) T in List2>", 6: "(property) List2>.__item: T[]", 7: "(method) List2>.getItem(i: number): T", 8: "(method) List2>.method>(s: S, p: T[]): S", 9: "(type parameter) S in List2>.method>(s: S, p: T[]): S", 10: "(type parameter) T in List2>", 11: "(type parameter) T in foo4(test: T): T", 12: "(type parameter) S in foo4(test: S): S", 13: "(type parameter) T in foo4(test: any): any", 14: "(method) List2>.getItem(i: number): IList", 15: "(method) List2>.method>>(s: IList>, p: IList[]): IList>" });