Module rustc_trait_selection::traits::specialize
source · Expand description
Logic and data structures related to impl specialization, explained in greater detail below.
At the moment, this implementation support only the simple “chain” rule: If any two impls overlap, one must be a strict subset of the other.
See the rustc dev guide for a bit more detail on how specialization fits together with the rest of the trait machinery.
Modules
Structs
Information pertinent to an overlapping impl error.
Functions
Attempt to fulfill all obligations of
target_impl
after unification with
source_trait_ref
. If successful, returns a substitution for all the
generics of target_impl
, including both those needed to unify with
source_trait_ref
and those whose identity is determined via a where
clause in the impl.Query provider for
specialization_graph_of
.Is
impl1
a specialization of impl2
?Recovers the “impl X for Y” signature from
impl_def_id
and returns it as a
string.Given a subst for the requested impl, translate it to a subst
appropriate for the actual item definition (whether it be in that impl,
a parent impl, or the trait).