Commit Graph
1668 Commits
Author SHA1 Message Date
Arpad Borsos a8d04b2db9 Fix Identifiers: NaN diagnostic when having JSON SourceFiles
This makes sure that the `identifierCount` and `nodeCount` properties
are always initialized for `SourceFile` objects.
2019-09-12 21:10:38 +02:00
OrtaandGitHub f9cc374d21 Merge pull request #33336 from JoshuaKGoldberg/enum-syntax-error-specifics
Added more helpful syntax error for enum member commas
2019-09-11 23:05:16 +02:00
Josh Goldberg 49be51dcf3 Added more helpful syntax error for enum member commas
Switches the error message emitted by the parser to the more specific _"An enum member name must be followed by a ',' or '='."_ when the expected comma doesn't follow the member.
2019-09-09 22:11:56 -04:00
Alexander T b6d981aec8 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-16 12:13:57 +03:00
Andrew BranchandGitHub 2dd10bdfa1 Reuse unchanged ambient declarations in incremental parsing (#32849)
* Incrementally parse unchanged ambient declarations

* Re-parse modifiers and decorators so as not to skip errors

* Revert unnecessary change

* Undo the test change that was changed 2 years ago
2019-08-15 10:05:21 -07:00
Alexander T b728bf4bfa Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-14 13:42:02 +03:00
Ron BucktonandRyan Cavanaugh a74f109f95 Do not escape actual template literals on emit (#32844) 2019-08-13 15:54:35 -07:00
Wesley WighamandGitHub 4ab85bbf35 Add error message for keywords with escapes in them (#32718)
* Add error message for keywords with escapes in them

* Move check into parser during advance to next token to utilize context for contextual keywords

* git add .

* Add tests for extended escapes

* Better error courtesy of @DanielRossenwaser

* Add test of browser-inconsistent case and alter condition to match spec

* Merge adjacent conditions

* Use seperate functions for checking keywords vs not

* Use flags to track unicode escape presence

* Adjust error text
2019-08-12 16:00:38 -07:00
Alexander 23a3b340b0 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-10 09:58:25 +03:00
OrtaandGitHub 2a2866c3a9 Merge pull request #32563 from orta/fix_31298
Handle namepaths inside JSDoc type expressions a bit better
2019-08-09 16:15:50 -07:00
Nathan Shively-SandersandGitHub 85b8d27ea3 Remove error on invalid jsdoc tokens (#32769)
* Remove error on invalid jsdoc tokens

In JSDoc:

1. In the scanner, don't issue an error, even for invalid identifiers.
2. In the binder, don't issue an error for reserved (but otherwise valid)
identifiers.

/**
 * Example of 1: "\"
 * Example of 2: @private
 */

* Update baselines

* Add invalid unicode escape test for JSDoc

* Add quotes around invalid unicode escape

* Add another unicode escape JSDoc test
2019-08-09 12:53:15 -07:00
Orta Therox 5294e92d27 Use switch instead of instatating an array and when looking inside a module 2019-08-09 13:49:38 -04:00
Alexander 481d70d50d Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-07 21:23:10 +03:00
Wesley WighamandGitHub f333684179 Fix unicode escapes in jsx identifiers and extended unicode characters in jsdoc (#32716)
* Fix unicode escapes in jsx identifiers and extended unicode characters in jsdoc

* Support unicode escapes in JSDoc

* Add tests for extended escapes
2019-08-06 15:14:32 -07:00
Andrew CaseyandGitHub 01e1b1bb27 Merge pull request #32612 from mrcrane/etw-logger
Use optional module "@microsoft/typescript-etw" for ETW logging
2019-08-06 12:44:48 -07:00
Orta Therox 487e2ffe2a Merge master 2019-08-06 15:34:06 -04:00
Alexander a292ae1789 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-04 15:35:41 +03:00
Michael Crane 7d44a4592e Remove try-finally blocks 2019-08-02 16:39:33 -07:00
Michael Crane fa3e9c86db Add PerfLogger and NullLogger to simplify conditional logic 2019-08-01 12:46:33 -07:00
Sheetal Nandi 1d18b4941e Store already known not parenthesized arrow expression positions for faster exit in case of deep parsing
Fixes #31987
2019-07-31 11:12:01 -07:00
Bill TicehurstandMichael Crane 996e7e50d5 Use optional module "@microsoft/typescript-etw" for ETW logging 2019-07-29 15:32:40 -07:00
Orta Therox 30aad9db8d Support more terminators for parsing jsdoc filepaths 2019-07-29 09:46:42 -04:00
Orta Therox b902a71e5f Handle namepaths inside JSDoc type expressions a bit better - fixes #31298 2019-07-25 19:38:48 -04:00
Alexander T 64baa804a8 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-07-15 18:35:34 +03:00
Andrew BranchandGitHub 4f3412153a Parse quoted constructors as constructors, not methods (#31949)
* Parse quoted constructors as constructors, not methods

* Update baselines

* Fix disambiguation between quoted constructor and property named constructor

* Clean up parsing a bit

* Support escapes in constructor name

* Update baselines
2019-07-12 14:01:57 -07:00
Alexander T 4defd1d635 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-07-04 12:49:33 +03:00
Nathan Shively-SandersandGitHub 6f0baa3ae1 Merge pull request #29717 from petersandor/jsdoc-tag-author-email-support
Support email in author JSDoc tag
2019-07-03 10:42:02 -07:00
Alexander T 9f474150c6 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-07-02 17:57:44 +03:00
Alexander T 769bb0b475 remove tslint configuration 2019-06-27 13:49:35 +03:00
Alexander T 810303542d Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-06-27 11:51:20 +03:00
Alexander T f6a50067d3 @typescript-eslint/indent 2019-06-27 11:30:03 +03:00
Nathan Shively-Sanders 8454ef114d JSDoc:Treat tokens between backticks as comments
even `@`, which would otherwise start a new tag.
2019-06-26 16:04:46 -07:00
Alexander T 7d449ac13f no-fallthrough 2019-06-21 18:32:22 +03:00
Andrew Branch 2856aabd70 Parse stray identifier-ish as JSXText instead of trivia 2019-05-21 15:28:16 -07:00
Andrew Branch feaef9c829 Improve error message for JSXExpressions that are comma expressions 2019-05-21 14:21:44 -07:00
Klaus MeinhardtandRon Buckton 0c9db717ad fix parsing of leading union/intersection operator (#31265)
* fix parsing of leading union/intersection operator

Fixes: #30995

* test declaration emit
2019-05-08 14:09:11 -07:00
Klaus MeinhardtandWesley Wigham 4ee0084fa1 avoid more useless type assertions (#31239) 2019-05-03 14:51:54 -07:00
Klaus MeinhardtandRyan Cavanaugh 5bc8a8dddf JSDocTypeTag.typeExpression is not optional (#30452) 2019-04-30 09:46:32 -07:00
Klaus MeinhardtandWesley Wigham de9b91f46a simplify pragma comment parsing (#31144)
* simplify pragma parsing

* use emptyArray
2019-04-29 14:17:48 -07:00
Wesley WighamandGitHub d7f03fb0fa Parse generic function types in import type argument lists (#31079)
* Parenthesize in import type node factory

* And now parse unparenthesized generic functions so we can handle parsing the older output
2019-04-23 14:48:31 -07:00
Peter Šándor 08bd017db9 JSDoc author tag parsing updates (#17244) 2019-04-19 12:03:33 +02:00
Peter Šándor 00279e9eca Parse unexpected comments after email in author JSDoc tag (#17244) 2019-04-19 11:17:09 +02:00
Peter Šándor ea9d519424 Support email in author JSDoc tag
- fixes #17244
2019-04-19 11:15:39 +02:00
Nathan Shively-SandersandGitHub c3a9429420 Handle JSDoc backticks in the parser, not scanner (#30939)
* Scan backticks in jsdoc as a single token less often

Previously, matching backticks in jsdoc would always be scanned as one
token to aid parsing incorrect jsdoc that uses backticks for parameter
names:

``js
/** @param {string} `nope`
 * @param {number} `not needed`
 */
```

However, this is wrong for code fences, which use triple backticks. This
fix parses a single backtick as a single token if it's immediately
followed by another backtick or by a newline. It retains the
questionable tokenisation of backticks-as-pairs in other cases, however.
A better fix might be to have the parser ignore backticks in jsdoc
instead.

* Add test case

* Handle jsdoc backticks in the parser, not scanner

Previously, the jsdoc scanner had ad-hoc handling of backticks that was
similar in structure to the normal scanner's handling, but much simpler.
This was a smaller code change, but is handled backwards: the special
case of backtick-quoted parameter names was handled in the scanner
instead of in the jsdoc identifier parsing code. That made it overapply
and block correct handling of asterisks across newlines, which was most
obvious in code fences inside jsdoc, as in #23517.

Fixes #23517

* More cleanup
2019-04-18 09:35:40 -07:00
AndrewandRyan Cavanaugh 13d9f08976 Gracefully parse 'super' with type arguments (#10677) (#30913) 2019-04-15 13:06:29 -07:00
Anders HejlsbergandGitHub 6cd229b4b9 Merge pull request #30769 from Microsoft/saferIndexedAccessTypes
Improve soundness of indexed access types
2019-04-12 07:33:50 -10:00
Nathan Shively-SandersandGitHub ff959096df Fix some bad jsdoc comment indent (#30838)
* First draft

Solves the initial problem but breaks commentCommentParsing. I also
found a couple more interesting cases.

* Add more tests and fix their bugs

* Another test case

* Some cleanup

I may try do a little more; `margin += tag.end - tag.pos` bothers me a
bit.

* More cleanup
2019-04-10 08:22:09 -07:00
Anders Hejlsberg e1fd5e5225 Fix unsafe parameter coercions related to PragmaPseudoMap 2019-04-06 06:29:59 -10:00
Andrew BranchandGitHub 3f3444be80 Merge pull request #30699 from andrewbranch/bug/30635
Fix ternaries where "true" is a parenthesized variable and "false" is a function expression
2019-04-02 14:03:11 -07:00
Wesley WighamandGitHub ca98a50574 Use const contexts and tuple mapped types to simplify some explicitly elucidated types (#30654)
* Use const contexts and tuple mapped types to simplify some explicitly elucidated types

* Fix lint

* Further cleanup - refactor mapped type into its own alias for readability

* Slightly more cleanup - PragmaPsuedoMap neednt be partial, thus removing tons of nonull assertions

* Remove GH#18217 comments
2019-04-02 13:04:51 -07:00