rustpython-codegen 0.4.0

Compiler for python code into bytecode for the rustpython VM.
Documentation
---
source: compiler/codegen/src/compile.rs
expression: "compile_exec(\"\\\nfor stop_exc in (StopIteration('spam'), StopAsyncIteration('ham')):\n    with self.subTest(type=type(stop_exc)):\n        try:\n            async with egg():\n                raise stop_exc\n        except Exception as ex:\n            self.assertIs(ex, stop_exc)\n        else:\n            self.fail(f'{stop_exc} was suppressed')\n\")"
---
  1           0 SetupLoop
              1 LoadNameAny          (0, StopIteration)
              2 LoadConst            ("spam")
              3 CallFunctionPositional(1)
              4 LoadNameAny          (1, StopAsyncIteration)
              5 LoadConst            ("ham")
              6 CallFunctionPositional(1)
              7 BuildTuple           (2)
              8 GetIter
        >>    9 ForIter              (68)
             10 StoreLocal           (2, stop_exc)

  2          11 LoadNameAny          (3, self)
             12 LoadMethod           (4, subTest)
             13 LoadNameAny          (5, type)
             14 LoadNameAny          (2, stop_exc)
             15 CallFunctionPositional(1)
             16 LoadConst            (("type"))
             17 CallMethodKeyword    (1)
             18 SetupWith            (65)
             19 Pop

  3          20 SetupExcept          (40)

  4          21 LoadNameAny          (6, egg)
             22 CallFunctionPositional(0)
             23 BeforeAsyncWith
             24 GetAwaitable
             25 LoadConst            (None)
             26 YieldFrom
             27 SetupAsyncWith       (33)
             28 Pop

  5          29 LoadNameAny          (2, stop_exc)
             30 Raise                (Raise)

  4          31 PopBlock
             32 EnterFinally
        >>   33 WithCleanupStart
             34 GetAwaitable
             35 LoadConst            (None)
             36 YieldFrom
             37 WithCleanupFinish
             38 PopBlock
             39 Jump                 (54)
        >>   40 Duplicate

  6          41 LoadNameAny          (7, Exception)
             42 TestOperation        (ExceptionMatch)
             43 JumpIfFalse          (53)
             44 StoreLocal           (8, ex)

  7          45 LoadNameAny          (3, self)
             46 LoadMethod           (9, assertIs)
             47 LoadNameAny          (8, ex)
             48 LoadNameAny          (2, stop_exc)
             49 CallMethodPositional (2)
             50 Pop
             51 PopException
             52 Jump                 (63)
        >>   53 Raise                (Reraise)

  9     >>   54 LoadNameAny          (3, self)
             55 LoadMethod           (10, fail)
             56 LoadConst            ("")
             57 LoadNameAny          (2, stop_exc)
             58 FormatValue          (None)
             59 LoadConst            (" was suppressed")
             60 BuildString          (2)
             61 CallMethodPositional (1)
             62 Pop

  2     >>   63 PopBlock
             64 EnterFinally
        >>   65 WithCleanupStart
             66 WithCleanupFinish
             67 Jump                 (9)
        >>   68 PopBlock
             69 ReturnConst          (None)