Jack Williams
0d79831ead
Add typeof-for-switch
...
Initial draft that works for union types
First draft of PR ready code with tests
Revert changed line for testing
Add exhaustiveness checking and move narrowByTypeOfWitnesses
Try caching mechanism
Comment out exhaustiveness checking to find perf regression
Re-enable exhaustiveness checking for typeof switches
Check if changes to narrowByTypeOfWitnesses fix perf alone.
Improve switch narrowing:
+ Take into account repeated clauses in the switch.
+ Handle unions of constrained type parameters.
Add more tests
Comments
Revert back to if-like behaviour
Remove redundant checks and simplify exhaustiveness checks
Change comment for narrowBySwitchOnTypeOf
Reduce implied type with getAssignmentReducedType
Remove any annotations
2018-04-18 23:17:36 +01:00
..
2018-03-28 10:59:09 -07:00
2018-04-10 18:17:57 -07:00
2018-01-08 16:36:23 -08:00
2018-01-08 16:36:23 -08:00
2018-03-27 19:28:58 -07:00
2018-03-29 13:34:07 -07:00
2018-01-09 17:11:57 -08:00
2018-02-02 13:20:40 -08:00
2017-12-05 14:37:51 +09:00
2018-03-02 17:23:59 -08:00
2018-01-09 10:20:07 -08:00
2018-02-01 12:34:16 -08:00
2017-12-22 11:41:39 -08:00
2018-04-04 15:43:41 -07:00
2018-04-05 08:52:56 -07:00
2018-01-08 13:55:50 -08:00
2017-12-05 21:18:31 -08:00
2018-04-03 16:08:52 -07:00
2017-12-29 12:30:18 -08:00
2018-03-30 17:43:37 -07:00
2018-03-30 17:43:37 -07:00
2018-03-30 17:43:37 -07:00
2018-03-30 17:43:37 -07:00
2018-02-05 13:56:22 -08:00
2017-11-29 16:36:17 -08:00
2017-12-04 14:32:25 -08:00
2018-02-12 10:57:59 -08:00
2018-01-05 12:34:01 -08:00
2017-12-11 18:03:38 -05:00
2018-03-21 14:22:09 -07:00
2018-03-02 17:23:59 -08:00
2018-02-02 00:30:03 -08:00
2017-12-13 14:01:23 -08:00
2018-03-02 16:10:34 -08:00
2018-03-29 13:43:31 -07:00
2018-03-29 15:38:29 -07:00
2018-03-29 13:51:52 -07:00
2018-03-22 15:02:54 -07:00
2018-03-29 15:38:29 -07:00
2018-03-30 16:07:09 -07:00
2018-03-29 13:42:26 -07:00
2018-04-09 14:30:40 -07:00
2018-04-09 14:30:40 -07:00
2018-03-29 13:38:36 -07:00
2018-03-29 16:15:55 -07:00
2018-01-16 12:37:15 -08:00
2018-03-26 12:15:34 -07:00
2018-03-26 12:15:34 -07:00
2018-03-26 12:15:34 -07:00
2018-03-26 12:15:34 -07:00
2018-03-26 12:15:34 -07:00
2018-03-26 12:15:34 -07:00
2018-02-05 14:48:50 -08:00
2018-02-05 14:48:50 -08:00
2018-02-05 14:48:50 -08:00
2018-02-01 12:34:25 -08:00
2018-02-01 12:34:25 -08:00
2018-02-01 12:34:25 -08:00
2018-04-04 15:26:10 -07:00
2018-02-26 12:43:31 -08:00
2018-01-19 16:06:42 -08:00
2017-11-21 15:06:27 -08:00
2018-04-10 18:21:24 -07:00
2018-01-08 13:13:23 -08:00
2018-03-23 09:48:00 -07:00
2018-02-12 13:38:08 -08:00
2018-01-17 11:14:03 -08:00
2018-01-17 11:14:03 -08:00
2017-12-22 14:39:25 -08:00
2018-03-02 17:23:59 -08:00
2018-03-02 17:23:59 -08:00
2018-01-08 13:58:34 -08:00
2017-11-29 15:49:58 -08:00
2017-11-29 17:48:58 -08:00
2018-03-27 15:16:56 -07:00
2018-01-08 16:36:23 -08:00
2018-03-26 16:35:03 -07:00
2018-01-08 16:36:23 -08:00
2018-01-08 16:36:23 -08:00
2018-03-29 11:03:33 -07:00
2018-02-01 15:38:18 -08:00
2018-02-02 13:17:39 -08:00
2018-02-02 10:11:50 -08:00
2018-01-18 15:11:29 -08:00
2018-03-29 11:01:05 -07:00
2018-04-03 12:27:16 -07:00
2018-03-29 13:54:12 -07:00
2018-03-16 12:57:38 -07:00
2018-04-03 13:32:42 -07:00
2018-03-02 17:23:59 -08:00
2017-12-01 16:54:32 -08:00
2018-04-04 15:43:41 -07:00
2018-03-27 17:37:19 +08:00
2017-12-12 07:50:11 -08:00
2018-03-30 16:23:24 -07:00
2018-03-02 17:23:59 -08:00
2017-12-21 13:07:29 -08:00
2017-12-11 13:32:16 -05:00
2018-03-02 17:23:59 -08:00
2018-01-10 15:40:37 -08:00
2017-12-21 14:47:03 -08:00
2018-01-12 14:43:31 -08:00
2017-12-19 21:29:03 +00:00
2018-03-27 07:45:25 -07:00
2018-02-28 15:44:12 -08:00
2018-01-18 08:44:57 -08:00
2018-02-28 16:03:05 -08:00
2018-01-08 12:27:11 -08:00
2017-11-27 23:16:21 -08:00
2017-12-06 00:02:36 +03:00
2017-11-28 15:05:06 -08:00
2018-01-17 15:20:09 -08:00
2018-03-21 11:13:39 -07:00
2017-11-21 21:36:08 -05:00
2018-02-14 10:12:38 -08:00
2018-04-03 16:10:09 -07:00
2017-12-01 21:09:06 -05:00
2017-12-01 21:09:06 -05:00
2018-03-05 14:38:55 -08:00
2018-01-17 15:20:09 -08:00
2018-02-05 16:33:39 -08:00
2018-02-05 16:33:39 -08:00
2018-02-12 10:34:17 -08:00
2018-01-09 17:22:19 -08:00
2017-11-29 17:08:51 -08:00
2017-11-29 17:08:51 -08:00
2017-12-15 16:13:28 -08:00
2018-04-04 18:03:21 -07:00
2018-03-02 17:23:59 -08:00
2018-03-05 13:58:19 -08:00
2017-12-13 11:03:37 -08:00
2018-03-08 13:35:55 -08:00
2018-03-05 13:19:00 -08:00
2018-02-27 16:12:03 -08:00
2018-01-03 15:54:43 -08:00
2017-12-28 19:00:54 -08:00
2018-02-02 18:44:54 -08:00
2018-01-24 12:37:45 -08:00
2018-01-30 11:09:48 -08:00
2018-03-30 17:43:37 -07:00
2018-02-22 22:56:00 -08:00
2017-12-22 14:39:25 -08:00
2017-11-21 15:06:27 -08:00
2018-01-30 15:02:20 -08:00
2018-04-18 23:17:36 +01:00
2017-12-11 18:03:38 -05:00
2017-12-01 19:51:14 -08:00
2018-03-06 10:46:43 +00:00
2018-04-05 21:39:33 +02:00
2018-04-05 21:39:33 +02:00
2018-04-05 21:39:33 +02:00
2018-02-21 12:51:26 -08:00
2018-03-07 17:36:31 -08:00
2018-01-09 09:53:39 -08:00
2018-02-15 09:30:58 -08:00
2018-02-16 16:47:13 -08:00
2018-01-08 16:44:58 -08:00
2018-02-15 09:30:58 -08:00
2018-01-08 17:25:56 -08:00
2018-01-18 10:57:35 -08:00
2018-02-12 11:09:50 -08:00
2018-01-22 21:45:37 +01:00
2018-03-17 12:23:45 -07:00
2017-11-22 10:50:49 -08:00
2018-03-02 17:23:59 -08:00
2018-01-08 10:38:55 -08:00
2017-12-11 09:45:36 -08:00
2018-02-07 12:54:37 -08:00
2018-02-07 12:54:37 -08:00
2018-03-02 17:23:59 -08:00
2018-01-18 17:28:37 -08:00
2018-03-26 13:02:09 -07:00
2018-03-22 14:27:34 -07:00
2018-01-11 16:45:44 -08:00
2018-03-30 00:00:18 +05:30
2018-01-10 01:46:36 +00:00
2018-03-05 14:52:06 -08:00
2018-01-12 18:24:02 -08:00
2018-01-12 18:24:02 -08:00
2018-01-12 18:24:02 -08:00
2018-03-02 17:23:59 -08:00
2018-03-29 12:46:31 -07:00
2018-03-29 12:50:29 -07:00
2018-01-12 18:24:41 -08:00
2018-03-06 10:46:16 +00:00
2018-01-16 15:17:04 -08:00
2018-04-10 20:50:31 -07:00
2018-01-16 11:27:20 -08:00
2018-03-02 17:23:59 -08:00
2017-12-15 15:50:22 -08:00
2018-03-22 15:16:33 -07:00
2018-03-29 12:36:42 -07:00
2018-03-29 16:19:55 -07:00
2018-03-23 17:41:55 -07:00
2018-02-03 14:45:16 -08:00
2018-02-28 15:43:13 -08:00
2017-12-05 08:32:34 -08:00
2017-12-05 08:32:34 -08:00
2017-12-05 08:32:34 -08:00
2017-12-05 08:32:34 -08:00
2017-12-05 08:32:34 -08:00
2018-03-30 17:43:37 -07:00
2017-12-19 19:58:28 -08:00
2018-03-08 09:30:25 -08:00
2018-01-05 09:10:58 -08:00
2018-03-07 14:42:09 -08:00
2018-03-29 13:12:23 -07:00
2018-01-22 12:59:53 -08:00
2018-01-05 09:10:58 -08:00
2018-01-05 09:10:58 -08:00
2018-01-25 16:18:35 -08:00
2018-01-25 16:18:35 -08:00
2018-01-25 16:18:35 -08:00
2018-04-09 14:30:40 -07:00
2018-03-02 17:23:59 -08:00
2018-03-02 17:23:59 -08:00
2018-03-02 17:23:59 -08:00
2018-03-08 15:41:04 -08:00
2018-03-02 17:23:59 -08:00