Commit Graph
21714 Commits
Author SHA1 Message Date
Nathan Shively-Sanders 6ca9d04b60 Constructor functions as classes (#32944)
* Initial implementation

The original test passes but I haven't run any other tests yet, so I
assume the world is now broken.

* Append constructor function construct sigs

Instead of overwriting them

* Grab bag of improvements.

1. Mark @class-tagged functions with Class too.
2. Only gather local type parameters of constructor functions.
3. Remove getJSClassType calls with getDeclaredTypeOfSymbol.
4. Add a couple more failing tests.

getDeclaredTypeOfClassOrInterface now needs to understand prototype
assignment. That's next, I think.

* Prototype assignments work now

1. Binder marks prototype assignments as Class now.
2. Checker merges prototype assignments using the same merge code as for
functions and their declarations. No more intersections.

Many fewer failing tests now.

* Mark prototype-property assignments as Class

Even if there are no this-property assignments in them. (Then why are
you using a class?).

* Simplify getJSClassType, remove calls to its guts

It's probably not needed because now it's just a conditional call to
getDeclaredTypeOfSymbol, and I think most callers already know whether
they have a JS constructor function beforehand.

* isJSDocConstructor doesn't need to check prototype anymore

Because all the properties are merged during getDeclaredTypeOfSymbol.

* outer type parameter lookup follow prototype assignment

* this-type and -expression support in ctor funcs

Pretty cool!

* Fix remaining tests

* Fix minor lint

* Delete now-unused code

* Add class flag to nested class declarations

Also remove old TODOs
2019-08-19 14:12:53 -07:00
Wesley Wigham fd1e22bbf1 Instantiate generic conditional infer source types in the context of the target conditional (#31545)
* Instantiate generic conditional infer source types in the context of the target conditional

* Add test case from #26627
2019-08-19 13:01:08 -07:00
rChaser53 d75de60548 Fix Cannot read property 'text' of undefined crash (#32734)
* Fix Cannot read property 'text' of undefined crash

* fix condition for tsx

* Rename and improve the method
2019-08-19 12:08:34 -07:00
Wesley Wigham d9f0212324 Resolve SymbolFlags.Type only at first in jsdoc getTypeFromTypeReference (#32947)
* Fix lookup of exported eunm type alias in local scope in JS

* Fix by adjusting type lookup fallback behavior to not include SymbolFlags.Value in its initial lookup instead
2019-08-19 11:31:47 -07:00
falsandtru 5ae286329f Update String#toLocale{Lower,Upper}Case methods (#32961) 2019-08-19 09:10:12 -07:00
Alexander T fd72a1c76b @typescript-eslint/unified-signatures 2019-08-19 13:38:58 +03:00
Collins Abitekaniza 75ac6eb284 restrict object spreading on unkown type 2019-08-19 03:10:08 +03:00
Klaus Meinhardt 1d942f4ddc Detect more TS syntax in JS files
* optional class methods
* type arguments on tagged template expressions
2019-08-18 21:46:53 +02:00
Anders Hejlsberg e7cbfc41e5 Update API to be backwards compatible 2019-08-17 07:05:49 -07:00
Alexander a7f41621fb Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-17 16:37:39 +03:00
Anders Hejlsberg 0599f84857 Support 'asserts this' and 'asserts this is T' type predicates 2019-08-17 06:23:07 -07:00
Wesley Wigham d304049e0c Run user test submodule update in the correct directory (#32921) 2019-08-16 14:22:21 -07:00
Nathan Shively-Sanders 2b8ccf40ae jsdoc template tags might be unmatched (#32936)
* jsdoc template tags might be unmatched

* Update fourslash test
2019-08-16 13:39:57 -07:00
Hoang Pham 46b7972885 Add JSX codefix if available (#32281)
* Add JSX codefix if available

* Update react jsx.

* Update diagnostic code.
2019-08-16 12:46:55 -07:00
Brendan Kenny f45add0a7d checkJs: require JSDoc type argument for Array, Object, and Promise in noImplicitAny (#32829)
* Require type argument for JSDoc Array, Object, and Promise in noImplicitAny

* add jsdoc Array/Object/Promise noImplicitAny tests
2019-08-16 12:41:09 -07:00
Anders Hejlsberg 489abcacd4 Merge pull request #32919 from microsoft/fix32752
Stricter criteria for eliminating types in unions during inference
2019-08-16 10:55:48 -07:00
laoxiong cd84d75147 refactor: modify the TokenFlags default value (#32112) 2019-08-16 09:45:20 -07:00
Alexander T b6d981aec8 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-16 12:13:57 +03:00
Alexander T d532bf6dcb remove 'project' option from default .eslintrc configs 2019-08-16 11:56:51 +03:00
Alexander T 8442ec01bf remove useless comment 2019-08-16 11:52:34 +03:00
Anders Hejlsberg abc61a0949 Add InferencePriority.Circularity per CR feedback 2019-08-15 18:08:01 -07:00
阿卡琳 a53e4a19ef Allow to omit the begin parameter of %TypedArray%.prototype.subarray (#32125)
* Allow to omit the begin parameter of %TypedArray%.prototype.subarray

* update baselines
2019-08-15 15:58:24 -07:00
Tan Li HauandKlaus Meinhardt dcb763f624 Report error when using generic class in js file (#31723)
* Report error when using generic class in js file

* Replace "ClassDeclaration | ClassExpression" to ClassLikeDeclaration

Co-Authored-By: Klaus Meinhardt <klaus.meinhardt1@gmail.com>

* add noEmit:true
2019-08-15 15:49:50 -07:00
Francois Hendriks 334b8590e9 Add check for Records in reportNonexistentProperty function (#31701) 2019-08-15 15:29:42 -07:00
Klaus Meinhardt efa19f6777 remove useless condition as argumentExpression is always defined (#31567)
* remove useless condition as argumentExpression is always defined

* fix formatting

* remove obsolete diagnostic
2019-08-15 15:25:10 -07:00
Ryan Cavanaugh 0bc3468733 small refactor to cut back on type assertions (#32920) 2019-08-15 15:18:27 -07:00
Orta 6cd8bcd6c9 Merge pull request #31185 from collin5/b30851
Restrict spreading for Instantiable Type with non object constraint
2019-08-15 13:50:01 -07:00
Armando Aguirre 428e8d0cb1 Fixed navigationbar regex 2019-08-15 13:49:11 -07:00
Orta cfeebda837 Merge pull request #32765 from orta/debug_scanner
Adds a debugging command to the scanner
2019-08-15 12:54:45 -07:00
Matthew Miller c6a0739dc9 fix(docs): Fixed the docs for Array#slice not spec (#31182)
ifying that the 'end' parameter is exclusive.
2019-08-15 10:28:28 -07:00
Kagami Sascha Rosylight f304b81fa5 Point es2020 in esnext.d.ts (#32776) 2019-08-15 10:06:46 -07:00
Andrew Branch 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
Anders Hejlsberg a81ce061de Stricter criteria for eliminating types in unions during inference 2019-08-15 08:55:50 -07:00
Jack Williams f1cfefc3db Comment correction 2019-08-15 11:06:56 +01:00
Alexander T f20a2828f2 Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-15 10:32:45 +03:00
Alexander T 21d296b0cf set augmentations, moduleAugmentations as readonly 2019-08-15 09:55:10 +03:00
Daniel Rosenwasser d442ecc24a Merge pull request #32904 from microsoft/getRidOfCrappyLiterals
Prefer reporting base primitives in various operations
2019-08-14 17:47:18 -07:00
Wesley Wigham 1747ee7a55 Perfer the non-module name of a symbol when writing the name of a symbol (#32880) 2019-08-14 17:16:17 -07:00
Daniel Rosenwasser 1ad443ed25 A bit of cleanup. 2019-08-14 16:48:24 -07:00
Daniel Rosenwasser 3d11930453 Get base primitive type for unary operators. 2019-08-14 16:16:43 -07:00
Daniel Rosenwasser c555d4df89 Report on base primitives for certain operations. 2019-08-14 16:02:35 -07:00
Andrew Branch 2217f0b859 Fix export=global auto import exclusion (#32898) 2019-08-14 15:50:25 -07:00
Ryan Cavanaugh 11c28d6dd0 Update versions to 3.7 (#32879)
* Update versions to 3.7

* Update API baselines
2019-08-14 13:00:26 -07:00
Klaus Meinhardt 8eeb763cdd report invalid modifiers on class expression properties
Fixes: #32532
2019-08-14 21:00:19 +02:00
Sheetal Nandi 0e93cf61fc Disallow incremental with noEmit
Fixes #32882
2019-08-14 09:47:49 -07:00
Sheetal Nandi 31a26120f9 Merge pull request #32788 from microsoft/tsbuildFixes
Fixes for tsbuild scenarios
2019-08-14 09:07:24 -07:00
Alexander T 3424f843f5 lint all ts files in scripts. remove tslint: directive. add extended eslint config for CI environment 2019-08-14 14:10:40 +03:00
Alexander T b728bf4bfa Merge branch 'master' of https://github.com/Microsoft/TypeScript into feature/eslint 2019-08-14 13:42:02 +03:00
Alexander T 466ee10011 add .eslintrc for src and scripts. update typescript-eslint 2019-08-14 12:34:16 +03:00
Wesley Wigham 602966ba4e Fix references to path-mapped ambient modules in declaration files (#32878)
* Fix references to path-mapped ambient modules in declaration files

* Fix lint
2019-08-13 16:34:03 -07:00