* Allow export map entries to remap back to input files for a program
* Fix file casing issues on windows
* Implement abiguity error, doesnt quite work
* Refine selection logic in error case to use getCommonSourceDirectory, add more tests
* Remove Node12, add Node16.
* Accepted baselines.
* Refactor checking for top-level await, give a better error message in CJS files.
* Accepted baselines.
* Stop erroring on JSON module imports in node ESM since they're no longer experimental.
* Accepted baselines.
* More refactoring, do the same checks for for-await loops.
* Accepted baselines.
* Adjust phrasing to permit for-await on CJS error.
* Accepted baselines.
* Accepted baselines.
* Fix lints.
* Allow arrow function parameter parsing to bail out during speculation, redo
* Add correct baselines
* Allow await/yield keywords for more graceful error reporting
* Add test for other parser issue
* Address some PR feedback
* Add extra comment
* Add async variants
* Add moduleSuffixes compiler option and related tests. Update baselines for compiler options tests.
* Add a flag to the command-line parser which allows "list" params to preserve "falsy" values such as empty strings. Falsy values are normally stripped out.
* Add tests. Rework resolver logic to only run module-suffix code when needed.
* PR feedback
* Add test
* Remove unnecessary conditional.
* Add isolatedModules error for ambiguous imports referenced in decorator metadata
* Improve test and accept baselines
* Error only for es2015+
* Add namespace import to error message as workaround
* Add codefix
* Fix merge fallout
* Handle JS synthetic rest args in contextual parameter assignment
* Limit fixing to only unannotated js rest parameters
* Minimize test
* Add annotated version
* Remove explicit CheckFlags.RestParameter check since apparently not all rest parameters are CheckFlags.RestParameter
* Add moduleDetection compiler flag to allow for changing how modules are parsed
The default setting is 'auto', where JSX containing files under react-jsx and react-jsxdev are
always parsed as modules, and esm-format files under module: node12+ are always parsed as modules,
in addition to the 'legacy' detection mode's conditions for other files. (Declaration files are exempt from
these new conditions)
The 'legacy' mode preserves TS's behavior prior to the introduction of this flag - a file is
parsed as a module if it contains an import, export, or import.meta expression.
In addition, there is a 'force' mode that forces all non-declaration files to be parsed as modules.
(Declaration files are still only modules if they contain a top-level import or export.)
This technically breaks the parser API, but it's kinda-sorta backwards compatible so long
as you don't need the functionality associated with more recent compiler flags.
* Fix post-merge lint
* Rename function
* Update default value documentation
* PR feedback
* Fix lint and typo
* Fix conditional type type parameter leak
* Monkey with comment text per code review
* Conditionally clone type param
* Reuse input array and avoid making mapper where possible
* fix this type validations for protected fields
* update previous baselines
* add new tests and baselines
* ClassOrInterface can be returned as enclosingClass
* inline function code and remove unnecessary blank lines
* refactor enclosingClass checks
In short, the fix I submitted looked at the union ofproperties, but it
really should have looked at the intersection.
Two sytlistic notes. I couldn't find the best way to get the unique
strings of an array like `[...new Set()]` would, so I created a small
helper function, but didn't put it in a great place. Also, before the
second concatenated array of discriminators at least matched the first
in complexity, but now it's much worse. I don't think that section is
particularly easy to read, but I also don't see a significantly reusable
part.
fixes#41759