From ea6adb4ca98d5b272db010ca4de87210abf4b49e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Mon, 8 Mar 2021 19:15:23 +0100 Subject: parse nullable types --- src/compiler.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/compiler.rs b/src/compiler.rs index b45d47e..47b8b84 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -1401,8 +1401,17 @@ impl Compiler { } fn parse_type(&mut self) -> Result { - match self.peek() { + let ty = self.parse_simple_type(); + if self.peek() == Token::Questionmark { + self.eat(); + ty.map(|x| Type::Union(vec![x, Type::Void])) + } else { + ty + } + } + fn parse_simple_type(&mut self) -> Result { + match self.peek() { Token::Fn => { self.eat(); let mut params = Vec::new(); -- cgit v1.2.1