|
16 | 16 | //! Here are the key differences: |
17 | 17 | //! |
18 | 18 | //! - This code may choose to bypass some checks (e.g. the occurs check) |
19 | | -//! in case we know that there are no unbound type inference variables. |
20 | | -//! This is the case for NLL, because at NLL time types are fully inferred |
21 | | -//! up-to regions. |
| 19 | +//! in the case where we know that there are no unbound type inference |
| 20 | +//! variables. This is the case for NLL, because at NLL time types are fully |
| 21 | +//! inferred up-to regions. |
22 | 22 | //! - This code uses "universes" to handle higher-ranked regions and |
23 | 23 | //! not the leak-check. This is "more correct" than what rustc does |
24 | 24 | //! and we are generally migrating in this direction, but NLL had to |
25 | 25 | //! get there first. |
26 | 26 | //! |
27 | | -//! Also, this code assumes that there are no bound type vars at all, not even |
| 27 | +//! Also, this code assumes that there are no bound types at all, not even |
28 | 28 | //! free ones. This is ok because: |
29 | 29 | //! - we are not relating anything quantified over some type variable |
30 | 30 | //! - we will have instantiated all the bound type vars already (the one |
@@ -265,7 +265,7 @@ where |
265 | 265 | } |
266 | 266 |
|
267 | 267 | /// Relate a projection type and some value type lazily. This will always |
268 | | - /// succeed, but we are pushing an additional `ProjectionEq` goal depending |
| 268 | + /// succeed, but we push an additional `ProjectionEq` goal depending |
269 | 269 | /// on the value type: |
270 | 270 | /// - if the value type is any type `T` which is not a projection, we push |
271 | 271 | /// `ProjectionEq(projection = T)`. |
|
0 commit comments