Module rustc_mir_build::build::expr::as_place
source · Expand description
See docs in build/expr/mod.rs
Structs§
PlaceBuilderis 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 theto_placemethod.
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/coroutine. This implies the vector returned from this function doesn’t contain ProjectionElems
Downcast,ConstantIndex,Index, orSubslicebecause 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 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::CapturedPlacewhich is the ancestor of the Place represented using thevar_hir_idandprojection. - Return true if the
proj_possible_ancestorrepresents an ancestor path toproj_captureorproj_possible_ancestoris same asproj_capture, assuming they both start off of the same root variable. - Returns projections remaining after stripping an initial prefix of HIR projections.
- Takes an upvar place and tries to resolve it into a
PlaceBuilderwithPlaceBase::Local