Zahary Karadjov
8cd5f1f8f5
introduce tyInferred for the unbound concept type params
...
* Why is tyInferred needed?
The bindings in TCandidate are capable of inferring types within a single
call expression. In concepts, we need to infer types in the same way, but
across the whole body of the concept.
Previously, once a concept type param was inferred, it was destructively
mutated using t.assignType, but this proved to be problematic in the presence
of overloads, because the bindings established while a non-matching overload
is tested must be reverted/forgotten. tyInferred offers a non-destructive way to
keep track of the inference progress.
While introducing new types usually requires a lot of code paths in the compiler
to updated, currently tyInferred is only a short-lived type within the concept body
pass and it's unlikely to introduce breakage elsewhere in the compiler.
2017-03-24 16:58:15 +02:00
..
2017-02-22 17:33:12 +01:00
2017-02-22 16:27:52 +01:00
2016-11-14 23:18:30 +01:00
2017-03-24 16:58:15 +02:00
2017-03-23 12:40:57 +01:00
2015-09-04 23:03:22 +02:00
2016-11-14 23:18:30 +01:00
2017-02-26 17:41:00 +01:00
2017-02-26 17:41:00 +01:00
2016-12-01 10:06:41 +01:00
2017-02-26 17:41:00 +01:00
2017-02-14 14:39:53 +01:00
2017-03-06 18:25:27 +01:00
2017-03-24 16:58:15 +02:00
2017-03-24 16:58:15 +02:00
2017-03-23 16:43:21 +01:00
2017-02-22 17:33:12 +01:00
2017-02-26 00:32:07 +01:00
2017-03-18 13:59:35 +01:00
2017-03-16 14:47:53 +01:00
2017-01-07 22:35:09 +01:00
2017-01-06 13:11:17 +01:00
2017-02-22 16:27:52 +01:00
2017-02-03 17:36:39 +01:00
2016-11-14 23:18:30 +01:00
2017-03-12 09:33:49 +01:00
2017-03-23 13:27:16 +01:00
2016-10-31 15:34:44 +01:00
2016-10-31 15:34:44 +01:00
2015-09-04 23:03:22 +02:00
2017-03-18 20:57:45 +01:00
2017-02-26 00:32:07 +01:00
2016-10-31 19:47:20 +01:00
2016-08-09 22:54:27 +08:00
2017-02-08 23:04:20 +01:00
2017-03-16 14:47:53 +01:00
2017-03-24 16:58:15 +02:00
2017-03-15 10:33:37 +01:00
2017-02-22 17:33:12 +01:00
2017-03-14 10:28:50 +01:00
2017-02-22 17:33:12 +01:00
2015-06-21 10:04:26 +02:00
2017-02-22 16:27:52 +01:00
2016-12-05 23:37:01 +01:00
2016-11-01 07:16:07 +01:00
2017-03-23 21:29:10 +01:00
2017-02-22 16:27:52 +01:00
2017-01-17 16:58:50 +01:00
2017-03-14 10:18:20 +01:00
2017-02-03 09:49:36 +01:00
2016-11-28 23:02:30 +00:00
2017-02-01 23:39:40 +01:00
2017-02-22 17:33:12 +01:00
2017-02-01 23:39:40 +01:00
2017-02-22 17:33:12 +01:00
2015-09-04 23:03:22 +02:00
2016-07-30 16:34:42 +02:00
2015-06-04 07:33:27 +02:00
2016-11-02 08:39:51 +01:00
2017-03-14 12:28:15 +01:00
2017-01-07 22:35:09 +01:00
2017-03-24 16:58:15 +02:00
2017-03-24 16:58:15 +02:00
2017-02-22 16:27:52 +01:00
2017-02-24 01:28:50 +01:00
2017-02-22 16:27:52 +01:00
2017-01-07 22:35:09 +01:00
2017-03-16 14:47:53 +01:00
2015-12-04 23:43:03 +01:00
2017-03-14 15:55:23 +01:00
2017-03-20 10:56:15 +01:00
2016-12-30 01:43:26 +01:00
2014-08-28 09:38:14 +02:00
2017-03-07 00:27:47 +01:00
2016-10-31 19:47:20 +01:00
2016-07-30 16:34:42 +02:00
2017-02-22 16:27:52 +01:00
2016-08-26 18:00:12 +02:00
2015-09-04 23:03:22 +02:00
2017-02-22 17:33:12 +01:00
2017-03-14 10:18:20 +01:00
2017-03-24 16:58:15 +02:00
2017-03-20 10:56:15 +01:00
2017-03-24 16:58:15 +02:00
2017-02-22 16:27:52 +01:00
2017-03-24 16:58:15 +02:00
2017-02-26 00:32:07 +01:00
2017-02-22 17:33:12 +01:00
2017-03-24 07:35:12 +01:00
2017-03-23 12:40:57 +01:00
2016-11-14 23:18:30 +01:00
2017-02-22 16:27:52 +01:00
2016-07-30 16:34:42 +02:00
2017-03-19 20:33:21 +01:00
2017-03-24 16:58:15 +02:00
2017-03-06 18:38:15 +01:00
2017-03-24 16:58:15 +02:00
2017-03-24 16:58:15 +02:00
2016-10-31 19:47:20 +01:00
2017-01-16 23:04:53 +01:00
2017-03-24 16:58:15 +02:00
2017-03-14 11:21:35 +01:00
2016-10-31 15:34:44 +01:00
2015-11-03 14:52:36 +01:00
2014-08-11 20:38:28 +02:00
2017-03-09 11:30:36 +01:00
2017-02-16 23:20:01 +01:00
2015-09-04 23:03:22 +02:00
2017-03-24 16:58:15 +02:00
2016-10-20 21:40:04 +02:00
2017-02-22 16:27:52 +01:00
2017-01-07 02:38:26 +01:00
2017-03-24 16:58:15 +02:00
2017-02-05 09:41:47 +01:00
2016-07-29 23:51:01 +02:00
2016-11-14 23:18:30 +01:00
2017-01-07 02:38:26 +01:00
2017-02-17 18:03:56 +01:00
2016-12-10 02:27:41 +01:00