Merge pull request #304 from rasendubi/fix-canonicalization

[canonicalization] fix result canonicalization example
This commit is contained in:
Niko Matsakis 2019-05-04 07:01:32 -04:00 committed by GitHub
commit c7b38b9259
2 changed files with 6 additions and 6 deletions

View File

@ -177,8 +177,8 @@ The result would be as follows:
```text ```text
Canonical(QR) = for<T, L> { Canonical(QR) = for<T, L> {
certainty: Proven, certainty: Proven,
var_values: [Vec<?0>, '?1, ?2] var_values: [Vec<?0>, '?1, ?0]
region_constraints: [?2: '?1], region_constraints: [?0: '?1],
value: (), value: (),
} }
``` ```
@ -213,8 +213,8 @@ and now we got back a canonical response:
```text ```text
for<T, L> { for<T, L> {
certainty: Proven, certainty: Proven,
var_values: [Vec<?0>, '?1, ?2] var_values: [Vec<?0>, '?1, ?0]
region_constraints: [?2: '?1], region_constraints: [?0: '?1],
value: (), value: (),
} }
``` ```
@ -250,7 +250,7 @@ for later verification.
than eagerly instantiating all of the canonical values in the result than eagerly instantiating all of the canonical values in the result
with variables, we instead walk the vector of values, looking for with variables, we instead walk the vector of values, looking for
cases where the value is just a canonical variable. In our example, cases where the value is just a canonical variable. In our example,
`values[2]` is `?C`, so that means we can deduce that `?C := ?B and `values[2]` is `?C`, so that means we can deduce that `?C := ?B` and
`'?D := 'static`. This gives us a partial set of values. Anything for `'?D := 'static`. This gives us a partial set of values. Anything for
which we do not find a value, we create an inference variable.) which we do not find a value, we create an inference variable.)