TypeScript/tests/baselines/reference/genericRestArgs.types
Wesley Wigham 5353475fce Always collect type and symbol baselines (#18621)
* Always generate type & symbol baselines

* Accept changed shadowed baselines

* Accept brand new type and symbol baselines

* Allow `getTypeAtLocation` to return undefined in the type writer

* Accept baselines which had missing type information

* Bind container for dynamically names enum members so they may be printed

* Accept type/symbol baselines for enums with computed members

* First pass at reducing typeWriter memory overhead

* Use generators to allow for type and symbol baselines with no cache

* Accept new baselines for tests whose output was fixed by better newline splitting

* Hard cap on number of declarations printed, cache declaration print text

* handle differing newlines better still to handle RWC newlines

* Lower abridging count, accept abridged baselines

* Limit max RWC error output size, limit RWC type and symbol baseline input size

* Move skip logic into type and symbol baseliner to streamline error handling

* Accept removal of empty baselines

* Canonicalize path earlier to handle odd paths in input files

* Do canonicalization earlier still, also ensure parallel perf profiles for different targets do not trample one another

* No need to pathify again
2017-09-22 15:52:04 -07:00

76 lines
1.5 KiB
Plaintext

=== tests/cases/compiler/genericRestArgs.ts ===
function makeArrayG<T>(...items: T[]): T[] { return items; }
>makeArrayG : <T>(...items: T[]) => T[]
>T : T
>items : T[]
>T : T
>T : T
>items : T[]
var a1Ga = makeArrayG(1, ""); // no error
>a1Ga : any
>makeArrayG(1, "") : any
>makeArrayG : <T>(...items: T[]) => T[]
>1 : 1
>"" : ""
var a1Gb = makeArrayG<any>(1, "");
>a1Gb : any[]
>makeArrayG<any>(1, "") : any[]
>makeArrayG : <T>(...items: T[]) => T[]
>1 : 1
>"" : ""
var a1Gc = makeArrayG<Object>(1, "");
>a1Gc : Object[]
>makeArrayG<Object>(1, "") : Object[]
>makeArrayG : <T>(...items: T[]) => T[]
>Object : Object
>1 : 1
>"" : ""
var a1Gd = makeArrayG<number>(1, ""); // error
>a1Gd : any
>makeArrayG<number>(1, "") : any
>makeArrayG : <T>(...items: T[]) => T[]
>1 : 1
>"" : ""
function makeArrayGOpt<T>(item1?: T, item2?: T, item3?: T) {
>makeArrayGOpt : <T>(item1?: T, item2?: T, item3?: T) => T[]
>T : T
>item1 : T
>T : T
>item2 : T
>T : T
>item3 : T
>T : T
return [item1, item2, item3];
>[item1, item2, item3] : T[]
>item1 : T
>item2 : T
>item3 : T
}
var a2Ga = makeArrayGOpt(1, "");
>a2Ga : any
>makeArrayGOpt(1, "") : any
>makeArrayGOpt : <T>(item1?: T, item2?: T, item3?: T) => T[]
>1 : 1
>"" : ""
var a2Gb = makeArrayG<any>(1, "");
>a2Gb : any[]
>makeArrayG<any>(1, "") : any[]
>makeArrayG : <T>(...items: T[]) => T[]
>1 : 1
>"" : ""
var a2Gc = makeArrayG<any[]>(1, ""); // error
>a2Gc : any
>makeArrayG<any[]>(1, "") : any
>makeArrayG : <T>(...items: T[]) => T[]
>1 : 1
>"" : ""