Initial draft that works for union types
First draft of PR ready code with tests
Revert changed line for testing
Add exhaustiveness checking and move narrowByTypeOfWitnesses
Try caching mechanism
Comment out exhaustiveness checking to find perf regression
Re-enable exhaustiveness checking for typeof switches
Check if changes to narrowByTypeOfWitnesses fix perf alone.
Improve switch narrowing:
+ Take into account repeated clauses in the switch.
+ Handle unions of constrained type parameters.
Add more tests
Comments
Revert back to if-like behaviour
Remove redundant checks and simplify exhaustiveness checks
Change comment for narrowBySwitchOnTypeOf
Reduce implied type with getAssignmentReducedType
Remove any annotations
* Allow variable statements used as declaration sites to be marked visible and included in declaration emit by alias marking
* Dont forget to transform statements
* Accept baselines
* Accept updated baselines for new test
* Emit scope fix markers
* Add partial private variable declaration emit test
* Print js-constructor function type names
Instead of printing them as a type literal, which is scary.
* Use assigned name for functions and classes
That otherwise have no name. This helps quick info for javascript a
*lot*. Typescript mainly benefits when printing the type of class
expressions.
* Improve names of functions in binding elements
Also fix some fourslash baselines
* Add new generated name kind for reused transpiler variables
* Remove error on _super or _newTarget conflict
* Add test with super helper conflict
* Remove error on _this conflict
* Fix lint
* Use flags instead of generated kinds, inline some things
* Accept rename
* Remove trailing whitespace
* Move helper emit into printer, rather than emitter"
* passthru module and target
* New test, accept baselines
* Make members private
* Fall back to check expression if resolving an export assigned entity name fails
* Comments from code review
* Add back in assertion
* Remove nameNotFoundMessage check from resolveName isReferenced check (rely on just isUse instead)
* Add tests showing existing behavior for indexing types with never.
* Make T[never] = never instead of erroring or being any.
And update the baselines for the tests for this change.
* Add test case for indexing an expression with never showing existing behavior.
* Make indexing an object with never expression result in never.
And update baseline to reflect new behavior.
* Add compiler option to enable declaration sourcemaps
* Transparent goto definition for sourcemapped declaration files
* Post-rebase touchups
* Rename API methods
* Fix lints
* Fix typo in name XD
* Log sourcemap decode errors
* Share the cache more, but also invalidate it more
* Remove todo
* Enable mapping on go to implementation as well
* Allow fourslash to test declaration maps mroe easily
* more test
* Handle sourceRoot
* Add tests documenting current behavior with other sourcemapping flags
* Ignore inline options for declaration file maps, simplify dispatch in emitter
* Change program diagnostic
* Fix nit
* Use charCodeAt
* Rename internal methods + veriables
* Avoid filter
* span -> position
* Use character codes
* Dont parse our sourcemap names until we need to start using them
* zero-index parsed positions
* Handle sourceMappingURL comments, including base64 encoded ones
* Unittest b64 decoder, make mroe robust to handle unicode properly
* Fix lint
* declarationMaps -> declarationMap
* Even more feedback
* USE Mroe lenient combined regexp
* only match base64 characters
* Fix nit