MCPcopy Create free account
hub / github.com/Glyphack/enderpy / parse_ann_assign_statement

Method parse_ann_assign_statement

parser/src/parser/parser.rs:1222–1246  ·  view source on GitHub ↗
(
        &mut self,
        start: Node,
        lhs: Expression,
    )

Source from the content-addressed store, hash-verified

1220 }
1221
1222 fn parse_ann_assign_statement(
1223 &mut self,
1224 start: Node,
1225 lhs: Expression,
1226 ) -> Result<Statement, ParsingError> {
1227 self.bump(Kind::Colon);
1228 let annotation = self.parse_expression()?;
1229 let value = if self.eat(Kind::Assign) {
1230 Some(self.parse_assignment_value()?)
1231 } else {
1232 None
1233 };
1234 let simple = if let Expression::Name(name) = &lhs {
1235 !name.parenthesized
1236 } else {
1237 false
1238 };
1239 Ok(Statement::AnnAssignStatement(Box::new(AnnAssign {
1240 node: self.finish_node(start),
1241 target: lhs,
1242 annotation,
1243 value,
1244 simple,
1245 })))
1246 }
1247
1248 // The value is either expression list or yield expression
1249 // https://docs.python.org/3/reference/simple_stmts.html#assignment-statements

Calls 5

bumpMethod · 0.80
parse_expressionMethod · 0.80
eatMethod · 0.80
finish_nodeMethod · 0.80

Tested by

no test coverage detected