21075 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
f1104806d5
Merge pull request #33263 from microsoft/infer-from-usage/similarity-to-builtins
Infer from usage by similarity to builtin types
2019-09-24 07:44:34 -07:00
Anders Hejlsberg
bf992a57f6
Merge pull request #32695 from microsoft/assertionsInControlFlow
Assertions in control flow analysis
2019-09-23 16:57:56 -07:00
Wesley Wigham
00a43d7b49
Cache propagating variance flags in the relationship cache (#32225)
* Cache propagating variance flags in the relationship cache

* Convert base fields in relation comparison result to flags
2019-09-23 16:55:19 -07:00
Wesley Wigham
367b82055c
Hoist and distribute type parameter constraints over type parameters … (#33453)
* Hoist and distribute type parameter constraints over type parameters when comparing against union targets when fetching union constraints

* Fix PR nits
2019-09-23 16:52:03 -07:00
Wesley Wigham
26caa3793e
Introduce flattened error reporting for properties, call signatures, and construct signatures (#33473)
* Introduce flattened error reporting for properties, call signatures, and construct signatures

* Update message, specialize output for argument-less signatures

* Skip leading signature incompatability flattening

* Add return type specialized message
2019-09-23 16:08:44 -07:00
Wesley Wigham
6c2ae12559
Relax the constraints of isValidBaseType to allow base types to be constructor types (#33146)
* Relax the constraints of isValidBaseType to allow base types to be constructor types

* Fix nit

* Reduce confusion between isConstructorType and isValidBaseType

* Update comment
2019-09-23 15:58:03 -07:00
Nathan Shively-Sanders
84e857b6f3 use forEachEntry 2019-09-23 15:57:32 -07:00
Daniel Rosenwasser
4f25774785
Merge pull request #33477 from Nathan-Fenner/error-on-extra-jsx-prop
report error on extraneous JSX prop instead of element name
2019-09-23 15:26:57 -07:00
Anders Hejlsberg
5d09688c1e
Merge pull request #33228 from microsoft/fix32976
Less aggressive contextual signature instantiation
2019-09-21 07:31:24 -07:00
Orta
5b9a56fc4d
Merge pull request #33057 from jablko/patch-2
Allow readonly arguments to Promise.all(), etc.
2019-09-21 08:02:14 -04:00
Anders Hejlsberg
bcdf33d8de Fix forEachChild 2019-09-20 17:44:19 -07:00
Anders Hejlsberg
c3dcc37c79 Merge branch 'master' into assertionsInControlFlow
# Conflicts:
#	src/compiler/checker.ts
2019-09-20 17:23:27 -07:00
Anders Hejlsberg
10e3f11c0d
Merge pull request #33510 from microsoft/controlFlowLoopCaching
Enable caching for control flow paths that precede loops
2019-09-20 14:09:47 -07:00
Nathan Fenner
1cad8edfa7 check for SyntaxKind.JSXAttribute instead of located-ness of name prop 2019-09-20 14:00:11 -07:00
Anders Hejlsberg
007b4b1e31 Minor simplification 2019-09-20 10:24:02 -07:00
Anders Hejlsberg
d4ad0d53dc Cheaper caching scheme 2019-09-20 06:47:42 -07:00
Sheetal Nandi
7f004ad8df
Merge pull request #33380 from microsoft/isolatedModules
With --isolatedModules, --declaration emit is now allowed and builder handles it for incremental compilation
2019-09-19 16:20:21 -07:00
Jack Bates
78057a64ac Allow readonly arguments to Promise.all(), etc. 2019-09-19 11:11:59 -07:00
Sheetal Nandi
73233d72f7
Merge pull request #33503 from microsoft/moreApisForBuild
Add output file names api for supporting ts-loader
2019-09-19 09:18:27 -07:00
Anders Hejlsberg
7b77b49781 Enable caching for control flow paths that precede loops 2019-09-19 08:26:52 -07:00
Nathan Fenner
dbc17229f7 report extraneous jsx attribute error on attribute name instead of entire attribute assignment 2019-09-18 16:31:44 -07:00
Nathan Fenner
940231785e report error on extra jsx prop instead of component name 2019-09-18 16:31:44 -07:00
Anders Hejlsberg
cafec556f3 Properly handle try-finally statements in isReachableFlowNode 2019-09-18 15:20:20 -07:00
Sheetal Nandi
e430f2a81c Add output file names api for supporting ts-loader 2019-09-18 14:13:49 -07:00
Wesley Wigham
5e06bea481
getConstraintDeclaration gets the first declaration with a constraint… (#33426)
* getConstraintDeclaration gets the first declaration with a constraint, rather than just the first declaration

* Add type annotation

* Update comment
2019-09-18 13:56:24 -07:00
Wesley Wigham
683e281040
Reintroduce cloneInferredPartOfContext to fix overloaded inferences with returnMappers (#33478) 2019-09-18 13:14:39 -07:00
Jack Williams
1c20aa0b1a Narrow unknown under inequality when assumed false (#33488) 2019-09-18 10:54:42 -07:00
Anders Hejlsberg
ba30fdc4ae Attach flow nodes only when allowUnreachableCode !== true 2019-09-18 06:36:51 -07:00
Ron Buckton
344dba8809
Fix incorrect parameter types for AsyncIterator next/return (#33354) 2019-09-17 21:02:12 -07:00
Wesley Wigham
56e2cb31ad
Reverse mapped types should have inferable indexes if their source had an inferable index (#33450) 2019-09-17 15:36:00 -07:00
Martin Probst
6bb7e5c086 Handle parentless nodes in isParameterPropertyDeclaration
Fixes #33295.

This follows a similar pattern as in #20314 by requiring an explicit
`parent` parameter. Where possible, it uses the appopriate variable at
the call sites.

In several locations there is no context available though (e.g.
inspecting `valueDeclarations`) and we access `.parent` as the code
previously did. From a cursory inspection this seems correct, these
callpaths originate in phases where there must be a `parent` (i.e. in
checker, binder, etc).

Change-Id: I28e4726777b57237bec776e4001e9e69ac591b11
2019-09-17 13:22:30 -07:00
Andrew Casey
2f8832cccc
Merge pull request #33469 from amcasey/gh33332
Make extractSymbol explicitly drop JSDoc nodes
2019-09-17 11:42:26 -07:00
Andrew Casey
f10e38fea7 Make extractSymbol explicitly drop JSDoc nodes
Fixes #33332
2019-09-17 10:35:11 -07:00
Anders Hejlsberg
8cbf69489c Cache last isReachableFlowNode result + switch statement CFA fix 2019-09-17 07:01:07 -07:00
xiaofa
67aa2b22ac fix conflicts 2019-09-17 19:02:44 +08:00
xiaofa
58e0469252 fix typo 2019-09-17 18:56:19 +08:00
Anders Hejlsberg
d9c9129720 Ignore references in with statements in getTypeOfDottedName 2019-09-16 15:56:55 -07:00
Anders Hejlsberg
6d6c620cc2 Report grammatic and type-based unreachable code errors in the same way 2019-09-16 15:30:45 -07:00
Anders Hejlsberg
def5e37e6a Revert "More efficient scheme for caching flow node reachability"
This reverts commit e97ebb7f1c6ee93ce3ed6a4f996e54f346a0ff44.
2019-09-16 14:20:53 -07:00
Anders Hejlsberg
e97ebb7f1c More efficient scheme for caching flow node reachability 2019-09-16 13:04:22 -07:00
Orta
09d6cbc152
Merge pull request #33418 from Kingwl/duplicate_async
fix duplicate async modifier codefix
2019-09-16 09:42:13 -04:00
Anders Hejlsberg
05d1e68e62 Fix linting issues 2019-09-15 18:13:49 -07:00
Anders Hejlsberg
d26afd7273 for-in or for-of expression is evaluated before loop back edge 2019-09-15 11:07:51 -07:00
Anders Hejlsberg
945babbaac Fix inference circularity error triggered by exhaustive switch analysis 2019-09-15 09:49:57 -07:00
Anders Hejlsberg
59b76cee89 Fix call to Debug.fail in compiler 2019-09-15 08:38:17 -07:00
Anders Hejlsberg
0060964fba Further CFA handling of exhaustive switch statements 2019-09-15 08:25:07 -07:00
Anders Hejlsberg
cc6e4938ae Treat exhaustive switch statements like non-returning functions in CFA 2019-09-14 15:30:09 -07:00
Wesley Wigham
038d95144d
Remove all submodules - just force clone and reset on run instead (#33425) 2019-09-13 16:14:33 -07:00
Anders Hejlsberg
3a89c8cc5c Use isReachableFlowNode to check for implicit return 2019-09-13 14:38:12 -07:00
Anders Hejlsberg
3749de6019 Dedicated isReachableFlowNode function to determine reachability 2019-09-13 11:33:16 -07:00