(&mut self)
| 825 | } |
| 826 | |
| 827 | fn parse_or_pattern(&mut self) -> Result<MatchPattern, ParsingError> { |
| 828 | let mut patterns = vec![]; |
| 829 | patterns.push(self.parse_closed_pattern()?); |
| 830 | loop { |
| 831 | if !self.eat(Kind::BitOr) { |
| 832 | break; |
| 833 | } |
| 834 | patterns.push(self.parse_closed_pattern()?); |
| 835 | } |
| 836 | if patterns.len() == 1 { |
| 837 | Ok(patterns.remove(0)) |
| 838 | } else { |
| 839 | Ok(MatchPattern::MatchOr(patterns)) |
| 840 | } |
| 841 | } |
| 842 | |
| 843 | fn parse_closed_pattern(&mut self) -> Result<MatchPattern, ParsingError> { |
| 844 | match self.cur_kind() { |
no test coverage detected