diff --git a/compiler/erg_parser/parse.rs b/compiler/erg_parser/parse.rs index e83d5976..3eebddd3 100644 --- a/compiler/erg_parser/parse.rs +++ b/compiler/erg_parser/parse.rs @@ -469,7 +469,8 @@ impl Parser { } } } - Some(t) if t.is(LSqBr) => { + // x[...] (`x [...]` will interpreted as `x([...])`) + Some(t) if t.is(LSqBr) && acc.col_end().unwrap() == t.col_begin().unwrap() => { self.skip(); let index = self .try_reduce_expr(false, false) diff --git a/tests/fizzbuzz.er b/tests/fizzbuzz.er index afcf9b73..b725528e 100644 --- a/tests/fizzbuzz.er +++ b/tests/fizzbuzz.er @@ -1,6 +1,6 @@ for! 1..<100, i => - match (i % 3, i % 5): - (0, 0) => print! "FizzBuzz" - (0, _) => print! "Fizz" - (_, 0) => print! "Buzz" - (_, _) => print! i + match [i % 3, i % 5]: + [0, 0] => print! "FizzBuzz" + [0, _] => print! "Fizz" + [_, 0] => print! "Buzz" + [_, _] => print! i