Commit Graph

643 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
e9073a863d Improve names in infer-from-usage (#33090)
Basically, drop "Context" from all names, because it just indicates that
it's an implementation of the State monad.
2019-08-26 13:20:42 -07:00
Nathan Shively-Sanders
21f192367a Fix infer from usage prop assignment (#33088)
* Add test case

* Fix infer from usage property assignment

Property assignment and shorthand property assignment were incorrectly
treated differently; both have ObjectLiteralExpression as a parent, but
the code previously assumed that property assignments had
ObjectLiteralExpression as parent.parent.

Also make fourslash directives case insensitive and less whitespace
sensitive.

* Add "incorrect 3-slash" error to fourslash parsing.
2019-08-26 10:42:17 -07:00
Ryan Cavanaugh
016884d48c Add assert comments in CodeFixes and Refactors (#33016)
* Add comments to assert calls

* Add comments to assert calls in codefixes

* So linty
2019-08-21 14:22:17 -07:00
Andrew Branch
5d04250ea8 Improve “Add missing await” fix-all (#32922)
* Improve codeFixAll for add missing await

* Improve add missing await for initializers and fix-all

* Fix when only one side of a binary expression can have its initializer fixed
2019-08-20 16:53:28 -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
Ron Buckton
98b6db81d9 Allow accessors in ambient class declarations (#32787)
* Allow accessors in ambient class declarations

* Update src/compiler/transformers/declarations.ts

Co-Authored-By: Wesley Wigham <wewigham@microsoft.com>
2019-08-09 16:11:25 -07:00
Andrew Branch
62f65a7884 Make auto-imports more likely to be valid for the file (including JS) & project settings (#32684)
* Add failing tests

* Use default import or namespace import for import fixes when compiler options allow

* Don’t do import * for export=, ever

* Only do import default for export equals if nothing else will work

* Never do import/require in a JavaScript file

* Update tests for changes in master

* Add const/require fix for JS and select based on usage heuristic

* Fix JS UMD import
2019-08-02 15:58:10 -07:00
Sheetal Nandi
b8e779d89a When the exported symbol is merged symbol from declaration use that name to verify quality
Fixes #27880
2019-07-23 16:31:59 -07:00
Andrew Branch
387c917765 Revert "Proposal: If there’s a package.json, only auto-import things in it, more or less (#31893)" (#32448)
This reverts commit 60a1b1dc1a.
2019-07-17 14:02:18 -07:00
Andrew Branch
7cdfbceb43 Improve accuracy of remove unnecessary await fix (#32384) 2019-07-15 15:17:32 -07:00
Andrew Branch
89badcc9d5 Add 'Remove unnecessary await' suggestion and fix (#32363)
* Add remove unnecessary await fix

* Add test for removing unnecessary parens after await is gone

* Fix handling of numbers in property access expressions

* Don’t offer suggestion when awaited type is any/unknown

* Fix random other test

* Fix new expression edge cases

* Only remove parens for identifiers and call expressions
2019-07-12 11:03:20 -07:00
Andrew Branch
60a1b1dc1a Proposal: If there’s a package.json, only auto-import things in it, more or less (#31893)
* Move package.json related utils to utilities

* Add failing test

* Make first test pass

* Don’t filter when there’s no package.json, fix scoped package imports

* Use type acquisition as a heuristic for whether a JS project is using node core

* Make same fix in getCompletionDetails

* Fix re-exporting

* Change JS node core module heuristic to same-file utilization

* Remove unused method

* Remove other unused method

* Remove unused triple-slash ref

* Update comment

* Refactor findAlias to forEachAlias to reduce iterations

* Really fix re-exporting

* Use getModuleSpecifier instead of custom hack

* Fix offering auto imports to paths within node modules

* Rename things and make comments better

* Add another reexport test

* Inline `symbolHasBeenSeen`

* Simplify forEachAlias to findAlias

* Add note that symbols is mutated

* Symbol order doesn’t matter here

* Style nits

* Add test with nested package.jsons

* Fix and add tests for export * re-exports
2019-07-12 10:08:55 -07:00
Andrew Branch
71bec5b698 Add quick fix to add missing 'await' (#32356)
* Start prototyping addMissingAwait codefix

* Filter by diagnostics that have missing-await related info

* Start writing tests and checking precedence

* Implement codeFixAll, add test for binary expressions

* Add test for iterables

* Add test for passing argument

* Add test for call/construct signatures

* Add test for awaiting initializer

* Improve assertion error

* Replace specific property access error with general one and add await related info

* Add test for property access

* Require code to be inside a function body to offer await

* Accept suggestion

Co-Authored-By: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>

* Add explicit test for code fix being not available unless something is a Promise

* Skip looking for function body if already in AwaitContext flags

* Inline getCodeActions function for symmetry
2019-07-12 10:07:55 -07:00
Florian Regensburger
196db5bbcb Fixed lint error 2019-07-10 02:35:40 +02:00
Florian Regensburger
f273448925 Added addMissingConst codefix for comma separated initializers 2019-07-10 02:11:02 +02:00
Florian Regensburger
384669a1ce Finish addMissingConst codefix for single variable and array literal assignments 2019-07-09 01:56:50 +02:00
Florian Regensburger
7d08f172d8 Added fourslash tests for standalone and array initialization cases and started implementing them 2019-07-07 13:56:34 +02:00
Florian Regensburger
bd9f39dbcc Merge branch 'master' into add-codefix-cannot-find-name-in-for-loop 2019-07-02 00:41:27 +02:00
Titian Cernicova-Dragomir
e4bca9649a Improved error spans for call errors:
1. When calling a non-callable expression the error span is on the call target not on the whole call
2. When calling a method, the error for overload resolution now includes the arguments (this was previously regressed by #31414)
2019-06-28 23:53:47 +03:00
Titian Cernicova-Dragomir
768318b30c Improved error message for calling/constructing types 2019-06-28 23:23:16 +03:00
Josh Goldberg
ca00b3248b Added --noImplicitThis code fix for functions used as object properties (#31138)
* Added --noImplicitThis code fix for functions used as object properties

Before trying out all the various possibilities for where these functions could be used, I figured I'd start out with a relatively simple use case to verify this is the right approach. Is it? 😄

Starts on #28964.

* Fixed function expression names; included new baselines

* Got JSDocs to work, hooray!

* Added test for 'any' case of no function uses

* Refactored for inferFunctionReferencesFromUsage

* Fixed inference bug: undefined references cause parameters to default

* Removed dead code comments
2019-06-17 19:00:15 -07:00
Ron Buckton
3d2af9ff33 Relocate Debug namespace to reduce duplication (#31524) 2019-05-22 11:20:29 -07:00
Florian Regensburger
e0a685da4f Fix whitespace issue in codefix file 2019-05-09 01:34:21 +02:00
Florian Regensburger
e395e49a8f Add secondary error code to relevant error code list in addMissingConstInForLoop codefix 2019-05-09 01:17:31 +02:00
rflorian
d4529e8355 Merge branch 'master' into add-codefix-cannot-find-name-in-for-loop 2019-05-09 00:22:01 +02:00
amaksimovich2
5b79b942e8 add action for enabling experimentalDescorators option in user config… (#30484)
* add action for enabling experimentalDescorators option in user config file, change error message for this case #29035

* add missing changes in tests

* Add "experimental decorators" tests for jsconfig file
2019-04-25 14:55:04 -07:00
Andrew Branch
6608349ea2 Merge pull request #31008 from andrewbranch/bug/29358
Support binding patterns in Promise -> async/await refactor
2019-04-24 08:43:15 -07:00
Ryan Cavanaugh
885d4d63c8 Remove "generate types" code (#31075) 2019-04-23 13:51:47 -07:00
Andrew Branch
af498eb6ca Clean up synthetic binding name creation and discriminating 2019-04-18 11:50:26 -07:00
Andrew Branch
e7fb18e395 Handle case where you have to add a destructuring after a try/catch block 2019-04-18 11:36:47 -07:00
Andrew Branch
42c9b47add Fix let/const selection for binding patterns 2019-04-17 18:43:01 -07:00
Andrew Branch
4c73b2e7bd Basic support for binding patterns in async/await code fix 2019-04-17 18:43:00 -07:00
王文璐
9050d0fdf8 update external files api 2019-03-27 19:06:21 +08:00
王文璐
6bc5ef3474 Merge branch 'master' into avoid-quickfix-for-declaration-file 2019-03-27 18:36:56 +08:00
Sheetal Nandi
990b199ebd Merge branch 'master' into incrementalBuildInfo 2019-03-08 11:42:19 -08:00
Sheetal Nandi
ed35741b5f Merge branch 'master' into incrementalBuildInfo 2019-02-27 15:45:59 -08:00
Gabriela Araujo Britto
365967d484 Merge branch 'master' into convert-to-named-parameters 2019-02-25 10:54:58 -08:00
Sheetal Nandi
9fa28158bb Enable building typescript.d.ts with current source 2019-02-22 18:11:27 -08:00
Joseph Wunderlich
d87e67df58 clarify intent in returnType creation 2019-02-22 18:00:21 -08:00
Joseph Wunderlich
21ab39649c remove any annotation from declare method quickfix 2019-02-22 17:24:21 -08:00
Gabriela Araujo Britto
6b53489a4a Merge branch 'master' into convert-to-named-parameters 2019-02-20 13:24:09 -08:00
Gabriela Araujo Britto
26f8ddd46a create functions for copying trailing comments and rename previous copyComment function 2019-02-11 12:01:02 -08:00
Gabriela Britto
9270e58eaf Merge branch 'master' into convert-to-named-parameters 2019-02-06 15:41:16 -08:00
Jesse Trinity
f0a6154e9b Added auto setting to quotePreference 2019-02-06 14:37:26 -08:00
Gabriela Britto
f3e60be8b1 Move function getTypeNodeIfAccessible from inferFromUsage to utilities 2019-01-28 15:51:24 -08:00
xiaofa
ddbac8f3fe get appropriate parent jsdoc node for arrow functions 2019-01-26 23:59:32 +08:00
kingwl
bf42f5bd1c avoid add missing member in declaration file 2019-01-25 12:05:45 +08:00
rflorian
8a048159ba Merge branch 'master' into add-codefix-cannot-find-name-in-for-loop 2019-01-17 00:07:43 +01:00
Wesley Wigham
3d2bf6a75f Fix implement interface quickfix import types (#29410)
* Pass module specifier resolution host thru types constructed by implements quickfixes

* Add regression test

* Fix scope node for generated methods, fix lints
2019-01-14 13:56:27 -08:00
Josh Goldberg
7b6adae6dd Extracted compilerOptions setting to helper function 2019-01-11 15:05:24 -05:00