Module rustc_infer::traits::util
source · Structs§
- “Elaboration” is the process of identifying all the predicates that are implied by a source predicate. Currently, this basically means walking the “supertraits” and other similar assumptions. For example, if we know that
T: Ord, the elaborator would deduce thatT: PartialOrdholds as well. Similarly, if we havetrait Foo: 'static, and we know thatT: Foo, then we know thatT: 'static. - A filter around an iterator of predicates that makes it yield up just trait references.
Enums§
- Filter 🔒
Traits§
- Describes how to elaborate an obligation into a sub-obligation.
Functions§
- A specialized variant of
elaboratethat only elaborates trait references that may define the given associated item with the nameassoc_name. It uses thesuper_predicates_that_define_assoc_itemquery to avoid enumerating super-predicates that aren’t related toassoc_item. This is used when resolving types likeSelf::ItemorT::Itemand helps to avoid cycle errors (see e.g. #35237).