Struct rustc_trait_selection::traits::coherence::OrphanChecker
source · [−]struct OrphanChecker<'tcx> {
tcx: TyCtxt<'tcx>,
in_crate: InCrate,
in_self_ty: bool,
search_first_local_ty: bool,
non_local_tys: Vec<(Ty<'tcx>, bool)>,
}Fields
tcx: TyCtxt<'tcx>in_crate: InCratein_self_ty: boolsearch_first_local_ty: boolIgnore orphan check failures and exclusively search for the first local type.
non_local_tys: Vec<(Ty<'tcx>, bool)>Implementations
sourceimpl<'tcx> OrphanChecker<'tcx>
impl<'tcx> OrphanChecker<'tcx>
fn new(tcx: TyCtxt<'tcx>, in_crate: InCrate) -> Self
fn found_non_local_ty(
&mut self,
t: Ty<'tcx>
) -> ControlFlow<OrphanCheckEarlyExit<'tcx>>
fn found_param_ty(
&mut self,
t: Ty<'tcx>
) -> ControlFlow<OrphanCheckEarlyExit<'tcx>>
fn def_id_is_local(&mut self, def_id: DefId) -> bool
Trait Implementations
sourceimpl<'tcx> TypeVisitor<'tcx> for OrphanChecker<'tcx>
impl<'tcx> TypeVisitor<'tcx> for OrphanChecker<'tcx>
type BreakTy = OrphanCheckEarlyExit<'tcx>
fn visit_region(&mut self, _r: Region<'tcx>) -> ControlFlow<Self::BreakTy>
fn visit_ty(&mut self, ty: Ty<'tcx>) -> ControlFlow<Self::BreakTy>
fn visit_const(&mut self, _c: Const<'tcx>) -> ControlFlow<Self::BreakTy>
fn visit_binder<T>(
&mut self,
t: &Binder<'tcx, T>
) -> ControlFlow<Self::BreakTy, ()> where
T: TypeVisitable<'tcx>,
fn visit_unevaluated(
&mut self,
uv: Unevaluated<'tcx, Option<Promoted>>
) -> ControlFlow<Self::BreakTy, ()>
fn visit_predicate(
&mut self,
p: Predicate<'tcx>
) -> ControlFlow<Self::BreakTy, ()>
fn visit_mir_const(
&mut self,
c: ConstantKind<'tcx>
) -> ControlFlow<Self::BreakTy, ()>
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for OrphanChecker<'tcx>
impl<'tcx> !Send for OrphanChecker<'tcx>
impl<'tcx> !Sync for OrphanChecker<'tcx>
impl<'tcx> Unpin for OrphanChecker<'tcx>
impl<'tcx> !UnwindSafe for OrphanChecker<'tcx>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 40 bytes