=== tests/cases/compiler/infinitelyExpandingTypes5.ts === interface Query { >Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) foo(x: T): Query; >foo : (x: T) => Query, Symbol(foo, Decl(infinitelyExpandingTypes5.ts, 0, 20)) >x : T, Symbol(x, Decl(infinitelyExpandingTypes5.ts, 1, 8)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) >Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 0, 16)) } interface Enumerator { >Enumerator : Enumerator, Symbol(Enumerator, Decl(infinitelyExpandingTypes5.ts, 2, 1)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 4, 21)) (action: (item: T, index: number) => boolean): boolean; >action : (item: T, index: number) => boolean, Symbol(action, Decl(infinitelyExpandingTypes5.ts, 5, 5)) >item : T, Symbol(item, Decl(infinitelyExpandingTypes5.ts, 5, 14)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 4, 21)) >index : number, Symbol(index, Decl(infinitelyExpandingTypes5.ts, 5, 22)) } function from(array: T[]): Query; >from : { (array: T[]): Query; (enumerator: Enumerator): Query; }, Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) >array : T[], Symbol(array, Decl(infinitelyExpandingTypes5.ts, 8, 17)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) >Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 8, 14)) function from(enumerator: Enumerator): Query; >from : { (array: T[]): Query; (enumerator: Enumerator): Query; }, Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) >enumerator : Enumerator, Symbol(enumerator, Decl(infinitelyExpandingTypes5.ts, 9, 17)) >Enumerator : Enumerator, Symbol(Enumerator, Decl(infinitelyExpandingTypes5.ts, 2, 1)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) >Query : Query, Symbol(Query, Decl(infinitelyExpandingTypes5.ts, 0, 0)) >T : T, Symbol(T, Decl(infinitelyExpandingTypes5.ts, 9, 14)) function from(arg: any): any { >from : { (array: T[]): Query; (enumerator: Enumerator): Query; }, Symbol(from, Decl(infinitelyExpandingTypes5.ts, 6, 1), Decl(infinitelyExpandingTypes5.ts, 8, 39), Decl(infinitelyExpandingTypes5.ts, 9, 54)) >arg : any, Symbol(arg, Decl(infinitelyExpandingTypes5.ts, 10, 14)) return undefined; >undefined : undefined, Symbol(undefined) }