* 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
This type represents the expression+type arguments you can get in a class or interface
heritage clause section. For class-implements clauses, or interface-extends clauses,
these expressions can only be identifiers or dotted names. For class extends clauses,
these could be any expressions in the future. However, for now, we only support identifiers
and dotted names.
Now, you can only get the non-diagnostics, pull-type-checker from the Program instance.
If you want diagnostics, you simply ask the Program instance for the diagnostics you want.
This breaks layering. Also, it means the emitter depends on too large a surface area.
Now the emitter declares exactly what it needs, and only gets that.