Skip to content

Commit

Permalink
Merge pull request #304 from rasendubi/fix-canonicalization
Browse files Browse the repository at this point in the history
[canonicalization] fix result canonicalization example
  • Loading branch information
nikomatsakis committed May 4, 2019
2 parents 2b8280f + a0ab5fa commit 37e4af3
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/traits/canonical-queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ variables have unbound inference variables in their type: `?T`
represents the elements in the vector `t` and `?U` represents the
value stored in the option `u`. Next, we invoke `foo`; comparing the
signature of `foo` to its arguments, we wind up with `A = Vec<?T>` and
`B = ?U`.Therefore, the where clause on `foo` requires that `Vec<?T>:
`B = ?U`. Therefore, the where clause on `foo` requires that `Vec<?T>:
Borrow<?U>`. This is thus our first example trait query.

There are many possible solutions to the query `Vec<?T>: Borrow<?U>`;
Expand Down
10 changes: 5 additions & 5 deletions src/traits/canonicalization.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,8 +177,8 @@ The result would be as follows:
```text
Canonical(QR) = for<T, L> {
certainty: Proven,
var_values: [Vec<?0>, '?1, ?2]
region_constraints: [?2: '?1],
var_values: [Vec<?0>, '?1, ?0]
region_constraints: [?0: '?1],
value: (),
}
```
Expand Down Expand Up @@ -213,8 +213,8 @@ and now we got back a canonical response:
```text
for<T, L> {
certainty: Proven,
var_values: [Vec<?0>, '?1, ?2]
region_constraints: [?2: '?1],
var_values: [Vec<?0>, '?1, ?0]
region_constraints: [?0: '?1],
value: (),
}
```
Expand Down Expand Up @@ -250,7 +250,7 @@ for later verification.
than eagerly instantiating all of the canonical values in the result
with variables, we instead walk the vector of values, looking for
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
which we do not find a value, we create an inference variable.)

0 comments on commit 37e4af3

Please sign in to comment.