Skip to content

Commit

Permalink
Rollup merge of rust-lang#76274 - scottmcm:fix-76271, r=petrochenkov
Browse files Browse the repository at this point in the history
Allow try blocks as the argument to return expressions

Fixes rust-lang#76271

I don't think this needs to be edition-aware (phew) since `return try` in 2015 is also the start of an expression, just with a struct literal instead of a block (`return try { x: 4, y: 5 }`).
  • Loading branch information
matklad authored Sep 4, 2020
2 parents 4fa1e20 + 791f93c commit 32095b8
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
1 change: 1 addition & 0 deletions compiler/rustc_ast/src/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ pub fn ident_can_begin_expr(name: Symbol, span: Span, is_raw: bool) -> bool {
kw::Move,
kw::Return,
kw::True,
kw::Try,
kw::Unsafe,
kw::While,
kw::Yield,
Expand Down
12 changes: 12 additions & 0 deletions src/test/ui/try-block/try-block-in-return.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// run-pass
// compile-flags: --edition 2018

#![feature(try_blocks)]

fn issue_76271() -> Option<i32> {
return try { 4 }
}

fn main() {
assert_eq!(issue_76271(), Some(4));
}

0 comments on commit 32095b8

Please sign in to comment.