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.

Implementors§

Source§

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