2014-08-15 23:33:16 +02:00
|
|
|
=== tests/cases/compiler/genericSpecializationToTypeLiteral1.ts ===
|
|
|
|
interface IEnumerable<T> {
|
|
|
|
>IEnumerable : IEnumerable<T>
|
|
|
|
>T : T
|
|
|
|
|
|
|
|
zip<TResult>(second: IEnumerable<T>, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>;
|
|
|
|
>zip : { <TResult>(second: IEnumerable<T>, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>; <TResult>(second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>; <TResult>(...params: any[]): IEnumerable<TResult>; }
|
|
|
|
>TResult : TResult
|
|
|
|
>second : IEnumerable<T>
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
>resultSelector : (first: T, second: T, index: number) => TResult
|
|
|
|
>first : T
|
|
|
|
>T : T
|
|
|
|
>second : T
|
|
|
|
>T : T
|
|
|
|
>index : number
|
|
|
|
>TResult : TResult
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>TResult : TResult
|
|
|
|
|
|
|
|
zip<TResult>(second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>;
|
|
|
|
>zip : { <TResult>(second: IEnumerable<T>, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>; <TResult>(second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>; <TResult>(...params: any[]): IEnumerable<TResult>; }
|
|
|
|
>TResult : TResult
|
|
|
|
>second : T[]
|
|
|
|
>T : T
|
|
|
|
>resultSelector : (first: T, second: T, index: number) => TResult
|
|
|
|
>first : T
|
|
|
|
>T : T
|
|
|
|
>second : T
|
|
|
|
>T : T
|
|
|
|
>index : number
|
|
|
|
>TResult : TResult
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>TResult : TResult
|
|
|
|
|
|
|
|
zip<TResult>(...params: any[]): IEnumerable<TResult>; // last one is selector
|
|
|
|
>zip : { <TResult>(second: IEnumerable<T>, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>; <TResult>(second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable<TResult>; <TResult>(...params: any[]): IEnumerable<TResult>; }
|
|
|
|
>TResult : TResult
|
|
|
|
>params : any[]
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>TResult : TResult
|
|
|
|
|
|
|
|
merge<TResult>(...params: IEnumerable<T>[]): IEnumerable<T>;
|
|
|
|
>merge : { <TResult>(...params: IEnumerable<T>[]): IEnumerable<T>; <TResult>(...params: T[][]): IEnumerable<T>; }
|
|
|
|
>TResult : TResult
|
|
|
|
>params : IEnumerable<T>[]
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
|
|
|
|
merge<TResult>(...params: T[][]): IEnumerable<T>;
|
|
|
|
>merge : { <TResult>(...params: IEnumerable<T>[]): IEnumerable<T>; <TResult>(...params: T[][]): IEnumerable<T>; }
|
|
|
|
>TResult : TResult
|
|
|
|
>params : T[][]
|
|
|
|
>T : T
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
|
|
|
|
|
|
|
|
concat(...sequences: IEnumerable<T>[]): IEnumerable<T>;
|
|
|
|
>concat : { (...sequences: IEnumerable<T>[]): IEnumerable<T>; (...sequences: T[]): IEnumerable<T>; }
|
|
|
|
>sequences : IEnumerable<T>[]
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
|
|
|
|
concat(...sequences: T[]): IEnumerable<T>;
|
|
|
|
>concat : { (...sequences: IEnumerable<T>[]): IEnumerable<T>; (...sequences: T[]): IEnumerable<T>; }
|
|
|
|
>sequences : T[]
|
|
|
|
>T : T
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
|
|
|
|
insert(index: number, second: IEnumerable<T>): IEnumerable<T>;
|
|
|
|
>insert : (index: number, second: IEnumerable<T>) => IEnumerable<T>
|
|
|
|
>index : number
|
|
|
|
>second : IEnumerable<T>
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
|
|
|
|
sequenceEqual(second: IEnumerable<T>): boolean;
|
|
|
|
>sequenceEqual : { (second: IEnumerable<T>): boolean; <TCompare>(second: IEnumerable<T>, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; <TCompare>(second: T[], compareSelector: (element: T) => TCompare): boolean; }
|
|
|
|
>second : IEnumerable<T>
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
|
|
|
|
sequenceEqual<TCompare>(second: IEnumerable<T>, compareSelector: (element: T) => TCompare): boolean;
|
|
|
|
>sequenceEqual : { (second: IEnumerable<T>): boolean; <TCompare>(second: IEnumerable<T>, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; <TCompare>(second: T[], compareSelector: (element: T) => TCompare): boolean; }
|
|
|
|
>TCompare : TCompare
|
|
|
|
>second : IEnumerable<T>
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>T : T
|
|
|
|
>compareSelector : (element: T) => TCompare
|
|
|
|
>element : T
|
|
|
|
>T : T
|
|
|
|
>TCompare : TCompare
|
|
|
|
|
|
|
|
sequenceEqual(second: T[]): boolean;
|
|
|
|
>sequenceEqual : { (second: IEnumerable<T>): boolean; <TCompare>(second: IEnumerable<T>, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; <TCompare>(second: T[], compareSelector: (element: T) => TCompare): boolean; }
|
|
|
|
>second : T[]
|
|
|
|
>T : T
|
|
|
|
|
|
|
|
sequenceEqual<TCompare>(second: T[], compareSelector: (element: T) => TCompare): boolean;
|
|
|
|
>sequenceEqual : { (second: IEnumerable<T>): boolean; <TCompare>(second: IEnumerable<T>, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; <TCompare>(second: T[], compareSelector: (element: T) => TCompare): boolean; }
|
|
|
|
>TCompare : TCompare
|
|
|
|
>second : T[]
|
|
|
|
>T : T
|
|
|
|
>compareSelector : (element: T) => TCompare
|
|
|
|
>element : T
|
|
|
|
>T : T
|
|
|
|
>TCompare : TCompare
|
|
|
|
|
|
|
|
toDictionary<TKey>(keySelector: (element: T) => TKey): IDictionary<TKey, any>;
|
|
|
|
>toDictionary : { <TKey>(keySelector: (element: T) => TKey): IDictionary<TKey, any>; <TKey, TValue>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary<TKey, TValue>; <TKey, TValue, TCompare>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary<TKey, TValue>; }
|
|
|
|
>TKey : TKey
|
|
|
|
>keySelector : (element: T) => TKey
|
|
|
|
>element : T
|
|
|
|
>T : T
|
|
|
|
>TKey : TKey
|
2014-08-19 04:56:03 +02:00
|
|
|
>IDictionary : IDictionary<TKey, TValue>
|
2014-08-15 23:33:16 +02:00
|
|
|
>TKey : TKey
|
|
|
|
|
|
|
|
toDictionary<TKey, TValue>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary<TKey, TValue>;
|
|
|
|
>toDictionary : { <TKey>(keySelector: (element: T) => TKey): IDictionary<TKey, any>; <TKey, TValue>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary<TKey, TValue>; <TKey, TValue, TCompare>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary<TKey, TValue>; }
|
|
|
|
>TKey : TKey
|
|
|
|
>TValue : TValue
|
|
|
|
>keySelector : (element: T) => TKey
|
|
|
|
>element : T
|
|
|
|
>T : T
|
|
|
|
>TKey : TKey
|
|
|
|
>elementSelector : (element: T) => TValue
|
|
|
|
>element : T
|
|
|
|
>T : T
|
|
|
|
>TValue : TValue
|
2014-08-19 04:56:03 +02:00
|
|
|
>IDictionary : IDictionary<TKey, TValue>
|
2014-08-15 23:33:16 +02:00
|
|
|
>TKey : TKey
|
|
|
|
>TValue : TValue
|
|
|
|
|
|
|
|
toDictionary<TKey, TValue, TCompare>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary<TKey, TValue>;
|
|
|
|
>toDictionary : { <TKey>(keySelector: (element: T) => TKey): IDictionary<TKey, any>; <TKey, TValue>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary<TKey, TValue>; <TKey, TValue, TCompare>(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary<TKey, TValue>; }
|
|
|
|
>TKey : TKey
|
|
|
|
>TValue : TValue
|
|
|
|
>TCompare : TCompare
|
|
|
|
>keySelector : (element: T) => TKey
|
|
|
|
>element : T
|
|
|
|
>T : T
|
|
|
|
>TKey : TKey
|
|
|
|
>elementSelector : (element: T) => TValue
|
|
|
|
>element : T
|
|
|
|
>T : T
|
|
|
|
>TValue : TValue
|
|
|
|
>compareSelector : (key: TKey) => TCompare
|
|
|
|
>key : TKey
|
|
|
|
>TKey : TKey
|
|
|
|
>TCompare : TCompare
|
2014-08-19 04:56:03 +02:00
|
|
|
>IDictionary : IDictionary<TKey, TValue>
|
2014-08-15 23:33:16 +02:00
|
|
|
>TKey : TKey
|
|
|
|
>TValue : TValue
|
|
|
|
}
|
|
|
|
|
|
|
|
interface IDictionary<TKey, TValue> {
|
|
|
|
>IDictionary : IDictionary<TKey, TValue>
|
|
|
|
>TKey : TKey
|
|
|
|
>TValue : TValue
|
|
|
|
|
|
|
|
toEnumerable(): IEnumerable<{ key: TKey; value: TValue }>;
|
|
|
|
>toEnumerable : () => IEnumerable<{ key: TKey; value: TValue; }>
|
2014-08-19 04:56:03 +02:00
|
|
|
>IEnumerable : IEnumerable<T>
|
2014-08-15 23:33:16 +02:00
|
|
|
>key : TKey
|
|
|
|
>TKey : TKey
|
|
|
|
>value : TValue
|
|
|
|
>TValue : TValue
|
|
|
|
}
|