File tree Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Original file line number Diff line number Diff line change @@ -15130,10 +15130,16 @@ impl<'a> Parser<'a> {
15130
15130
15131
15131
/// Parse [Statement::Return]
15132
15132
fn parse_return(&mut self) -> Result<Statement, ParserError> {
15133
- let expr = self.parse_expr()?;
15134
- Ok(Statement::Return(ReturnStatement {
15135
- value: Some(ReturnStatementValue::Expr(expr)),
15136
- }))
15133
+ let current_index = self.index;
15134
+ match self.parse_expr() {
15135
+ Ok(expr) => Ok(Statement::Return(ReturnStatement {
15136
+ value: Some(ReturnStatementValue::Expr(expr)),
15137
+ })),
15138
+ Err(_) => {
15139
+ self.index = current_index;
15140
+ Ok(Statement::Return(ReturnStatement { value: None }))
15141
+ }
15142
+ }
15137
15143
}
15138
15144
15139
15145
/// Consume the parser and return its underlying token buffer
Original file line number Diff line number Diff line change @@ -15015,3 +15015,8 @@ fn parse_set_time_zone_alias() {
15015
15015
_ => unreachable ! ( ) ,
15016
15016
}
15017
15017
}
15018
+
15019
+ #[ test]
15020
+ fn parse_return ( ) {
15021
+ all_dialects ( ) . verified_stmt ( "RETURN" ) ;
15022
+ }
You can’t perform that action at this time.
0 commit comments