(&mut self)
| 169 | } |
| 170 | } |
| 171 | fn parse_conjunction(&mut self) -> syn::Result<AssertionWithoutId> { |
| 172 | let mut conjuncts = vec![self.parse_entailment()?]; |
| 173 | while self.consume_operator("&&") { |
| 174 | conjuncts.push(self.parse_entailment()?); |
| 175 | } |
| 176 | if conjuncts.len() == 1 { |
| 177 | Ok(conjuncts.pop().unwrap()) |
| 178 | } else { |
| 179 | Ok(AssertionWithoutId { |
| 180 | kind: Box::new(common::AssertionKind::And(conjuncts)) |
| 181 | }) |
| 182 | } |
| 183 | } |
| 184 | fn parse_entailment(&mut self) -> syn::Result<AssertionWithoutId> { |
| 185 | if (self.peek_group(Delimiter::Parenthesis) && !self.is_part_of_rust_expr()) || |
| 186 | self.peek_keyword("forall") || |
no test coverage detected