Re-exportsΒ§
use std::fmt;πuse std::hash::Hash;πuse std::hash::Hash;πuse std::marker::PhantomData;πuse std::ops::ControlFlow;πuse std::ops::Deref;πuse derive_where::derive_where;πuse rustc_macros::Decodable_NoContext;πuse rustc_macros::Encodable_NoContext;πuse rustc_macros::StableHash;πuse rustc_macros::StableHash_NoContext;πuse rustc_type_ir_macros::GenericTypeVisitable;πuse rustc_type_ir_macros::Lift_Generic;πuse rustc_type_ir_macros::TypeFoldable_Generic;πuse rustc_type_ir_macros::TypeVisitable_Generic;πuse tracing::instrument;πuse tracing::instrument;πuse crate::data_structures::SsoHashSet;πuse crate::fold::FallibleTypeFolder;πuse crate::fold::TypeFoldable;πuse crate::fold::TypeFolder;πuse crate::fold::TypeSuperFoldable;πuse crate::visit::Flags;πuse crate::visit::TypeSuperVisitable;πuse crate::visit::TypeVisitable;πuse crate::visit::TypeVisitableExt;πuse crate::visit::TypeVisitor;πuse crate as ty;πuse crate::Const;πuse crate::DebruijnIndex;πuse crate::Interner;πuse crate::PredicateProxy;πuse crate::Region;πuse crate::UniverseIndex;πuse crate::Unnormalized;πuse crate::inherent::*;π
MacrosΒ§
- generate π
StructsΒ§
- ArgFolder π
- Binder
Binderis a binder for higher-ranked lifetimes or types. It is part of the compilerβs representation for things likefor<'a> Fn(&'a isize)(which would be represented by the typePolyTraitRef == Binder<I, TraitRef>).- Bound
Const - Bound
Region - BoundTy
- Early
Binder - Similar to
Binderexcept that it tracks early bound generics, i.e.struct Foo<T>(T)needsTinstantiated immediately. This type primarily exists to avoid forgetting to callinstantiate. - Early
Binder Iter - Iter
Identity Copied - Iter
Instantiated - Iter
Instantiated Copied - Placeholder
- The βplaceholder indexβ fully defines a placeholder region, type, or const. Placeholders are identified by both a universe, as well as a name residing within that universe. Distinct bound regions/types/consts within the same universe simply have an unknown relationship to one
- Validate
Bound Vars
EnumsΒ§
- Bound
Region Kind - Bound
TyKind - Bound
VarIndex Kind - Okay, we do something fun for
Boundtypes/regions/consts: Specifically, we distinguish between canonically bound things andfor<>bound things. And, really, it comes down to caching during canonicalization and instantiation. - Bound
Variable Kind