rust/src/librustc_traits
Niko Matsakis 90ea49b891 introduce `predicates_defined_on` for traits
This new query returns only the predicates *directly defined* on an
item (in contrast to the more common `predicates_of`, which returns
the predicates that must be proven to reference an item). These two
sets are almost always identical except for traits, where
`predicates_of` includes an artificial `Self: Trait<...>` predicate
(basically saying that you cannot use a trait item without proving
that the trait is implemented for the type parameters).

This new query is only used in chalk lowering, where this artificial
`Self: Trait` predicate is problematic. We encode it in metadata but
only where needed since it is kind of repetitive with existing
information.

Co-authored-by: Tyler Mandry <tmandry@gmail.com>
2018-07-02 11:33:24 -04:00
..
Cargo.toml implement the chalk traits, albeit with many placeholders 2018-05-24 12:01:27 -04:00
chalk_context.rs remove `Canonicalization` trait, which serves no purpose 2018-06-26 10:59:38 -04:00
dropck_outlives.rs change the `enter_canonical_trait_query` method to give a fulfill cx 2018-06-27 16:04:32 -04:00
evaluate_obligation.rs move into `provide` methods 2018-06-27 09:42:21 -04:00
lib.rs move into `provide` methods 2018-06-27 09:42:21 -04:00
lowering.rs introduce `predicates_defined_on` for traits 2018-07-02 11:33:24 -04:00
normalize_erasing_regions.rs move into `provide` methods 2018-06-27 09:42:21 -04:00
normalize_projection_ty.rs change the `enter_canonical_trait_query` method to give a fulfill cx 2018-06-27 16:04:32 -04:00
type_op.rs rustfmt various files 2018-06-27 16:30:38 -04:00