Commit graph

19403 commits

Author SHA1 Message Date
Nathan Shively-Sanders
74ecef418d Add missed baselines 2017-09-12 14:43:56 -07:00
Nathan Shively-Sanders
d8ace9ddfb Don't parse param init when = is required but missing
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.
2017-09-12 14:41:51 -07:00
Nathan Shively-Sanders
4c4316da72 Fail spec parsing lambdas on parameter missing a =
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.
2017-09-12 14:01:49 -07:00
Wesley Wigham
403f585622 enclosingDeclaration can be undefined within getAccessibleSymbolChain (#18400) 2017-09-12 10:43:24 -07:00
Nathan Shively-Sanders
2fbc2259a1 Merge pull request #18392 from Microsoft/fix-contextually-typing-arguments-object
Fix contextually typing arguments object
2017-09-11 16:22:17 -07:00
Ryan Cavanaugh
1f0e7b02ea Merge pull request #18093 from RyanCavanaugh/detectBadPlugins
Detect bad plugins and work around them
2017-09-11 12:49:10 -07:00
Anders Hejlsberg
d90814bc57 Merge pull request #18391 from Microsoft/fixMappedTypeInference
Inference for higher order mapped, index and lookup types
2017-09-11 20:47:38 +01:00
Anders Hejlsberg
d65a3e1c67 Merge pull request #18363 from Microsoft/fixIntersectionInference
Fix intersection inference
2017-09-11 20:46:43 +01:00
Anders Hejlsberg
1b49c8f0a8 Merge pull request #18246 from Microsoft/fixControlFlowStackOverflow
Error on excessively large control flow graphs
2017-09-11 20:45:22 +01:00
Thomas den Hollander
1ee3b65141 Change typed array signatures (#18367) 2017-09-11 11:22:45 -07:00
Herrington Darkholme
29d5e4dadd fix #18225, fix error message on abstract class instance (#18368)
* fix #18225, fix error message on abstract class instance

abstract class check should be inside constructor call

* add new test and accept baseline
2017-09-11 11:21:35 -07:00
Nathan Shively-Sanders
4e04a740f8 Test:contextual typing of arguments obj in JS files 2017-09-11 11:17:14 -07:00
Nathan Shively-Sanders
2fdb5b8659 assignContextualParameterTypes handles arguments object
Previously, it would crash — the arguments object is a transient
symbol with no declaration, and `getEffectiveTypeAnnotationNode`
does not accept `undefined`.
2017-09-11 11:16:01 -07:00
Anders Hejlsberg
6c2fe29a72 Accept new baselines 2017-09-11 11:02:11 -07:00
Anders Hejlsberg
0823eba8a3 Add tests 2017-09-11 10:38:46 -07:00
Anders Hejlsberg
63d746bc4c Higher order inference for mapped, index and lookup types 2017-09-11 10:24:27 -07:00
Wesley Wigham
eb80799ef0 Care about esnext where we look for es2015 (#18331)
* Care about esnext where we look for es2015

* Update diagnostic message to be more agnostic
2017-09-09 16:30:06 -07:00
Wesley Wigham
dc8d47c51d Remove bisect.cmd, remove reference to missing dts, update usage (#18353) 2017-09-09 15:56:11 -07:00
Anders Hejlsberg
9871c04e54 Add tests 2017-09-09 13:06:28 -07:00
Anders Hejlsberg
c6af0015a3 Fix fourslash tests 2017-09-09 12:52:10 -07:00
Anders Hejlsberg
f40f0db676 Preserve intersections on the source side in type inference 2017-09-09 12:43:39 -07:00
Henry Mercer
aa4c1963e7 Merge branch 'master' into fix-empty-object-property-access 2017-09-09 17:00:37 +01:00
Andy
e51e91dd2c Change wording of scope description (#18342) 2017-09-09 05:52:52 -07:00
Andy
018c645913 In import code fix, don't treat a re-export as an import (#18341) 2017-09-09 05:52:08 -07:00
Andrew Casey
62899d10cd Add simple baseline tests for insertion positions 2017-09-08 16:45:47 -07:00
Anders Hejlsberg
c646971cec Accept new baselines 2017-09-08 15:52:02 -07:00
Anders Hejlsberg
4ba50aadb0 Update test 2017-09-08 15:51:25 -07:00
Anders Hejlsberg
c671c3ac06 Only track flow analysis stack depth 2017-09-08 15:51:11 -07:00
Andrew Casey
e77425f984 Delete staticAssertNever in favor of assertTypeIsNever 2017-09-08 14:36:21 -07:00
Anders Hejlsberg
ecea2871bd Merge branch 'master' into fixControlFlowStackOverflow 2017-09-08 14:26:13 -07:00
Anders Hejlsberg
25268ce368 Separate counters for stack depth and visited flow nodes 2017-09-08 14:24:32 -07:00
Andy
409d6597eb Add never helper function (#18287)
* Add `never` helper function

* Move to Debug.assertNever, keep old messages
2017-09-08 14:22:44 -07:00
Andrew Casey
26903552fe Improve insertion position of extracted methods
Old: End of target scope
New: Before the first non-constructor function following the extracted
range in the target scope
2017-09-08 14:19:28 -07:00
Anders Hejlsberg
37d320d0c8 Rename visitedFlowXXX to sharedFlowXXX 2017-09-08 14:19:18 -07:00
Henry Mercer
4966c65b7f Revert changes to other baselines 2017-09-08 20:16:55 +01:00
Andrew Casey
deefb01c9d Merge pull request #18165 from amcasey/GH18144
Simplify and correct PermittedJumps computation
2017-09-08 10:50:05 -07:00
Nathan Shively-Sanders
d4e3e19763 Merge pull request #18333 from Microsoft/fix-forEachChild-JSDocTypedefTag
Fix forEachChild jsdoc `@typedef` tag
2017-09-08 08:52:46 -07:00
Nathan Shively-Sanders
cab05ddd3f Inline variable to aid control flow 2017-09-08 08:33:17 -07:00
Andy
4ee7d3aeb2 Remove unnecessary check in emitNodeList (#18327) 2017-09-08 07:18:37 -07:00
Anders Hejlsberg
9eecf8ca56 Report error on first token of excessively large function or module body 2017-09-08 06:35:14 -07:00
Nathan Shively-Sanders
7d5b5e957e Update baselines 2017-09-07 16:38:17 -07:00
Nathan Shively-Sanders
fb5e8c6110 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.
2017-09-07 16:37:13 -07:00
Andrew Casey
02cfb81ac0 Merge pull request #18164 from amcasey/GH18140
Handle the combination of a write and a void return
2017-09-07 16:32:55 -07:00
Nathan Shively-Sanders
7aac67b9b4 Test: parsing of two-line @typedef jsdoc 2017-09-07 16:22:16 -07:00
Andrew Casey
baefdd2ccb Revert "Make permittedJumps a parameter to eliminate save-restore pattern"
This reverts commit 57906fe90e8efd2fb285fcb67f018c0438ba06dd.
2017-09-07 16:22:12 -07:00
Andrew Casey
73bc0c9796 Correct copied comment 2017-09-07 16:22:09 -07:00
Andrew Casey
e3808b65d4 Simplify and correct PermittedJumps computation
1. It was looking at the parent which wasn't guaranteed to be in the
extracted range.
2. It was checking direct, rather than indirect containment - apparently
to avoid applying the rules to certain expressions (which can't contain
jumps anyway, unless they're in anonymous functions, in which case
they're fine).

Fixes #18144
2017-09-07 16:21:20 -07:00
Andrew Casey
a81fa7a801 Make permittedJumps a parameter to eliminate save-restore pattern 2017-09-07 16:13:27 -07:00
Andrew Casey
9d11fbb9b9 Correct permitted jumps check 2017-09-07 16:13:26 -07:00
Anders Hejlsberg
4885560cb4 Eliminate intersections of unit types in union types 2017-09-07 16:02:00 -07:00