1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
=== tests/cases/compiler/checkInfiniteExpansionTermination.ts ===
// Regression test for #1002
// Before fix this code would cause infinite loop
interface IObservable<T> {
>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0))
>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 3, 22))
n: IObservable<T[]>; // Needed, must be T[]
>n : Symbol(IObservable.n, Decl(checkInfiniteExpansionTermination.ts, 3, 26))
>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0))
>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 3, 22))
}
// Needed
interface ISubject<T> extends IObservable<T> { }
>ISubject : Symbol(ISubject, Decl(checkInfiniteExpansionTermination.ts, 5, 1))
>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 8, 19))
>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0))
>T : Symbol(T, Decl(checkInfiniteExpansionTermination.ts, 8, 19))
interface Foo { x }
>Foo : Symbol(Foo, Decl(checkInfiniteExpansionTermination.ts, 8, 48))
>x : Symbol(Foo.x, Decl(checkInfiniteExpansionTermination.ts, 10, 15))
interface Bar { y }
>Bar : Symbol(Bar, Decl(checkInfiniteExpansionTermination.ts, 10, 19))
>y : Symbol(Bar.y, Decl(checkInfiniteExpansionTermination.ts, 11, 15))
var values: IObservable<Foo>;
>values : Symbol(values, Decl(checkInfiniteExpansionTermination.ts, 13, 3))
>IObservable : Symbol(IObservable, Decl(checkInfiniteExpansionTermination.ts, 0, 0))
>Foo : Symbol(Foo, Decl(checkInfiniteExpansionTermination.ts, 8, 48))
var values2: ISubject<Bar>;
>values2 : Symbol(values2, Decl(checkInfiniteExpansionTermination.ts, 14, 3))
>ISubject : Symbol(ISubject, Decl(checkInfiniteExpansionTermination.ts, 5, 1))
>Bar : Symbol(Bar, Decl(checkInfiniteExpansionTermination.ts, 10, 19))
values = values2;
>values : Symbol(values, Decl(checkInfiniteExpansionTermination.ts, 13, 3))
>values2 : Symbol(values2, Decl(checkInfiniteExpansionTermination.ts, 14, 3))
|