Skip to content

Commit 8746b84

Browse files
committed
rustc: Handle valueless ret expressions as block results. Closes #521
1 parent b4c3b83 commit 8746b84

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

src/comp/front/parser.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -891,6 +891,8 @@ fn parse_bottom_expr(&parser p) -> @ast::expr {
891891
} else if (eat_word(p, "ret")) {
892892
alt (p.peek()) {
893893
case (token::SEMI) { ex = ast::expr_ret(none); }
894+
// Handle ret as the block result expression
895+
case (token::RBRACE) { ex = ast::expr_ret(none); }
894896
case (_) {
895897
auto e = parse_expr(p);
896898
hi = e.span.hi;

src/test/run-pass/expr-empty-ret.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// xfail-stage0
2+
// Issue #521
3+
4+
fn f() {
5+
auto x = alt (true) {
6+
case (true) { 10 }
7+
case (false) { ret }
8+
};
9+
}
10+
11+
fn main() { }

0 commit comments

Comments
 (0)