Function hir_ty::method_resolution::check_orphan_rules
source ยท pub fn check_orphan_rules(db: &dyn HirDatabase, impl_: ImplId) -> bool
Expand description
Checks whether the impl satisfies the orphan rules.
Given impl<P1..=Pn> Trait<T1..=Tn> for T0
, an `impl`` is valid only if at least one of the following is true:
- Trait is a local trait
- All of
- At least one of the types
T0..=Tn`` must be a local type. Let
Ti`` be the first such type. - No uncovered type parameters
P1..=Pn
may appear inT0..Ti`` (excluding
Ti`)
- At least one of the types