Function rustc_hir_analysis::impl_wf_check::min_specialization::get_impl_args
source · fn get_impl_args(
tcx: TyCtxt<'_>,
impl1_def_id: LocalDefId,
impl2_node: Node
) -> Result<(GenericArgsRef<'_>, GenericArgsRef<'_>), ErrorGuaranteed>
Expand description
Given a specializing impl impl1
, and the base impl impl2
, returns two
substitutions (S1, S2)
that equate their trait references. The returned
types are expressed in terms of the generics of impl1
.
Example
ⓘ
impl<A, B> Foo<A> for B { /* impl2 */ }
impl<C> Foo<Vec<C>> for C { /* impl1 */ }
Would return S1 = [C]
and S2 = [Vec<C>, C]
.