MCPcopy Index your code
hub / github.com/python/mypy / visit_for_stmt

Method visit_for_stmt

mypy/partially_defined.py:464–488  ·  view source on GitHub ↗
(self, o: ForStmt)

Source from the content-addressed store, hash-verified

462 self.tracker.exit_scope()
463
464 def visit_for_stmt(self, o: ForStmt) -> None:
465 o.expr.accept(self)
466 self.process_lvalue(o.index)
467 o.index.accept(self)
468 self.tracker.start_branch_statement()
469 loop = Loop()
470 self.loops.append(loop)
471 o.body.accept(self)
472 self.tracker.next_branch()
473 self.tracker.end_branch_statement()
474 if o.else_body is not None:
475 # If the loop has a `break` inside, `else` is executed conditionally.
476 # If the loop doesn't have a `break` either the function will return or
477 # execute the `else`.
478 has_break = loop.has_break
479 if has_break:
480 self.tracker.start_branch_statement()
481 if loop.break_vars is not None:
482 for bv in loop.break_vars:
483 self.tracker.record_definition(bv)
484 self.tracker.next_branch()
485 o.else_body.accept(self)
486 if has_break:
487 self.tracker.end_branch_statement()
488 self.loops.pop()
489
490 def visit_return_stmt(self, o: ReturnStmt) -> None:
491 super().visit_return_stmt(o)

Callers

nothing calls this directly

Calls 9

process_lvalueMethod · 0.95
LoopClass · 0.85
appendMethod · 0.80
end_branch_statementMethod · 0.80
acceptMethod · 0.45
next_branchMethod · 0.45
record_definitionMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected