Skip to main content

ChildrenExt

trait ChildrenExt<'tcx> {
    // Required methods
    fn insert_blindly(&mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId);
    fn remove_existing(&mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId);
    fn insert(
        &mut self,
        tcx: TyCtxt<'tcx>,
        impl_def_id: DefId,
        simplified_self: Option<SimplifiedType>,
        overlap_mode: OverlapMode,
    ) -> Result<Inserted<'tcx>, OverlapError<'tcx>>;
}

Required Methods§

Source

fn insert_blindly(&mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId)

Insert an impl into this set of children without comparing to any existing impls.

Source

fn remove_existing(&mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId)

Removes an impl from this set of children. Used when replacing an impl with a parent. The impl must be present in the list of children already.

Source

fn insert( &mut self, tcx: TyCtxt<'tcx>, impl_def_id: DefId, simplified_self: Option<SimplifiedType>, overlap_mode: OverlapMode, ) -> Result<Inserted<'tcx>, OverlapError<'tcx>>

Attempt to insert an impl into this set of children, while comparing for specialization relationships.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<'tcx> ChildrenExt<'tcx> for Children