* Allow JS with isolated modules
Previously legacy JS code was not allowed; it was required to use ES6
module syntax. Unfortunately, the check happens after parsing but before
binding, and the commonjs module indicator isn't set until binding
because it's not syntactically simple like the ES6 module indicator,
which is set during parsing.
So I decided that JS should be allowed during isolatedModules
unconditionally. We're not going to be transforming it anyway.
* Update baselines
* Switch test to outDir instead of noEmit
* Add this-parameter workaround to Array.filter
Allows anys.filter(Boolean) to once again return any[], not unknown[].
* Add any constraint to Boolean factory function
I want to test how well this works.
* Remove Boolean factory type guard
* Remove typeGuardBoolean test
* Fix infinite loop: module.exports alias detection
Previously, module.exports alias detection in the binder could enter an
infinite recursion. Now it does not.
Notably, there are *two* safeguards: a counter limiter that I set at
100, and an already-seen set. I actually prefer the counter limiter code
because it's foolproof and uses less memory. But it takes 100
iterations to escape from loops.
* fix space lint
* Remove already-seen map
* Modify flow loop cache key to include all inputs
* Add test case, cache similarly to loop cache, reuse loop cache key (now corrected)
* Use simpler singleton key and type cache for FlowAssignment nodes
* add basically implement
* add rename location and add testcase
* collection type arguments
* disallow infer type
* add support for typedef convert
* refactor info to make type safe
* disallow type pred
* avoid unnecessary branch
* disallow type query
* haha😂
Co-Authored-By: Kingwl <kingwenlu@gmail.com>
* Update src/services/refactors/extractType.ts
Co-Authored-By: Kingwl <kingwenlu@gmail.com>
* Update src/services/refactors/extractType.ts
Co-Authored-By: Kingwl <kingwenlu@gmail.com>
* add more tests
* add template tag support in jsdoc
* add support of type parameters constraint
* add more tests
* merge branch
* add more tests
* refactor and update function name
* Add unmeasurable variance kind for marking types whose variance result is unreliable
* Remove now-unneeded nongeneric checks
* Add rule allowing `Readonly<any>` to be `any` instead of `{readonly [index: string]: any}`
* All Unmeasurable variances to still shortcut structural comparisons in some cases
* Separate unmeasurable from unreliable to reduce the impact of this change, for now
* Fix lint
* Remove Readonly<any> -> any callout
* Add fix for circularity error triggered by deep signature return type comparisons with `this` types