TypeScript/tests/baselines/reference/fuzzy.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

80 lines
1.2 KiB
Plaintext

=== tests/cases/compiler/fuzzy.ts ===
module M {
>M : typeof M
export interface I {
>I : I
works:()=>R;
>works : () => R
>R : R
alsoWorks:()=>R;
>alsoWorks : () => R
>R : R
doesntWork:()=>R;
>doesntWork : () => R
>R : R
}
export interface R {
>R : R
anything:number;
>anything : number
oneI:I;
>oneI : I
>I : I
}
export class C implements I {
>C : C
>I : I
constructor(public x:number) {
>x : number
}
works():R {
>works : () => R
>R : R
return <R>({ anything: 1 });
><R>({ anything: 1 }) : R
>R : R
>({ anything: 1 }) : { anything: number; }
>{ anything: 1 } : { anything: number; }
>anything : number
>1 : 1
}
doesntWork():R {
>doesntWork : () => R
>R : R
return { anything:1, oneI:this };
>{ anything:1, oneI:this } : { anything: number; oneI: this; }
>anything : number
>1 : 1
>oneI : this
>this : this
}
worksToo():R {
>worksToo : () => R
>R : R
return <R>({ oneI: this });
><R>({ oneI: this }) : R
>R : R
>({ oneI: this }) : { oneI: this; }
>{ oneI: this } : { oneI: this; }
>oneI : this
>this : this
}
}
}