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

Method process_try_stmt

mypy/partially_defined.py:564–601  ·  view source on GitHub ↗

Processes try statement decomposing it into the following: if ...: body else_body elif ...: except 1 elif ...: except 2 else: except n finally

(self, o: TryStmt)

Source from the content-addressed store, hash-verified

562 self.try_depth -= 1
563
564 def process_try_stmt(self, o: TryStmt) -> None:
565 """
566 Processes try statement decomposing it into the following:
567 if ...:
568 body
569 else_body
570 elif ...:
571 except 1
572 elif ...:
573 except 2
574 else:
575 except n
576 finally
577 """
578 self.tracker.start_branch_statement()
579 o.body.accept(self)
580 if o.else_body is not None:
581 o.else_body.accept(self)
582 if len(o.handlers) > 0:
583 assert len(o.handlers) == len(o.vars) == len(o.types)
584 for i in range(len(o.handlers)):
585 self.tracker.next_branch()
586 exc_type = o.types[i]
587 if exc_type is not None:
588 exc_type.accept(self)
589 var = o.vars[i]
590 if var is not None:
591 self.process_definition(var.name)
592 var.accept(self)
593 o.handlers[i].accept(self)
594 if var is not None:
595 self.tracker.delete_var(var.name)
596 self.tracker.end_branch_statement()
597
598 if o.finally_body is not None:
599 self.tracker.in_finally = True
600 o.finally_body.accept(self)
601 self.tracker.in_finally = False
602
603 def visit_while_stmt(self, o: WhileStmt) -> None:
604 o.expr.accept(self)

Callers 1

visit_try_stmtMethod · 0.95

Calls 8

process_definitionMethod · 0.95
lenFunction · 0.85
rangeClass · 0.85
end_branch_statementMethod · 0.80
acceptMethod · 0.45
next_branchMethod · 0.45
delete_varMethod · 0.45

Tested by

no test coverage detected