diff --git a/src/traits/canonical-queries.md b/src/traits/canonical-queries.md index cbf7d880d..e15bdaae2 100644 --- a/src/traits/canonical-queries.md +++ b/src/traits/canonical-queries.md @@ -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` and -`B = ?U`.Therefore, the where clause on `foo` requires that `Vec: +`B = ?U`. Therefore, the where clause on `foo` requires that `Vec: Borrow`. This is thus our first example trait query. There are many possible solutions to the query `Vec: Borrow`; diff --git a/src/traits/canonicalization.md b/src/traits/canonicalization.md index ca81d6fd1..d6d57d785 100644 --- a/src/traits/canonicalization.md +++ b/src/traits/canonicalization.md @@ -177,8 +177,8 @@ The result would be as follows: ```text Canonical(QR) = for { certainty: Proven, - var_values: [Vec, '?1, ?2] - region_constraints: [?2: '?1], + var_values: [Vec, '?1, ?0] + region_constraints: [?0: '?1], value: (), } ``` @@ -213,8 +213,8 @@ and now we got back a canonical response: ```text for { certainty: Proven, - var_values: [Vec, '?1, ?2] - region_constraints: [?2: '?1], + var_values: [Vec, '?1, ?0] + region_constraints: [?0: '?1], value: (), } ``` @@ -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.)