Makes another test case pass that was taking exponential time to parse,
because now it notices that the = is not present and doesn't even try to
parse the initialiser expression.
Fail speculative parsing of arrow function expressions whenever it has a
parameter with an initialiser that is missing '='. Ordinarily this is
allowed for better error recovery in the language service, but for
speculative parsing, the errors can compound. When the initialiser is an
error, and when the '=>' is missing (which is also allowed), what is
putatively an arrow function may actually be something else.
For example, `(a / 8) + function ()
{ }` is currently parsed as if someone had intended to write
`(a = /8)+function()/) => { }` but they forgot the `=` of the
initialiser, the `=>` of the lambda, forgot to close the regular
expression, and mistakenly inserted a newline right after the regular
expression.
* Test: parsing of two-line @typedef jsdoc
* Fix forEachChild's visit of JSDocTypedefTag
Also remove JSDocTypeLiteral.jsdocTypeTag, which made no sense since it
was only useful when storing information for its parent `@typedef` tag.
* Update baselines
* Inline variable to aid control flow
* Improved caching scheme for anonymous types
* Fix signature help
* Optimize caching of type literals
* Accept new baselines
* Fix linting errors
* Use canonicalized forms when comparing signatures
* Minor changes
* Document ThrottledOperations.schedule
* Limit the number of unanswered typings installer requests
If we send them all at once, we (apparently) hit a buffer limit in the
node IPC channel and both TS Server and the typings installer become
unresponsive.
* Fix lint issues
* Add explanatory comment
* Ensure that emitter calls calbacks
* Move new parameter to end of parameters
* Fix for ConditionalExpression
* Make suggested changes to emitter
* Fix parameter ordering
* Respond to minor comments
* Remove potentially expensive assertion
* More emitter cleanup
* Test for action description of code actions, and simplify description for extracting method to file
* Add unit test file missing from tsconfig.json (only affects gulp) and update tests
* Use the actual number
* Use "module scope" or "global scope" instead of "this file"
* wip-try get symbol of bindingelement in objectBindingPattern first
* Add fourslash tests
* Update .types baselines
* Update .symbols baselines
* Revert checker changes
* Actually lookup type for binding property name definition
* More succinct check, clarify yui's comment
* For duplicate source files of the same package, make one redirect to the other
* Add reuseProgramStructure tests
* Copy `sourceFileToPackageId` and `isSourceFileTargetOfRedirect` only if we completely reuse old structure
* Use fallthrough instead of early exit from loop
* Use a set to efficiently detect duplicate package names
* Move map setting outside of createRedirectSourceFile
* Correctly handle seenPackageNames set
* sourceFileToPackageId -> sourceFileToPackageName
* Renames
* Respond to PR comments
* Fix bug where `oldSourceFile !== newSourceFile` because oldSourceFile was a redirect
* Clean up redirectInfo
* Respond to PR comments
* Add test with bug
* Fix for import placement
* Consolidate comment recognition functions into utilities
* Add another test with all 3 kinds
* Recognize path directives as part of triple slash directives
* Also handle no-default-lib triple-slash comments
* Test for all the triple-slash kinds
* Keep import-placement logic in the quickfix, since its not really a node start; accept new baselines
* Work in not-ES6, use a real no-lib comment
* Remove no default lib triple slash comment, it disables checking and thereby quick fixes
* Copy regex rather than have a regex copy
* Handle the case where binding pattern name element is empty
* Update tests and baselines
* Feedback from PR
* Handle empty binding patterns more generally in emitter
* Dont simply handling fo empty binding patterns and stay spec compliant
* PR feedback
* Retain comments inside return statements by including the return keyword in the parse tree
* Revert "Retain comments inside return statements by including the return keyword in the parse tree"
This reverts commit 5d2142edb1ffb9f6cb150b815aff6e627ae80449.
* Readd test
* Function for handling printing comments on a token