Files
Nim/compiler
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-03-06 18:25:27 +01:00
2017-03-23 16:43:21 +01:00
2017-02-26 00:32:07 +01:00
2017-03-18 13:59:35 +01:00
2017-01-07 22:35:09 +01:00
2017-01-06 13:11:17 +01:00
2016-10-31 15:34:44 +01:00
2016-10-31 15:34:44 +01:00
2017-02-26 00:32:07 +01:00
2016-08-09 22:54:27 +08:00
2017-02-08 23:04:20 +01:00
2016-11-01 07:16:07 +01:00
2017-03-23 21:29:10 +01:00
2016-11-02 08:39:51 +01:00
2017-01-07 22:35:09 +01:00
2017-01-07 22:35:09 +01:00
2015-12-04 23:43:03 +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
2017-03-20 10:56:15 +01:00
2017-02-26 00:32:07 +01:00
2017-03-19 20:33:21 +01:00
2017-03-06 18:38:15 +01:00
2017-01-16 23:04:53 +01:00
2016-10-31 15:34:44 +01:00
2015-11-03 14:52:36 +01:00
2017-03-09 11:30:36 +01:00
2016-10-20 21:40:04 +02:00
2017-02-05 09:41:47 +01:00

This directory contains the Nim compiler written in Nim. Note that this
code has been translated from a bootstrapping version written in Pascal, so
the code is **not** a poster child of good Nim code.