Parses a list expression. See:
(&mut self, first_element: Expr, start: TextSize)
| 2410 | /// |
| 2411 | /// See: <https://docs.python.org/3/reference/expressions.html#list-displays> |
| 2412 | fn parse_list_expression(&mut self, first_element: Expr, start: TextSize) -> ast::ExprList { |
| 2413 | if !self.at_sequence_end() { |
| 2414 | self.expect(TokenKind::Comma); |
| 2415 | } |
| 2416 | |
| 2417 | let elts_snapshot = self.expr_scratch.snapshot(); |
| 2418 | self.expr_scratch.push(first_element); |
| 2419 | |
| 2420 | self.parse_comma_separated_list(RecoveryContextKind::ListElements, |parser| { |
| 2421 | let element = parser |
| 2422 | .parse_named_expression_or_higher(ExpressionContext::starred_bitwise_or()) |
| 2423 | .expr; |
| 2424 | parser.expr_scratch.push(element); |
| 2425 | }); |
| 2426 | |
| 2427 | self.expect(TokenKind::Rsqb); |
| 2428 | |
| 2429 | ast::ExprList { |
| 2430 | elts: self.expr_scratch.take(elts_snapshot), |
| 2431 | ctx: ExprContext::Load, |
| 2432 | range: self.node_range(start), |
| 2433 | node_index: AtomicNodeIndex::NONE, |
| 2434 | } |
| 2435 | } |
| 2436 | |
| 2437 | /// Parses a set expression. |
| 2438 | /// |
no test coverage detected