This has 3 changes:
1. In updateGraph when enqueue the typing installation request (depending on unresolved imports)
2. When ActionSet event is received, invalidate only files with unresolved imports and resolve those.
3. When ActionInvalidate event is received, typing installer has detected some change in global typing cache location, so just enqueue a new typing installation request. This will repeat the cycle of setting correct typings and pickiing unresolved imports
This helps in reducing number of forced typing installation requests
We anyways use changes in unresolved import array to determine if we need to enqueue new typing request
Hence there is no need to soley rely on hasChanges from updateGraph which just indicates that we didnt reused the program (that does not mean new files were added to the program or changes in unresolved imports)
1. Allow assignment to `exports`.
2. The type of the rhs is not checked against the type of `exports`
since they are aliased declarations.
To support more complex patterns like `exports = c.name = c`, we may
have to treat `c.name` as a declaration. That will be more complicated
than this PR.
* JSDoc:positional matching of destructured params
1. When looking up tags for a parameter whose name is a binding pattern, use
the index of the parameter to get the type.
2. When reporting errors for `@param` tags with no matching parameter
name, do not report the error for tags whose index in the `@param` tag list
matches the index of a parameter whose name is a binding pattern.
* Change to an assert
* Improve comment text
* add refactor of convert private field to getter and setter
* fix refactor
* stash
* refactor accessor generate
* revert merge union type
* refeactor and accept baseline
* add support of PropertyAssignment and StringLiteral
* add support for js file
* allow static modifier in js file
* 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
* Combining symbol and removing error done but messy
* Small fix + add new test baselines
All other tests are unchanged
* Union conflicting assignment types+better names
* Add tests and update baselines
* Check commonjs export= from resolveExternalModuleSymbol
* Clean up code for nonrelative path completions
* Remove unnecessary test and simplify based on that
* More code review
* Call getCompletionEntriesFromTypings unconditionally
* When --noUnusedLocals/--noUnusedParameters is disabled, add suggestions instead of errors
* Improve performance: do not add unused suggestion diagnostics unless asking for a suggestion
* Add "unused" flag to diagnostics
* Code review
* reportsUnused -> reportsUnnecessary
* Fix test
* Fix crash in type resolution in JS IIFEs
We recognise IIFEs as JS special assignment initialisers, but not as
containers otherwise. That means that IIFEs will not have a symbol
unless they have an *outside* assignment.
The permanent fix will be to make IIFEs a container, based on the
containership of the value that they return. This fix does not do that;
it just makes type resolution return undefined instead of crashing.
* Comment the IIFE-fix line