1424 Commits

Author SHA1 Message Date
uniqueiniquity
3ebb2e8a34 Merge branch 'master' into jsxFragment 2017-10-31 10:53:57 -07:00
uniqueiniquity
fb058868de Respond to CR 2017-10-24 13:24:11 -07:00
Andy
159a0a2197 Use NodeFlags to detect nodes inside with statements instead of climbing ancestors (#17721)
* Use NodeFlags to detect nodes inside with statements instead of climbing ancestors

* Add to ContextFlags
2017-10-23 13:38:50 -07:00
uniqueiniquity
75665294a9 Respond to CR 2017-10-17 13:39:16 -07:00
uniqueiniquity
abb3f58db2 Add support for JSX fragment syntax 2017-10-17 09:38:09 -07:00
Arthur Ozga
1db762356e Merge pull request #18706 from aozgaa/dev/aozgaa/JsDocExtendsSupport
support @extends in jsdoc
2017-10-09 15:08:58 -07:00
Andy
8a55baf9a3 In @typedef tag, handle property with no type (#19013) 2017-10-09 09:58:02 -07:00
Arthur Ozga
5ea3ca4ef9 Merge branch 'master' into dev/aozgaa/JsDocExtendsSupport 2017-10-06 14:25:31 -07:00
Andy
46e135b098 Fix parsing of qualified name in @augments (#18914) 2017-10-03 13:47:01 -07:00
Nathan Shively-Sanders
4d8663c378 Merge pull request #18117 from Microsoft/jsdoc-dotdotdot-binds-tighter-than-postfix
Jsdoc ... binds tighter than postfix ?!
2017-10-03 08:45:26 -07:00
Andy
3a2c723a69 Allow parsing a qualified type name containing a reserved word (#18888) 2017-10-02 17:04:28 -07:00
Andy
1a2de721b5 Fixes to @augments handling (#18775)
* Fixes to @augments handling

* Renames and diagnostic changes

* Add test for < > characters

* Use more specific return type
2017-09-28 12:34:54 -07:00
Andy
024b1fd913 Make it a parse error for an @augments jsdoc tag to not include a type (#18745) 2017-09-25 09:26:59 -07:00
Arthur Ozga
b21c46b9b5 support @extends in jsdoc 2017-09-22 16:21:31 -07:00
Andy
2399bac377 Make it a parse error for an @type jsdoc tag to not include a type (#18664)
* Make it a parse error for an `@type` jsdoc tag to not include a type

* Rename parameter
2017-09-22 10:45:43 -07:00
Andy
1a383ec290 Remove unnecessary "@internal" (#18665) 2017-09-22 07:09:29 -07:00
Andy
30839378ac Remove unnecessary 'tryParse' (#18663) 2017-09-21 14:42:13 -07:00
Armando Aguirre
1989b70374 Merge pull request #18192 from armanio123/FixExpressionExpectedAtEOF
Added logic to check for EOF when creating a missing node.
2017-09-19 10:13:20 -07:00
Nathan Shively-Sanders
b934c8bcbd Merge pull request #18417 from Microsoft/fail-spec-lambda-parsing-on-parameter-initialiser-missing-=
Fail speculative parsing of arrow functions when their parameter initialisers are missing a =
2017-09-14 13:01:51 -07:00
Andy
e91af7d30d Allow template string with no substitutions to be used as a string literal type (#18452) 2017-09-14 11:19:54 -07:00
Nathan Shively-Sanders
5d51a42030 Use createMissingNode for sentinel node 2017-09-13 10:26:11 -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
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
34a8c8423e Merge branch 'master' into jsdoc-dotdotdot-binds-tighter-than-postfix 2017-09-08 08:37:38 -07:00
Nathan Shively-Sanders
cab05ddd3f Inline variable to aid control flow 2017-09-08 08:33: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
Anders Hejlsberg
8c64937888 Merge pull request #18153 from Microsoft/optimizeArrays
Optimize array operations to reduce memory footprint
2017-09-07 22:26:48 +01:00
Nathan Shively-Sanders
2bc9ecb4fd Merge pull request #18296 from Microsoft/disable-lookahead-isStartOfParameter
Disable isStartOfType's lookahead when called from isStartOfParameter
2017-09-07 13:57:28 -07:00
Nathan Shively-Sanders
c81a941303 Refactor parsePostfixTypeOrHigher
Inline the switch, but extract the function that creates jsdoc nodes.
2017-09-07 13:45:59 -07:00
Wesley Wigham
c1f2afd645 Add typedef declaration space, unify typedef name gathering (#18172)
* Add typedef declaration space, unify typedef name gathering, strengthen errorUnusedLocal

* Bonus round: make jsdoc presence way mroe typesafe

* Be exhaustive in nameForNamelessJSDocTypedef

* Remove nonrequired casts

* Replace more casts with guards

* Cannot be internal

* Debug.fail returns never, assert never no longer needs unreachable throw to satisfy checker

* Rename type

* Add replacement message as in 18287
2017-09-07 10:28:58 -07:00
Nathan Shively-Sanders
90d9f3d4ba Rename isStartOfType parameter used by isStartOfParameter 2017-09-07 09:07:59 -07:00
Nathan Shively-Sanders
a5c2eac2ee Test:disable lookahead in isStartOfParameter 2017-09-06 15:54:14 -07:00
Nathan Shively-Sanders
7c69dd84b9 Disable lookahead in isStartOfParameter/isStartOfType 2017-09-06 13:11:35 -07:00
Nathan Shively-Sanders
541920eb31 Merge pull request #18014 from Microsoft/allow-bang+dotdotdot-as-start-of-type
Allow bang+dotdotdot as start of type
2017-09-01 14:26:16 -07:00
Andy
7a4c3da239 Simplify return type parsing (#18206)
* Simplify return type parsing

* Make control flow clearer
2017-09-01 10:58:49 -07:00
Nathan Shively-Sanders
68ea88402a Make getPostfixSyntaxKind easier to read 2017-09-01 10:52:48 -07:00
Armando Aguirre
c2168cb94a Added logic to check for EOF when creating a missing node. 2017-08-31 14:05:41 -07:00
Anders Hejlsberg
3f090114ff Optimize array operations to reduce memory footprint 2017-08-30 09:44:51 -07:00
Nathan Shively-Sanders
ffe49428d8 Parse postfix [] ! ? at the same precedence level
This combines parseArrayType and parseJSDocPostfixType into
parsePostfixType.
2017-08-30 08:39:28 -07:00
Nathan Shively-Sanders
c746477d81 JSDoc:... binds tighter than *n* postfix jsdocs
1. Previously ...X? mistakenly parsed as ...(X?) instead of (...X)?
2. Previously X?!?!? mistakenly failed to parse the postfix tokens
   ? ! ? ! ? at the same level of precedence.

The fix is to
1. Make ... parsing call parseNonArrayType instead of parseType.
2. Make postfix jsdoc parsing parse in a loop instead of only parsing
one token.
2017-08-29 12:59:34 -07:00
Nathan Shively-Sanders
377ac06050 Allow ! and ... as start-of-type tokens
Which allows the rest of the jsdoc types to be used in type argument
lists
2017-08-24 08:56:36 -07:00
Nathan Shively-Sanders
71c5b1b354 Parsing:Allow QuestionToken as start of type 2017-08-23 15:00:12 -07:00
Andy
b3f3f336ad Use hasModifier and hasModifiers helper functions (#17724) 2017-08-11 07:15:15 -07:00
Andy
08fbcd8b80 Fix many no-object-literal-type-assertion lint errors (#17278)
* Fix many no-object-literal-type-assertion lint errors

* Simple fixes

* Use a union for FlowNode

* PR feedback and remove remaining `id()` uses

* Use a union for CodeBlock

* Discriminate CodeBlock by CodeBlockKind
2017-08-10 12:52:15 -07:00
Ron Buckton
75c8ecb2f1 Merge pull request #17517 from tinganho/IgnoredCatchParameter
Ignored catch parameter
2017-08-08 16:15:18 -07:00
Wesley Wigham
a453eff575 Restrict parsing of literals and their expressions a _lot_ more (#17628) 2017-08-07 09:16:12 -07:00
Wesley Wigham
c06a30ae68 JSDoc Instantiation Fixes (#17553)
* Fix #17383 - issue an error when jsdoc attempts to instantiate a builtin as a generic

* Fix comment

* Fix #17377 - only get type parameters from reference target if the type is a reference

* Fix #17525 - Add SyntaxKind.AsteriskToken to isStartOfType
2017-08-02 13:55:14 -07:00
Daniel Rosenwasser
3da1a53d7e Amend comment about explicitly setting catch clause variables to 'undefined'. 2017-08-02 12:50:04 -07:00
Tingan Ho
d5c24f3cd3 Addresses CR comment 2017-08-02 20:13:43 +02:00