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:2412–2435  ·  view source on GitHub ↗

Parses a list expression. See:

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

Source from the content-addressed store, hash-verified

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 ///

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