* 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
80 lines
1.2 KiB
Plaintext
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
|
|
}
|
|
}
|
|
}
|
|
|
|
|