https://docs.python.org/3/reference/expressions.html#set-displays
(&mut self, node: Node, first_elm: Expression)
| 1842 | |
| 1843 | // https://docs.python.org/3/reference/expressions.html#set-displays |
| 1844 | fn parse_set(&mut self, node: Node, first_elm: Expression) -> Result<Expression, ParsingError> { |
| 1845 | if !matches!(first_elm, Expression::Starred(_)) |
| 1846 | && self.at(Kind::For) |
| 1847 | && (self.at(Kind::For) |
| 1848 | || self.at(Kind::Async) && matches!(self.peek_kind(), Ok(Kind::For))) |
| 1849 | { |
| 1850 | let generators = self.parse_comp_for()?; |
| 1851 | self.consume_whitespace_and_newline(); |
| 1852 | self.expect(Kind::RightBracket)?; |
| 1853 | return Ok(Expression::SetComp(Box::new(SetComp { |
| 1854 | node: self.finish_node(node), |
| 1855 | element: first_elm, |
| 1856 | generators, |
| 1857 | }))); |
| 1858 | } |
| 1859 | self.bump(Kind::Comma); |
| 1860 | let rest = self.parse_starred_list(Kind::RightBracket)?; |
| 1861 | let mut elements = vec![first_elm]; |
| 1862 | elements.extend(rest); |
| 1863 | self.expect(Kind::RightBracket)?; |
| 1864 | Ok(Expression::Set(Box::new(Set { |
| 1865 | node: self.finish_node(node), |
| 1866 | elements, |
| 1867 | }))) |
| 1868 | } |
| 1869 | |
| 1870 | // https://docs.python.org/3/reference/expressions.html#dictionary-displays |
| 1871 | fn parse_dict( |
no test coverage detected