* Add ncie deep elaborations
* Nice stuff
* Modify tuple error to use length error mroe often
* Accept good baselines
* Accept meh baselines
* Fix literal types
* Calculate elaborations like it was the very first time again~
* Use tristate for enum relationship to ensure elaborations are printed at least once
* Update message text, nits
* move some functions back to where they were
* Add test of deep JSX elaboration
* Add elaboration test with parenthesized expressions, comma expressions, and assignments
* Move check to allow elaborations on more anonymous types
* Fix nits
* Add specialized error to elaborations of nonliteral computed named-members
* Update error message
* Don't add completions from a discriminated union type when the discriminant doesn't match
* Move code to checker
* Update API (#24966)
* Use isTypeIdenticalTo
* Adds related spans and error grouping for duplicate identifier errors
* Trim trailing whitespace
* Record related info in error baselines
* Make error more whimsical
* JsxTagNameExpression can only be Identifier | ThisExpression, not any PrimaryExpression
* Use a type similar to PropertyAccessEntityNameExpression
* Fix lint errors
* Destructuring declaration prefers type annotation type
Previously, getTypeForBindingElement would always union the declarations type and
the type of the default initializer. Now, if the declaration has a type
annotation, it does not union with the initializer type. The type
annotation's type is the one used.
* Small cleanup in parentDeclarationHasTypeAnnotation
* Refactoring based on PR comments
* Combine getCombined*Flags into a single helper function
Retain the individual functions since they are used a lot.
* Remove unneeded temp
* Fix duplicate errors in js special assignments
* Simplify checkExpressionCached call to checkExpression
* Accept baselines after merge
* Use Map for deferredNodes and improve NoDeferredCheck comment
I added an assert when a duplicate was added, but it caused 18 failures
in our test suite.
* Remove NoDeferredCheck
* Don't recommend to install '@types/foo' if that already exists
* Add different extra diagnostic text if the @types package exists
* Update API (#24966)
* getDeclarationIdentifier handles undefined name
getNameOfDeclaration actually doesn't handle all declarations, only
those that produce names that could be reasonably used as an identifier.
Until now, getDeclarationIdentifier assumed that getNameOfDeclaration
always returned a name. This caused crashes whenever we tried to get the
name of something like a Constructor.
* Add test and baselines
* getNameOfDeclaration can return undefined
This requires all callers to handle it, which turns out now to be too
disruptive.
* Fix lint