@@ -44,6 +44,7 @@ fn check_crate(tcx: ty::ctxt, method_map: typeck::method_map,
44
44
let visit = visit:: mk_vt ( @{
45
45
visit_expr: check_expr,
46
46
visit_stmt: check_stmt,
47
+ visit_block: check_block,
47
48
visit_fn: check_fn
48
49
with * visit:: default_visitor ( )
49
50
} ) ;
@@ -117,12 +118,18 @@ fn check_fn_cap_clause(cx: ctx,
117
118
}
118
119
}
119
120
120
- fn check_expr ( e : @expr, cx : ctx , v : visit:: vt < ctx > ) {
121
+ fn check_block ( b : blk , cx : ctx , v : visit:: vt < ctx > ) {
122
+ alt b. node . expr {
123
+ some ( ex) { maybe_copy ( cx, ex) ; }
124
+ _ { }
125
+ }
126
+ visit:: visit_block ( b, cx, v) ;
127
+ }
121
128
129
+ fn check_expr ( e : @expr, cx : ctx , v : visit:: vt < ctx > ) {
122
130
alt e. node {
123
131
expr_assign ( _, ex) | expr_assign_op ( _, _, ex) |
124
- expr_block ( { node : { expr : some ( ex) , _} , _} ) |
125
- expr_unary ( box ( _) , ex) | expr_unary ( uniq ( _) , ex) { maybe_copy ( cx, ex) ; }
132
+ expr_unary ( box ( _) , ex) | expr_unary ( uniq ( _) , ex) |
126
133
expr_ret ( some ( ex) ) { maybe_copy ( cx, ex) ; }
127
134
expr_copy ( expr) { check_copy_ex ( cx, expr, false ) ; }
128
135
// Vector add copies.
0 commit comments