Hamish Knight
7a137d6756
[CS] Allow ExprPatterns to be type-checked in the solver
...
Previously we would wait until CSApply, which
would trigger their type-checking in
`coercePatternToType`. This caused a number of
bugs, and hampered solver-based completion, which
does not run CSApply. Instead, form a conjunction
of all the ExprPatterns present, which preserves
some of the previous isolation behavior (though
does not provide complete isolation).
We can then modify `coercePatternToType` to accept
a closure, which allows the solver to take over
rewriting the ExprPatterns it has already solved.
This then sets the stage for the complete removal
of `coercePatternToType`, and doing all pattern
type-checking in the solver.
2023-06-07 00:35:01 +01:00
..
2023-04-27 13:33:24 -07:00
2023-05-18 11:36:47 -07:00
2022-04-22 19:18:38 -07:00
2022-09-22 03:21:39 +03:00
2021-09-24 11:49:12 -07:00
2020-11-06 12:06:00 -08:00
2020-04-16 10:17:16 -07:00
2020-04-16 10:17:16 -07:00
2021-01-08 22:57:36 -08:00
2022-07-28 13:59:44 -07:00
2023-05-03 09:41:09 -07:00
2022-09-22 03:21:39 +03:00
2022-02-08 12:31:49 -08:00
2022-02-08 12:31:49 -08:00
2023-04-11 16:43:06 -07:00
2021-09-29 16:25:38 +01:00
2023-05-09 13:10:10 -05:00
2021-01-14 13:33:30 -08:00
2021-10-28 14:36:36 -07:00
2022-09-22 03:21:39 +03:00
2021-09-12 18:54:53 -07:00
2021-06-07 12:04:31 -07:00
2021-09-29 16:25:38 +01:00
2021-10-31 15:00:58 -07:00
2020-07-02 16:27:46 -07:00
2021-02-04 11:16:12 -05:00
2020-08-07 00:26:07 -07:00
2023-05-24 23:07:17 -04:00
2021-10-31 15:00:58 -07:00
2022-12-03 10:41:56 -05:00
2023-06-01 12:54:19 -04:00
2022-04-22 19:18:38 -07:00
2022-01-12 14:24:50 +00:00
2023-01-16 09:58:23 +01:00
2021-04-20 14:59:04 -07:00
2023-05-03 08:55:28 -04:00
2022-07-06 11:51:16 -07:00
2022-07-06 11:51:16 -07:00
2022-10-18 11:25:10 -07:00
2022-07-06 11:51:16 -07:00
2022-01-05 15:12:02 -08:00
2022-01-05 15:12:02 -08:00
2022-01-05 15:12:02 -08:00
2022-09-22 03:21:39 +03:00
2021-09-29 16:25:38 +01:00
2021-09-12 18:54:53 -07:00
2022-09-22 03:21:39 +03:00
2022-09-22 03:21:39 +03:00
2021-09-29 16:25:38 +01:00
2023-04-24 17:15:28 -07:00
2020-11-06 10:42:25 -08:00
2021-11-02 10:05:33 -07:00
2022-09-22 03:21:39 +03:00
2022-04-22 19:18:38 -07:00
2023-03-03 17:25:22 -08:00
2020-05-29 14:02:25 -07:00
2020-10-26 16:32:36 -07:00
2021-03-02 22:20:13 -08:00
2022-02-09 05:41:04 -08:00
2022-01-12 14:24:50 +00:00
2023-02-20 14:18:31 -08:00
2022-09-22 03:21:39 +03:00
2021-09-29 16:25:38 +01:00
2023-04-05 08:15:27 -07:00
2021-04-13 15:42:33 -07:00
2023-05-09 13:10:10 -05:00
2022-04-22 19:18:38 -07:00
2021-02-08 12:17:16 -08:00
2021-04-01 13:16:16 -04:00
2022-12-14 10:02:14 -08:00
2023-03-15 17:00:24 -07:00
2020-07-14 18:55:41 -07:00
2021-04-13 15:42:33 -07:00
2022-04-13 14:01:30 -07:00
2021-10-31 15:00:58 -07:00
2022-09-22 03:21:39 +03:00
2021-09-29 16:25:38 +01:00
2021-10-31 15:00:58 -07:00
2022-04-22 19:18:38 -07:00
2022-02-14 03:02:04 +05:30
2021-09-12 18:54:53 -07:00
2021-09-12 18:54:53 -07:00
2021-09-12 18:54:53 -07:00
2021-09-12 18:54:53 -07:00
2021-09-12 18:54:53 -07:00
2023-01-16 09:58:23 +01:00
2023-01-16 09:58:23 +01:00
2021-09-12 18:54:53 -07:00
2023-04-27 13:33:24 -07:00
2021-09-12 18:54:53 -07:00
2023-01-16 01:15:39 -08:00
2021-09-12 18:54:53 -07:00
2021-09-12 18:54:53 -07:00
2021-04-20 16:39:16 -04:00
2022-02-18 21:54:02 -08:00
2022-09-22 03:21:39 +03:00
2022-02-09 05:41:04 -08:00
2020-08-28 20:50:47 -07:00
2021-09-15 12:36:17 -07:00
2022-06-28 22:36:14 +03:00
2021-09-12 18:54:53 -07:00
2022-01-12 14:24:50 +00:00
2022-07-08 08:44:18 -07:00
2022-07-08 08:44:18 -07:00
2023-04-27 13:33:24 -07:00
2023-01-11 15:11:11 -08:00
2021-09-12 18:54:53 -07:00
2021-09-29 16:25:38 +01:00
2021-03-02 18:13:04 +00:00
2022-06-09 14:35:41 +05:30
2022-09-22 03:21:39 +03:00
2022-02-06 07:47:57 -08:00
2022-04-13 14:01:30 -07:00
2022-04-13 14:01:30 -07:00
2021-06-07 12:04:31 -07:00
2022-02-09 05:41:04 -08:00
2023-04-27 13:33:24 -07:00
2022-02-09 05:41:04 -08:00
2022-02-09 05:41:04 -08:00
2022-01-12 14:24:50 +00:00
2022-09-22 03:21:39 +03:00
2023-01-30 17:17:16 -08:00
2022-09-22 03:21:39 +03:00
2022-04-05 14:43:03 -06:00
2023-04-27 13:33:24 -07:00
2021-09-12 18:54:53 -07:00
2020-10-14 23:42:02 -04:00
2022-09-22 03:21:39 +03:00
2023-04-27 13:33:24 -07:00
2021-09-12 18:54:53 -07:00
2023-06-07 00:35:01 +01:00
2022-05-17 19:25:10 -07:00
2023-01-06 13:13:03 -08:00
2022-09-22 03:21:39 +03:00
2022-05-17 19:25:10 -07:00
2022-02-08 12:31:49 -08:00
2020-05-28 14:10:40 -07:00
2022-04-22 19:18:38 -07:00
2023-04-15 00:31:27 +01:00
2023-02-15 08:20:48 +01:00
2021-06-07 12:04:31 -07:00
2022-04-22 19:18:38 -07:00
2022-01-12 14:24:50 +00:00
2022-09-22 03:21:39 +03:00
2022-02-08 12:31:49 -08:00
2021-12-21 17:47:54 -08:00
2021-12-21 17:47:54 -08:00
2021-10-31 15:00:58 -07:00
2021-09-12 18:54:53 -07:00
2023-05-09 14:11:38 -07:00
2022-02-08 12:31:49 -08:00
2023-02-16 21:43:53 -08:00
2023-04-27 13:33:24 -07:00
2021-12-02 11:12:07 -08:00
2022-09-22 03:21:39 +03:00
2023-01-25 09:37:16 +00:00
2023-01-12 15:05:44 -08:00
2021-10-31 15:00:58 -07:00
2022-09-22 03:21:39 +03:00
2022-09-22 03:21:39 +03:00