From f5bb7bbd8824a20c991587d5a774644aa98241d9 Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 3 Mar 2022 02:30:46 +0100 Subject: Allow returns without value --- src/parse/parser.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/parse/parser.rs') diff --git a/src/parse/parser.rs b/src/parse/parser.rs index f19dcf1..a9baf7a 100644 --- a/src/parse/parser.rs +++ b/src/parse/parser.rs @@ -51,11 +51,16 @@ impl> Parser { fn return_statement(&mut self) -> Result { let return_token = consume!(self, KeywordReturn)?; - let expression = self.expression()?; - consume!(self, SemiColon)?; + let returned = if consume_if!(self, SemiColon).is_none() { + let expression = self.expression()?; + consume!(self, SemiColon)?; + Some(expression) + } else { + None + }; Ok(Statement { at: return_token.location, - kind: StatementKind::Return(expression), + kind: StatementKind::Return(returned), }) } -- cgit 1.4.1