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

Method parse_block

crates/ruff_python_parser/src/parser/statement.rs:3124–3140  ·  view source on GitHub ↗

Parses a block of statements. # Panics If the parser isn't positioned at an `Indent` token.

(&mut self)

Source from the content-addressed store, hash-verified

3122 ///
3123 /// If the parser isn't positioned at an `Indent` token.
3124 fn parse_block(&mut self) -> Suite {
3125 self.bump(TokenKind::Indent);
3126
3127 let statements = self.with_recursion(|parser| {
3128 let snapshot = parser.stmt_scratch.snapshot();
3129 parser.parse_list(RecoveryContextKind::BlockStatements, |parser| {
3130 let statement = parser.parse_statement();
3131 parser.stmt_scratch.push(statement);
3132 });
3133
3134 parser.stmt_scratch.take_thin_vec(snapshot)
3135 });
3136
3137 self.expect(TokenKind::Dedent);
3138
3139 statements
3140 }
3141
3142 /// Parses a single parameter for the given function kind.
3143 ///

Callers 1

parse_bodyMethod · 0.80

Calls 8

with_recursionMethod · 0.80
parse_listMethod · 0.80
parse_statementMethod · 0.80
take_thin_vecMethod · 0.80
expectMethod · 0.80
bumpMethod · 0.45
snapshotMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected