fn record_rvalue_scope_rec(
rvalue_scopes: &mut RvalueScopes,
expr: &Expr<'_>,
lifetime: Option<Scope>,
)
Expand description
Applied to an expression expr
if expr
– or something owned or partially owned by
expr
– is going to be indirectly referenced by a variable in a let statement. In that
case, the “temporary lifetime” or expr
is extended to be the block enclosing the let
statement.
More formally, if expr
matches the grammar ET
, record the rvalue scope of the matching
<rvalue>
as blk_id
:
ET = *ET
| ET[...]
| ET.f
| (ET)
| <rvalue>
Note: ET is intended to match “rvalues or places based on rvalues”.