Expand description
See docs in build/expr/mod.rs
Structs
PlaceBuilder
is used to create places during MIR construction. It allows you to “build up” a
place by pushing more and more projections onto the end, and then convert the final set into a
place using the into_place
method.Enums
The “outermost” place that holds this value.
Functions
Given a list of MIR projections, convert them to list of HIR ProjectionKind.
The projections are truncated to represent a path that might be captured by a
closure/generator. This implies the vector returned from this function doesn’t contain
ProjectionElems
Downcast
, ConstantIndex
, Index
, or Subslice
because those will never be
part of a path that is captured by a closure. We stop applying projections once we see the first
projection that isn’t captured by a closure.Precise capture is enabled if the feature gate
capture_disjoint_fields
is enabled or if
user is using Rust Edition 2021 or higher.Given a closure, returns the index of a capture within the desugared closure struct and the
ty::CapturedPlace
which is the ancestor of the Place represented using the var_hir_id
and projection
.Return true if the
proj_possible_ancestor
represents an ancestor path
to proj_capture
or proj_possible_ancestor
is same as proj_capture
,
assuming they both start off of the same root variable.Returns projections remaining after stripping an initial prefix of HIR
projections.
Takes a PlaceBuilder and resolves the upvar (if any) within it, so that the
PlaceBuilder
now starts from PlaceBase::Local
.