|
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