@@ -19,18 +19,18 @@ Trait solving is based around a few key ideas:
19
19
describes the precise form of rules we use, and
20
20
[ lowering rules] ( ./lowering-rules.html ) gives the complete set of
21
21
lowering rules in a more reference-like form.
22
+ - [ Lazy normalization] ( ./associated-types.html ) , which is the
23
+ technique we use to accommodate associated types when figuring out
24
+ whether types are equal.
25
+ - [ Region constraints] ( ./regions.html ) , which are accumulated
26
+ during trait solving but mostly ignored. This means that trait
27
+ solving effectively ignores the precise regions involved, always –
28
+ but we still remember the constraints on them so that those
29
+ constraints can be checked by the type checker.
22
30
- [ Canonical queries] ( ./canonical-queries.html ) , which allow us
23
31
to solve trait problems (like "is ` Foo ` implemented for the type
24
32
` Bar ` ?") once, and then apply that same result independently in many
25
33
different inference contexts.
26
- - [ Lazy normalization] ( ./associated-types.html ) , which is the
27
- technique we use to accommodate associated types when figuring out
28
- whether types are equal.
29
- - [ Region constraints] ( ./regions.html ) , which are accumulated
30
- during trait solving but mostly ignored. This means that trait
31
- solving effectively ignores the precise regions involved, always –
32
- but we still remember the constraints on them so that those
33
- constraints can be checked by thet type checker.
34
34
35
35
Note: this is not a complete list of topics. See the sidebar for more.
36
36
0 commit comments