Commit Graph
100 Commits
Author SHA1 Message Date
Anders Hejlsberg 58dc1e85c4 Shared caching for identical function types in relationship checking 2019-09-29 16:13:24 -07:00
Anders Hejlsberg 250d5a8229 Merge pull request #33050 from microsoft/recursiveTypeReferences
Recursive type references
2019-09-25 13:16:39 -07:00
Anders Hejlsberg 75117ac2a1 Merge pull request #33598 from microsoft/fix33582
Fix issues caused by reachability analysis of `this.foo(...)` like calls.
2019-09-25 10:27:04 -07:00
Anders Hejlsberg 0d4e5942d7 Accept new baselines 2019-09-25 09:34:30 -07:00
Anders Hejlsberg cefd1e4251 Add regression test 2019-09-25 09:34:24 -07:00
Anders Hejlsberg 8e232e4d28 Limit this.foo(...) reachability checks to explicit this types 2019-09-25 09:30:25 -07:00
Anders Hejlsberg 7fd93fd3c6 Accept API baseline changes 2019-09-24 12:23:47 -07:00
Anders Hejlsberg 3061a418a4 Add getTypeArguments method to TypeChecker interface 2019-09-24 11:53:49 -07:00
Anders Hejlsberg 27752c642f Merge branch 'master' into recursiveTypeReferences
# Conflicts:
#	src/compiler/checker.ts
2019-09-24 11:52:40 -07:00
Anders Hejlsberg b2f4af4d4f Fix that works with both LKG and built compilers 2019-09-24 09:16:47 -07:00
Anders Hejlsberg f0bf72fe34 Fix linting issue 2019-09-24 08:57:01 -07:00
Anders Hejlsberg 5962a5c08e Merge branch 'master' into recursiveTypeReferences
# Conflicts:
#	src/compiler/checker.ts
#	src/compiler/types.ts
2019-09-24 07:29:05 -07:00
Anders Hejlsberg 3aa3326f4f Accept new baselines 2019-09-24 06:55:47 -07:00
Anders Hejlsberg e3d23cc40e Add tests 2019-09-24 06:55:38 -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
Anders Hejlsberg bf08d3bfc7 Fix linting issues 2019-09-23 06:14:52 -07:00
Anders Hejlsberg 8604d4e428 Include type operators in aliased type checks 2019-09-21 09:07:49 -07:00
Anders Hejlsberg db7c03d868 Merge branch 'master' into recursiveTypeReferences
# Conflicts:
#	src/compiler/checker.ts
#	src/compiler/types.ts
#	tests/baselines/reference/api/tsserverlibrary.d.ts
#	tests/baselines/reference/api/typescript.d.ts
2019-09-21 08:52:14 -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
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 97d69d442d Accept new baselines 2019-09-20 17:18:08 -07:00
Anders Hejlsberg 21b5418cef Add tests 2019-09-20 17:17:39 -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
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
Anders Hejlsberg 7b77b49781 Enable caching for control flow paths that precede loops 2019-09-19 08:26:52 -07:00
Anders Hejlsberg cafec556f3 Properly handle try-finally statements in isReachableFlowNode 2019-09-18 15:20:20 -07:00
Anders Hejlsberg ba30fdc4ae Attach flow nodes only when allowUnreachableCode !== true 2019-09-18 06:36:51 -07:00
Anders Hejlsberg 9466025996 Accept new baselines 2019-09-17 07:41:36 -07:00
Anders Hejlsberg 8cbf69489c Cache last isReachableFlowNode result + switch statement CFA fix 2019-09-17 07:01:07 -07:00
Anders Hejlsberg 282a7aff6e Accept new API baselines 2019-09-16 15:58:42 -07: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 e97ebb7f1c.
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
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 51dcce2124 Accept new baselines 2019-09-15 08:28: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
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
Anders Hejlsberg 971b0df80a Use declared type for references in unreachable code (again) 2019-09-13 07:12:19 -07:00
Anders Hejlsberg a9336ba8a5 Revert "Use declared type for references in unreachable code"
This reverts commit 436339ddef.
2019-09-12 09:15:43 -07:00
Anders Hejlsberg 436339ddef Use declared type for references in unreachable code 2019-09-12 07:41:47 -07:00
Anders Hejlsberg 5a180bac03 Merge branch 'master' into assertionsInControlFlow
# Conflicts:
#	tests/baselines/reference/api/tsserverlibrary.d.ts
#	tests/baselines/reference/api/typescript.d.ts
2019-09-10 22:47:15 -07:00
Anders Hejlsberg 8791b62c96 Accept new baselines 2019-09-10 22:26:36 -07:00
Anders Hejlsberg 21528748c6 Address CR feedback 2019-09-10 16:24:00 -07:00
Anders Hejlsberg c5e6d95e93 Merge pull request #33252 from microsoft/fix33131
Make lower priority inference when source is completely matched in target
2019-09-05 06:27:23 -07:00
Anders Hejlsberg aaa064b3b8 Fix lint error 2019-09-04 18:26:59 -07:00
Anders Hejlsberg 5de180e878 Merge branch 'master' into fix33131
# Conflicts:
#	src/compiler/checker.ts
2019-09-04 16:54:11 -07:00
Anders Hejlsberg 7b4ffb1ca1 Accept new baselines 2019-09-04 16:50:06 -07:00
Anders Hejlsberg 228b727ff1 Add regression test 2019-09-04 16:49:59 -07:00
Anders Hejlsberg 1a28fd0d9f Accept new baselines 2019-09-04 16:46:38 -07:00
Anders Hejlsberg 43d3dc8e17 Make lower priority inference when entire source is matched in target 2019-09-04 16:44:07 -07:00
Anders Hejlsberg bbec8b36ef Accept new baselines 2019-09-03 17:23:52 -07:00
Anders Hejlsberg 4bd9b62fa6 Add regression tests 2019-09-03 17:23:43 -07:00
Anders Hejlsberg c02fdaa590 Accept new baselines 2019-09-03 16:36:41 -07:00
Anders Hejlsberg 8ffc42f5a6 Don't instantiate-in-context-of when inferring to type variable 2019-09-03 15:24:49 -07:00
Anders Hejlsberg b9cb3a6395 Accept new baselines 2019-08-30 17:14:55 -07:00
Anders Hejlsberg a92d5992d2 Tweak isAliasedType 2019-08-30 16:39:31 -07:00
Anders Hejlsberg 81bfa6f2e0 Accept new baselines 2019-08-30 07:58:04 -07:00
Anders Hejlsberg 2f0ac25a00 Defer resolution of type arguments in aliased type references 2019-08-30 07:57:55 -07:00
Anders Hejlsberg 6270ccc4b0 Accept new baselines 2019-08-29 07:31:34 -07:00
Anders Hejlsberg fd8f990449 Fix instantiation of alias type arguments for deferred type references 2019-08-29 07:17:45 -07:00
Anders Hejlsberg 842c588f3e Exclude method symbols when relating tuple types 2019-08-28 07:52:42 -04:00
Anders Hejlsberg 8f3a91724e Accept new baselines 2019-08-27 16:29:50 -04:00
Anders Hejlsberg c2d0aa8931 Only defer aliased array and tuple types 2019-08-27 16:18:20 -04:00
Anders Hejlsberg b18c70f8c0 Fix fourslash test 2019-08-27 07:23:52 -04:00
Anders Hejlsberg bf0debb883 Handle missing global array type 2019-08-27 07:16:51 -04:00
Anders Hejlsberg 5c21f43121 Accept new baselines 2019-08-27 06:51:47 -04:00
Anders Hejlsberg 5310fd0156 Minor fixes 2019-08-27 06:51:21 -04:00
Anders Hejlsberg 7753f7b7e6 Merge branch 'master' into recursiveTypeReferences
# Conflicts:
#	src/compiler/checker.ts
2019-08-26 15:35:33 -04:00
Anders Hejlsberg dd47fffe8f Properly handle recursive array and tuple types in printback 2019-08-26 11:00:20 -04:00
Anders Hejlsberg 52a1a14331 Instantiate deferred type references like anonymous types 2019-08-26 07:08:37 -04:00
Anders Hejlsberg b24fcd0bc5 Recursive tuple types + fix instantiation of recursive type references 2019-08-24 08:54:59 -04:00
Anders Hejlsberg 643351ca2d Support deferred resolution of type arguments in type references 2019-08-23 09:54:55 -04:00
Anders Hejlsberg 2c36249ed6 Accept new API baselines 2019-08-17 07:07:27 -07:00
Anders Hejlsberg e7cbfc41e5 Update API to be backwards compatible 2019-08-17 07:05:49 -07:00
Anders Hejlsberg 0599f84857 Support 'asserts this' and 'asserts this is T' type predicates 2019-08-17 06:23:07 -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
Anders Hejlsberg af7ccf954a Accept new baselines 2019-08-16 07:45:08 -07:00
Anders Hejlsberg c816cf2562 Add additional test 2019-08-16 07:45:02 -07:00
Anders Hejlsberg ac2f151412 Accept new API baselines 2019-08-16 07:33:55 -07:00
Anders Hejlsberg abc61a0949 Add InferencePriority.Circularity per CR feedback 2019-08-15 18:08:01 -07:00
Anders Hejlsberg 86d9153374 Accept new API baselines 2019-08-15 10:21:01 -07:00
Anders Hejlsberg 6d46850172 Accept new baselines 2019-08-15 10:02:39 -07:00
Anders Hejlsberg f929a25407 Add regression test 2019-08-15 10:02:32 -07:00
Anders Hejlsberg a81ce061de Stricter criteria for eliminating types in unions during inference 2019-08-15 08:55:50 -07:00
Anders Hejlsberg 9791f1d28f Merge branch 'master' into assertionsInControlFlow
# Conflicts:
#	tests/baselines/reference/api/tsserverlibrary.d.ts
#	tests/baselines/reference/api/typescript.d.ts
2019-08-10 08:50:42 +02:00
Anders Hejlsberg cdeddf14e9 Call getResolvedSignature only when needed for generics or overloads 2019-08-10 08:38:18 +02:00
Anders Hejlsberg 259ba77346 Merge branch 'master' into assertionsInControlFlow 2019-08-09 18:33:15 +02:00
Anders Hejlsberg 83212e7240 Accept API baseline changes 2019-08-09 12:35:48 +02:00
Anders Hejlsberg 19f1d3ba0a Less aggressive monomorphism for flow nodes 2019-08-09 12:35:28 +02:00
Anders Hejlsberg d5e08d485d Accept baseline API changes 2019-08-09 10:16:16 +02:00
Anders Hejlsberg 99ab53edcd Make flow nodes more monomorphic 2019-08-09 10:15:47 +02:00
Anders Hejlsberg df02ad6e59 Reflect control flow effects of calls to never-returning functions 2019-08-08 10:48:45 +02:00