From fea095a8d619a3d9cc88bb4708b78e7ee51fef3b Mon Sep 17 00:00:00 2001 From: Dummi26 Date: Sun, 12 Mar 2023 13:26:51 +0100 Subject: [PATCH] fixed a bug with inner types, like [int/string], always being parsed as single types, even though this isn't necessary. --- src/parse/parse.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/parse/parse.rs b/src/parse/parse.rs index 23993ee..f6e0bf6 100644 --- a/src/parse/parse.rs +++ b/src/parse/parse.rs @@ -379,7 +379,10 @@ fn parse_type(file: &mut File) -> Result { fn parse_type_adv(file: &mut File, in_fn_args: bool) -> Result<(VType, bool), ParseError> { let mut types = vec![]; let mut closed_fn_args = false; + let mut count = 0; loop { + count += 1; + eprintln!("count: {count}"); let (st, closed_bracket) = parse_single_type_adv(file, in_fn_args)?; types.push(st); if closed_bracket { @@ -388,7 +391,14 @@ fn parse_type_adv(file: &mut File, in_fn_args: bool) -> Result<(VType, bool), Pa } file.skip_whitespaces(); match file.peek() { - Some('/') => (), + Some('/') => { + eprintln!("/ YAY"); + file.next(); + } + Some(ch) => { + eprintln!("Ch: {ch}"); + break; + } _ => break, } } @@ -420,7 +430,7 @@ fn parse_single_type_adv( } _ => (), } - types.push(parse_single_type(file)?.into()); + types.push(parse_type(file)?); } if types.len() == 1 { VSingleType::List(types.pop().unwrap())