Struct rustc_hir_analysis::check::wfcheck::GATSubstCollector
source · struct GATSubstCollector<'tcx> {
gat: DefId,
regions: FxHashSet<(Region<'tcx>, usize)>,
types: FxHashSet<(Ty<'tcx>, usize)>,
}
Expand description
TypeVisitor that looks for uses of GATs like
<P0 as Trait<P1..Pn>>::GAT<Pn..Pm>
and adds the arguments P0..Pm
into
the two vectors, regions
and types
(depending on their kind). For each
parameter Pi
also track the index i
.
Fields§
§gat: DefId
§regions: FxHashSet<(Region<'tcx>, usize)>
§types: FxHashSet<(Ty<'tcx>, usize)>
Implementations§
Trait Implementations§
source§impl<'tcx> TypeVisitor<TyCtxt<'tcx>> for GATSubstCollector<'tcx>
impl<'tcx> TypeVisitor<TyCtxt<'tcx>> for GATSubstCollector<'tcx>
type BreakTy = !
fn visit_ty(&mut self, t: Ty<'tcx>) -> ControlFlow<Self::BreakTy>
fn visit_binder<T>( &mut self, t: &<I as Interner>::Binder<T> ) -> ControlFlow<Self::BreakTy, ()>where T: TypeVisitable<I>, <I as Interner>::Binder<T>: TypeSuperVisitable<I>,
fn visit_region( &mut self, _r: <I as Interner>::Region ) -> ControlFlow<Self::BreakTy, ()>
Auto Trait Implementations§
impl<'tcx> !RefUnwindSafe for GATSubstCollector<'tcx>
impl<'tcx> Send for GATSubstCollector<'tcx>
impl<'tcx> Sync for GATSubstCollector<'tcx>
impl<'tcx> Unpin for GATSubstCollector<'tcx>
impl<'tcx> !UnwindSafe for GATSubstCollector<'tcx>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn 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: 72 bytes