From bd2fac11c6785eba67afa696268f5f6ff81c9f14 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Mon, 8 Feb 2021 20:15:11 +0100 Subject: [PATCH] feat: optional type declaration in for loop --- src/parser/rules.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/parser/rules.rs b/src/parser/rules.rs index 39774eb..34f1776 100644 --- a/src/parser/rules.rs +++ b/src/parser/rules.rs @@ -318,14 +318,19 @@ impl Parser { self.match_keyword(Keyword::For)?; let ident = self.match_identifier()?; + let ident_ty = match self.peek()?.kind { + TokenKind::Colon => Some(self.parse_type()?), + _ => None, + }; self.match_keyword(Keyword::In)?; let expr = self.parse_expression()?; + let body = self.parse_block()?; Ok(Statement::For( Variable { name: ident, - ty: None, + ty: ident_ty, }, expr, Box::new(body),