TypeScript/tests/baselines/reference/typeInferenceReturnTypeCallback.types

91 lines
1.6 KiB
Plaintext
Raw Normal View History

2014-08-15 23:33:16 +02:00
=== tests/cases/compiler/typeInferenceReturnTypeCallback.ts ===
interface IList<A> {
>IList : IList<A>
>A : A
2014-08-15 23:33:16 +02:00
map<B>(f: (t: A) => B): IList<B>;
>map : <B>(f: (t: A) => B) => IList<B>
>B : B
>f : (t: A) => B
>t : A
>A : A
>B : B
>IList : IList<A>
>B : B
2014-08-15 23:33:16 +02:00
}
class Nil<C> implements IList<C>{
>Nil : Nil<C>
>C : C
>IList : IList<A>
>C : C
2014-08-15 23:33:16 +02:00
map<D>(f: (t: C) => D): IList<D> {
>map : <D>(f: (t: C) => D) => IList<D>
>D : D
>f : (t: C) => D
>t : C
>C : C
>D : D
>IList : IList<A>
>D : D
2014-08-15 23:33:16 +02:00
return null;
2015-04-13 21:36:11 +02:00
>null : null
2014-08-15 23:33:16 +02:00
}
}
class Cons<T> implements IList<T>{
>Cons : Cons<T>
>T : T
>IList : IList<A>
>T : T
2014-08-15 23:33:16 +02:00
map<U>(f: (t: T) => U): IList<U> {
>map : <U>(f: (t: T) => U) => IList<U>
>U : U
>f : (t: T) => U
>t : T
>T : T
>U : U
>IList : IList<A>
>U : U
2014-08-15 23:33:16 +02:00
return this.foldRight(new Nil<U>(), (t, acc) => {
2014-08-22 03:39:46 +02:00
>this.foldRight(new Nil<U>(), (t, acc) => { return new Cons<U>(); }) : Nil<U>
>this.foldRight : <E>(z: E, f: (t: T, acc: E) => E) => E
>this : Cons<T>
>foldRight : <E>(z: E, f: (t: T, acc: E) => E) => E
2014-08-15 23:33:16 +02:00
>new Nil<U>() : Nil<U>
>Nil : typeof Nil
>U : U
2014-08-22 03:39:46 +02:00
>(t, acc) => { return new Cons<U>(); } : (t: T, acc: Nil<U>) => Cons<U>
>t : T
>acc : Nil<U>
2014-08-15 23:33:16 +02:00
return new Cons<U>();
>new Cons<U>() : Cons<U>
>Cons : typeof Cons
>U : U
2014-08-15 23:33:16 +02:00
});
}
foldRight<E>(z: E, f: (t: T, acc: E) => E): E {
>foldRight : <E>(z: E, f: (t: T, acc: E) => E) => E
>E : E
>z : E
>E : E
>f : (t: T, acc: E) => E
>t : T
>T : T
>acc : E
>E : E
>E : E
>E : E
2014-08-15 23:33:16 +02:00
return null;
2015-04-13 21:36:11 +02:00
>null : null
2014-08-15 23:33:16 +02:00
}
}