* Remove SymbolWriter, give methods to EmitTextWriter
* Unification of writers is done-ish
* Make node builder support more flags
* Write out mixins like we used to
* Accept prototype-free baselines
* Use instantiated constraint when building mapped type nodes
* Accept better mapped type baselines
* Report inaccessible this in node builder
* Turns out there was a bug in our codefix, too
* Symbol display builder usage falling
* Replace signatureToString with a nodeBuilder solution
* Replace the last internal usages of the symbol writer
* Accept semicolon additions
* Accept updated symbol baseline output
* Start using node builder for some LS operations
* Remove those pesky trailing semicolons on signatures
* Get signature printing much closer to old output
* Parameter lists should not be indented by default, especially when single-line
* Signatures up to snuff
* Type quickinfo emit is up to snuff
* Start of symbol writer replacement, needs a bit more for full compat
* Slightly mor accurate to old behavior
* Replicate qualified name type argument output correctly
* Bring back the old symbol baselines
* Mostly identical to old symbol emit now
* Perfectly matches old behavior thus far
* Replace another usage of the symbol builder
* Another usage removed
* Another usage removed
* Remove final uses of symbol display builder
* Remove implementation and types for unused symbol display builder
* Cleanup in the checker
* monomorphize new emitter code
* Replace emitWithSuffix
* Push space character to interface with writer
* List emit
* Fix lack of usage of emitExpression
* writeList, not printList
* Remove listy writes and replace with new printer calls
* Move ListFormat into types.ts
* Remove most new XToString functions in favor of node builder functions
* Accept API breaks
* Add getSymbolDisplayBuilder polyfill
* Accept updated API baseline
* Move definition to make diff easier to read
* Reinternalize some things
* Remove trailign whitespace
* Reorder for zero diff
* Remove newline
* Make shim mor eperfectly imitate old behavior
* Style feedback
* Rename reset to clear to maintain backcompat with SymbolWriter
* Fix quickfix
* Keep EmitTextWriter internal
* Remove EmitTextWriter from public API
* Mimic default name declaration emit fix
* Fix tests broken by merge
* use isFunctionLike
* Cleanup, sync TypeFormat and NodeBuilder flags
* Reorder Node initialization so pos and end are first, so a TextRange hidden class is made first to reduce future polymorphism
* Use variable instead of ternary
* Write helper for emitNodeWithWriter
* Emitter cleanup
* Cleanup whitespace, comment
* Reuse printer
* Raise error if display parts writer uses rawWrite
* Hide writer parameter through different function instead of overload, rename function in emitter
* Make less printer
* fix lint
* Fix get symbol at location to behave correctly got parameter assignments and jsx attributes
* Handle all those edge cases that weren;t explicitly handled
* Fix part of bug WRT getTypeAtLocation and for loops
* Baseline corrections pursuant to #20710
* Restore jsdoc tag interpretation
* Clean up some code, revert fourslash tests
* Cleanup types used by PR feedback
* Do visibility painting from collectLinkedAliases in checker to remove statefullness in declaration emit
* Fix#17085
* Add deeply destructured array to test
* Add test case for #18634
* Add PR feedback
so that error message refers to prop name instead of param name.
Changed getter errors for similar case so they also refer to prop name.
Fixed bug where static getters wouldn't output their specific error.
Fixes#1976
* Handle the case where binding pattern name element is empty
* Update tests and baselines
* Feedback from PR
* Handle empty binding patterns more generally in emitter
* Dont simply handling fo empty binding patterns and stay spec compliant
* PR feedback
* Add 'name' property to Identifier
* Rename to unescapedText
* Rename 'id.text' to 'id.escapedText'
* Rename 'id.unescapedText' to 'id.text'
* Make escapeIdentifier and unescapeIdentifier do nothing
Optional parameter properties create a property with a type that unions
with undefined when strictNullChecks is on. This needs to be reflected
in the generated declaration.
JS-style assignment declarations have a name, but it's not stored on the
name property of the BinaryExpression. This commit adds
`getNameOfDeclaration` to uniformly get the name of a declaration.
It also reworks the declaration of `Declaration` so that accessing
`name` is an error unless the type does *not* include
BinaryExpression.
Classes that extend expressions will get a synthetic var declaration for
the expression. This is required for classes that extend an expression
that return an intersection type.