Module binder

Module binder 

Source

Macros§

impl_binder_encode_decode 🔒

Structs§

ArgFolder 🔒
Binder
Binder is a binder for higher-ranked lifetimes or types. It is part of the compiler’s representation for things like for<'a> Fn(&'a isize) (which would be represented by the type PolyTraitRef == Binder<I, TraitRef>).
EarlyBinder
Similar to Binder except that it tracks early bound generics, i.e. struct Foo<T>(T) needs T instantiated immediately. This type primarily exists to avoid forgetting to call instantiate.
EarlyBinderIter
IterIdentityCopied
IterInstantiated
IterInstantiatedCopied
ValidateBoundVars

Enums§

BoundVarIndexKind
Okay, we do something fun for Bound types/regions/consts: Specifically, we distinguish between canonically bound things and for<> bound things. And, really, it comes down to caching during canonicalization and instantiation.