correctly traverse match expressions for diverging_sub_expr

This commit is contained in:
Oliver Schneider 2016-10-01 14:41:20 +02:00
parent 84269478b0
commit 9c5d3f3b85
2 changed files with 5 additions and 1 deletions

View File

@ -104,7 +104,7 @@ impl<'a, 'tcx> DivergenceVisitor<'a, 'tcx> {
self.visit_expr(guard);
}
// make sure top level arm expressions aren't linted
walk_expr(self, &*arm.body);
self.maybe_walk_expr(&*arm.body);
}
}
_ => walk_expr(self, e),

View File

@ -31,6 +31,10 @@ fn foobar() {
8 => break,
9 => diverge(),
3 => (println!("moo"), diverge()), //~ ERROR sub-expression diverges
10 => match 42 {
99 => return,
_ => ((), panic!("boo")),
},
_ => (println!("boo"), break), //~ ERROR sub-expression diverges
};
}