Skip to content

Commit

Permalink
increased debug output for understanding temp rvalues in e.g. rust-la…
Browse files Browse the repository at this point in the history
  • Loading branch information
pnkfelix committed Jul 12, 2016
1 parent 2539c15 commit 92052da
Showing 1 changed file with 34 additions and 27 deletions.
61 changes: 34 additions & 27 deletions src/librustc/middle/region.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1001,37 +1001,42 @@ fn resolve_local(visitor: &mut RegionResolutionVisitor, local: &hir::Local) {
fn record_rvalue_scope_if_borrow_expr(visitor: &mut RegionResolutionVisitor,
expr: &hir::Expr,
blk_id: CodeExtent) {
match expr.node {
hir::ExprAddrOf(_, ref subexpr) => {
record_rvalue_scope_if_borrow_expr(visitor, &subexpr, blk_id);
record_rvalue_scope(visitor, &subexpr, blk_id);
}
hir::ExprStruct(_, ref fields, _) => {
for field in fields {
record_rvalue_scope_if_borrow_expr(
visitor, &field.expr, blk_id);
debug!("record_rvalue_scope_if_borrow_expr recur on \
expr: {:?} blk_id: {:?}", expr, blk_id);
return recur(visitor, expr, blk_id);

fn recur(visitor: &mut RegionResolutionVisitor,
expr: &hir::Expr,
blk_id: CodeExtent) {
match expr.node {
hir::ExprAddrOf(_, ref subexpr) => {
recur(visitor, &subexpr, blk_id);
record_rvalue_scope(visitor, &subexpr, blk_id);
}
}
hir::ExprVec(ref subexprs) |
hir::ExprTup(ref subexprs) => {
for subexpr in subexprs {
record_rvalue_scope_if_borrow_expr(
visitor, &subexpr, blk_id);
hir::ExprStruct(_, ref fields, _) => {
for field in fields {
recur(visitor, &field.expr, blk_id);
}
}
}
hir::ExprCast(ref subexpr, _) => {
record_rvalue_scope_if_borrow_expr(visitor, &subexpr, blk_id)
}
hir::ExprBlock(ref block) => {
match block.expr {
Some(ref subexpr) => {
record_rvalue_scope_if_borrow_expr(
visitor, &subexpr, blk_id);
hir::ExprVec(ref subexprs) |
hir::ExprTup(ref subexprs) => {
for subexpr in subexprs {
recur(visitor, &subexpr, blk_id);
}
None => { }
}
}
_ => {
hir::ExprCast(ref subexpr, _) => {
recur(visitor, &subexpr, blk_id)
}
hir::ExprBlock(ref block) => {
match block.expr {
Some(ref subexpr) => {
recur(visitor, &subexpr, blk_id);
}
None => { }
}
}
_ => {
}
}
}
}
Expand All @@ -1054,6 +1059,8 @@ fn resolve_local(visitor: &mut RegionResolutionVisitor, local: &hir::Local) {
fn record_rvalue_scope<'a>(visitor: &mut RegionResolutionVisitor,
expr: &'a hir::Expr,
blk_scope: CodeExtent) {
debug!("record_rvalue_scope loop on \
expr: {:?} blk_scope: {:?}", expr, blk_scope);
let mut expr = expr;
loop {
// Note: give all the expressions matching `ET` with the
Expand Down

0 comments on commit 92052da

Please sign in to comment.