=== tests/cases/compiler/checkInfiniteExpansionTermination2.ts === // Regression test for #1002 // Before fix this code would cause infinite loop interface IObservable { >IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) >T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 3, 22)) n: IObservable; >n : IObservable, Symbol(n, Decl(checkInfiniteExpansionTermination2.ts, 3, 26)) >IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) >T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 3, 22)) } interface ISubject extends IObservable { } >ISubject : ISubject, Symbol(ISubject, Decl(checkInfiniteExpansionTermination2.ts, 5, 1)) >T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 6, 19)) >IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) >T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 6, 19)) declare function combineLatest(x: IObservable[]): void; >combineLatest : { (x: IObservable[]): void; (): void; }, Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) >TOther : TOther, Symbol(TOther, Decl(checkInfiniteExpansionTermination2.ts, 8, 31)) >x : IObservable[], Symbol(x, Decl(checkInfiniteExpansionTermination2.ts, 8, 39)) >IObservable : IObservable, Symbol(IObservable, Decl(checkInfiniteExpansionTermination2.ts, 0, 0)) >TOther : TOther, Symbol(TOther, Decl(checkInfiniteExpansionTermination2.ts, 8, 31)) declare function combineLatest(): void; >combineLatest : { (x: IObservable[]): void; (): void; }, Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) function fn() { >fn : () => void, Symbol(fn, Decl(checkInfiniteExpansionTermination2.ts, 9, 39)) >T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 11, 12)) var values: ISubject[] = []; >values : ISubject[], Symbol(values, Decl(checkInfiniteExpansionTermination2.ts, 12, 7)) >ISubject : ISubject, Symbol(ISubject, Decl(checkInfiniteExpansionTermination2.ts, 5, 1)) >[] : undefined[] // Hang when using , but not combineLatest(values); >combineLatest(values) : void >combineLatest : { (x: IObservable[]): void; (): void; }, Symbol(combineLatest, Decl(checkInfiniteExpansionTermination2.ts, 6, 48), Decl(checkInfiniteExpansionTermination2.ts, 8, 71)) >T : T, Symbol(T, Decl(checkInfiniteExpansionTermination2.ts, 11, 12)) >values : ISubject[], Symbol(values, Decl(checkInfiniteExpansionTermination2.ts, 12, 7)) }