13940 Commits

Author SHA1 Message Date
Andrew Branch
73bef22f0b
A merged interface with an inherited member should satisfy an abstract base class member (#32539)
* A merged interface with an inherited member should satisfy an abstract base class member

* Tighten up comments and names
2019-08-01 09:34:11 -07:00
Andrew Branch
b377e99958
Prevent infinite recursion resolving nested conditional types with import types in them (#32097)
* Prevent infinite recursion resolving conditional types

* Use push/popTypeResolution and issue error

* Add failing test

* Fix the actual problem

* Revert unnecessary changes
2019-08-01 08:37:43 -07:00
Sheetal Nandi
3f75d2c879
Merge pull request #32640 from microsoft/parsingDeepParenthesizedExpression
Store already known not parenthesized arrow expression positions for faster exit in case of deep parsing
2019-07-31 14:16:30 -07:00
Sheetal Nandi
c25e7dd873 Wire in compilerOptions of the program in to the host's resolveModuleNames and resolveTypeReferenceDirectives api
Fixes #31056
2019-07-31 12:01:49 -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
Anders Hejlsberg
4cc6618fc2
Merge pull request #32558 from microsoft/fix32247
Infer between closely matching types in unions and intersections
2019-07-29 11:34:14 -07:00
Wesley Wigham
b963e1a2a7
Update LKG (#32578)
* Update LKG

* Add @types/node version bump

* Small paatches/casts to be compatible with latest node

* Accept API baseline update

* Make internal NodeBuffer compatable with latest Buffer

* Why do we even have an internal buffer type

* Sync up internal buffer type better

* Fix lint

* Readd mroe missing Buffer methods
2019-07-29 10:33:43 -07:00
Anders Hejlsberg
58ff76abf6 Properly instantiate contextual type for object literal methods 2019-07-28 09:01:11 -07:00
Anders Hejlsberg
a9e0a7766e Record full inference status in visitation cache 2019-07-27 08:50:26 -07:00
Andrew Branch
3d09010dc8
Intersect 'this' types in union signatures (#32538)
* Intersect this types in union signatures

* Actually update baselines
2019-07-26 14:56:03 -07:00
Wesley Wigham
2a4930f4ec
Bind a jsdoc enum as SymbolFlags.TypeAlias and not SymbolFlags.Enum (#32520)
* Bind a jsdoc enum as SymbolFlags.TypeAlias and not SymbolFlags.Enum

* Actually include an @enum tag as a declaration

* Add enum tag refs into a couple more syntax kind lists

* accept symbol baseline update
2019-07-26 13:57:22 -07:00
Anders Hejlsberg
bb87332e73 Add more comments 2019-07-26 13:12:44 -07:00
Anders Hejlsberg
00f41e5693 Less aggressive reduction of intersection types 2019-07-26 11:03:31 -07:00
Anders Hejlsberg
4c76bae888 Don't exclude non-anonymous object types in identity checks 2019-07-25 14:03:17 -07:00
Nathan Shively-Sanders
772bee5e84
Property assignment uses parent type annotation (#32553)
* Property assignment uses parent type annotation

First draft, will write full explanation later.

Also makes sure that jsdoc is ignored in TS. It was not before.

* Update baselines
2019-07-25 10:23:03 -07:00
Anders Hejlsberg
dc415c5c5e Infer between closely matching types in unions and intersections 2019-07-25 09:56:36 -07:00
Anders Hejlsberg
742cabaac4 Merge branch 'master' into fix32349 2019-07-23 10:31:46 -07:00
Anders Hejlsberg
9ec71c3f97
Merge pull request #32460 from microsoft/fix32434
Improve type inference for types like 'T | Promise<T>'
2019-07-23 10:28:02 -07:00
Anders Hejlsberg
3206f5fb94 When inferring from XXX to T | XXX make no inferece for T (instead of never) 2019-07-23 06:38:49 -07:00
Ron Buckton
d982014d73
Update __awaiter to be more spec compliant (#32462)
* Update __awaiter to be more spec compliant

* Add awaiter evaluation test
2019-07-22 17:23:35 -07:00
Ron Buckton
47e3fedb5d
Fix object spread runtime semantics (#32514) 2019-07-22 16:46:09 -07:00
Anders Hejlsberg
b822def6ef Minor cleanup plus more comments 2019-07-22 11:07:33 -07:00
Anders Hejlsberg
203fd9ff9e Combine multiple separate code paths 2019-07-22 08:01:22 -07:00
Anders Hejlsberg
9b2d9cdffc Fix issues uncovered by DT tests 2019-07-21 14:07:45 -07:00
Anders Hejlsberg
2541a5d0ff Always infer between distinct type references to same target 2019-07-20 14:33:35 -07:00
Anders Hejlsberg
6b29060111 Merge branch 'master' into fix32434 2019-07-20 12:09:03 -07:00
Anders Hejlsberg
2450c1947f Make lower priority inferences when inference process is blocked 2019-07-20 09:57:10 -07:00
Orta Therox
282e72419b Set the ModuleKind value for ESNext to be 99 so it doesn't change between releases (and yet another module system?!) 2019-07-17 22:56:28 -04:00
Anders Hejlsberg
8f020559fb Treat Array<T> and ReadonlyArray<T> as synonymous in inference 2019-07-17 18:49:56 -07:00
Orta Therox
5f6cdf17ea Set the ScriptTarget of ESNext to be 99 so it doesn't change between releases 2019-07-17 18:27:29 -04:00
Orta Therox
a24e4b0d2c Undo accidental push to master 2019-07-17 18:24:35 -04:00
Orta Therox
7f071d2a1b Set the ScriptTarget of ESNext to be 99 so it doesn't change between releases 2019-07-17 18:21:53 -04:00
Anders Hejlsberg
c6b77fa5df Fix lint error 2019-07-17 15:15:56 -07:00
Anders Hejlsberg
5a45d5aed8 Reduce union and intersection targets when source is singleton type 2019-07-17 14:53:29 -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 60a1b1dc1a93ca792cf12bb0432cf7bc134c3ad1.
2019-07-17 14:02:18 -07:00
Milosz Piechocki
8f2ed0ded8 addTypeToIntersection performance improvement (#32388) 2019-07-17 13:22:53 -07:00
Andrew Branch
2466109577
Fix build/lint due to differences in master and LKG (#32450) 2019-07-17 13:07:10 -07:00
Ron Buckton
049618f7da
Get contextual type of yield from contextual signature of containing function (#32433)
* Get contextual type of yield from contextual signature of containing function

* Add missing baseline
2019-07-16 17:16:21 -07:00
Anders Hejlsberg
d8b191a671 Improve algorithm for inferring to union types 2019-07-16 16:29:52 -07:00
Sheetal Nandi
607c9c5e26 Fix missing tokenToString for the backtick
Fixes #32073
2019-07-16 13:30:38 -07:00
Nathan Shively-Sanders
1de76cd605
Control flow for element access expressions (#31478)
* Control flow for element access expressions

Draft version, just want to see how performance is

* Add baselines

* Fix cast lint

* Cleanup to share code path

* Fix errant diffs
2019-07-16 10:10:58 -07:00
Andrew Branch
7cdfbceb43
Improve accuracy of remove unnecessary await fix (#32384) 2019-07-15 15:17:32 -07:00
Ron Buckton
17762c480d
Fall back to (Async)IterableIterator if (Async)Generator not found (#32303) 2019-07-15 13:41:17 -07:00
Anders Hejlsberg
303297aa27
Merge pull request #32362 from microsoft/fix32230
Fix type parameter inference cache invalidation logic
2019-07-12 16:57:34 -07:00
Daniel Rosenwasser
851156d73d
Add kind to JsxAttributes (#32369)
Add kind to JsxAttributes
2019-07-12 14:40:30 -07:00
Anders Hejlsberg
e0599fd19c Instantiate contextual type for return type in getReturnTypeFromBody 2019-07-12 11:11:36 -10:00
Andrew Branch
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
Wesley Wigham
37f2e5972f
Cache & widen assigned js prototype type (#32381) 2019-07-12 12:49:34 -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