Module resolve_bound_vars

Source
Expand description

Resolution of early vs late bound lifetimes.

Name resolution for lifetimes is performed on the AST and embedded into HIR. From this information, typechecking needs to transform the lifetime parameters into bound lifetimes. Lifetimes can be early-bound or late-bound. Construction of typechecking terms needs to visit the types in HIR to identify late-bound lifetimes and assign their Debruijn indices. This file is also responsible for assigning their semantics to implicit lifetimes in trait objects.

Structsยง

BoundVarContext ๐Ÿ”’

Enumsยง

BinderScopeType ๐Ÿ”’
NonLifetimeBinderAllowed ๐Ÿ”’
Scope ๐Ÿ”’

Traitsยง

RegionExt ๐Ÿ”’

Functionsยง

deny_non_region_late_bound ๐Ÿ”’
generic_param_def_as_bound_arg ๐Ÿ”’
Turn a ty::GenericParamDef into a bound arg. Generally, this should only be used when turning early-bound vars into late-bound vars when lowering return type notation.
is_late_bound_map ๐Ÿ”’
Detects late-bound lifetimes and inserts them into late_bound.
late_arg_as_bound_arg ๐Ÿ”’
object_lifetime_default ๐Ÿ”’
opaque_captures_all_in_scope_lifetimes ๐Ÿ”’
Whether this opaque always captures lifetimes in scope. Right now, this is all RPITIT and TAITs, and when the opaque is coming from a span corresponding to edition 2024.
provide ๐Ÿ”’
resolve_bound_vars ๐Ÿ”’
Computes the ResolveBoundVars map that contains data for an entire Item. You should not read the result of this query directly, but rather use named_variable_map, late_bound_vars_map, etc.

Type Aliasesยง

ScopeRef ๐Ÿ”’