MCPcopy Create free account
hub / github.com/astral-sh/ruff / parse_list_expression

Method parse_list_expression

crates/ruff_python_parser/src/parser/expression.rs:2478–2501  ·  view source on GitHub ↗

Parses a list expression. See:

(&mut self, first_element: Expr, start: TextSize)

Source from the content-addressed store, hash-verified

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

Callers 1

Calls 8

at_sequence_endMethod · 0.80
expectMethod · 0.80
node_rangeMethod · 0.80
snapshotMethod · 0.45
pushMethod · 0.45
takeMethod · 0.45

Tested by

no test coverage detected