diff --git a/src/protocol/parser/pass_definitions.rs b/src/protocol/parser/pass_definitions.rs index f2c983898b35c4ed1c5a62bec09888ea3fe50146..2f901cfd514e709e41823a10195bfae922b33871 100644 --- a/src/protocol/parser/pass_definitions.rs +++ b/src/protocol/parser/pass_definitions.rs @@ -1888,6 +1888,23 @@ fn consume_parser_type( } } + // If here then we have found the correct number of angle braces. + + // Check for trailing array identifiers + while Some(TokenKind::OpenSquare) == iter.next() { + let (array_start, _) = iter.next_positions(); + iter.consume(); + if Some(TokenKind::CloseSquare) != iter.next() { + return Err(ParseError::new_error_str_at_pos( + source, iter.last_valid_pos(), + "unexpected token: expected ']'" + )); + } + let (_, array_end) = iter.next_positions(); + iter.consume(); + insert_array_before(&mut elements, 0, InputSpan::from_positions(array_start, array_end)) + } + // If here then we found the correct number of angle braces. But we still // need to make sure that each encountered type has the correct number of // embedded types.