Struct rustc_middle::ty::util::OpaqueTypeExpander [−][src]
struct OpaqueTypeExpander<'tcx> {
seen_opaque_tys: FxHashSet<DefId>,
expanded_cache: FxHashMap<(DefId, SubstsRef<'tcx>), Ty<'tcx>>,
primary_def_id: Option<DefId>,
found_recursion: bool,
check_recursion: bool,
tcx: TyCtxt<'tcx>,
}Fields
seen_opaque_tys: FxHashSet<DefId>expanded_cache: FxHashMap<(DefId, SubstsRef<'tcx>), Ty<'tcx>>primary_def_id: Option<DefId>found_recursion: boolcheck_recursion: boolExpand description
Whether or not to check for recursive opaque types.
This is true when we’re explicitly checking for opaque type
recursion, and ‘false’ otherwise to avoid unnecessary work.
tcx: TyCtxt<'tcx>Implementations
impl<'tcx> OpaqueTypeExpander<'tcx>[src]
impl<'tcx> OpaqueTypeExpander<'tcx>[src]Trait Implementations
impl<'tcx> TypeFolder<'tcx> for OpaqueTypeExpander<'tcx>[src]
impl<'tcx> TypeFolder<'tcx> for OpaqueTypeExpander<'tcx>[src]fn tcx(&self) -> TyCtxt<'tcx>[src]
fn fold_ty(&mut self, t: Ty<'tcx>) -> Ty<'tcx>[src]
fn fold_binder<T>(&mut self, t: Binder<'tcx, T>) -> Binder<'tcx, T> where
T: TypeFoldable<'tcx>, [src]
T: TypeFoldable<'tcx>,
fn fold_region(&mut self, r: Region<'tcx>) -> Region<'tcx>[src]
fn fold_const(&mut self, c: &'tcx Const<'tcx>) -> &'tcx Const<'tcx>[src]
fn fold_mir_const(&mut self, c: ConstantKind<'tcx>) -> ConstantKind<'tcx>[src]
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for OpaqueTypeExpander<'tcx>
impl<'tcx> !Send for OpaqueTypeExpander<'tcx>
impl<'tcx> !Sync for OpaqueTypeExpander<'tcx>
impl<'tcx> Unpin for OpaqueTypeExpander<'tcx>
impl<'tcx> !UnwindSafe for OpaqueTypeExpander<'tcx>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> MaybeResult<T> for T[src]
impl<T> MaybeResult<T> for T[src]impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,