Rollup merge of #76274 - scottmcm:fix-76271, r=petrochenkov

Allow try blocks as the argument to return expressions

Fixes #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 }`).
This commit is contained in:
Dylan DPC 2020-09-07 01:17:46 +02:00 committed by GitHub
commit 6545985888
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -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,

View File

@ -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));
}