Parses a list expression. See:
(&mut self, first_element: Expr, start: TextSize)
| 2480 | /// |
| 2481 | /// See: <https://docs.python.org/3/reference/expressions.html#list-displays> |
| 2482 | fn parse_list_expression(&mut self, first_element: Expr, start: TextSize) -> ast::ExprList { |
| 2483 | if !self.at_sequence_end() { |
| 2484 | self.expect(TokenKind::Comma); |
| 2485 | } |
| 2486 | |
| 2487 | let mut elts = vec![first_element]; |
| 2488 | |
| 2489 | self.parse_comma_separated_list(RecoveryContextKind::ListElements, |parser| { |
| 2490 | elts.push( |
| 2491 | parser |
| 2492 | .parse_named_expression_or_higher(ExpressionContext::starred_bitwise_or()) |
| 2493 | .expr, |
| 2494 | ); |
| 2495 | }); |
| 2496 | |
| 2497 | self.expect(TokenKind::Rsqb); |
| 2498 | |
| 2499 | elts.shrink_to_fit(); |
| 2500 | |
| 2501 | ast::ExprList { |
| 2502 | elts, |
| 2503 | ctx: ExprContext::Load, |
| 2504 | range: self.node_range(start), |
| 2505 | node_index: AtomicNodeIndex::NONE, |
| 2506 | } |
| 2507 | } |
| 2508 | |
| 2509 | /// Parses a set expression. |
| 2510 | /// |
no test coverage detected