0(1) element: null 1(2) element: PyMatchStatement 2(3,20) refutable pattern: {'foo': 1, 'bar': foo.bar} 3(4,20) refutable pattern: 'foo': 1 4(5,20) refutable pattern: 'foo' 5(6) matched pattern: 'foo' 6(7,20) refutable pattern: 1 7(8) matched pattern: 1 8(9) matched pattern: 'foo': 1 9(10,20) refutable pattern: 'bar': foo.bar 10(11,20) refutable pattern: 'bar' 11(12) matched pattern: 'bar' 12(13) refutable pattern: foo.bar 13(14,20) READ ACCESS: foo 14(15) matched pattern: foo.bar 15(16) matched pattern: 'bar': foo.bar 16(17) matched pattern: {'foo': 1, 'bar': foo.bar} 17(18) element: PyStatementList 18(19) element: PyExpressionStatement 19(21) READ ACCESS: x 20(21) ASSERTTYPE ACCESS: null 21(22) element: PyExpressionStatement 22(23) READ ACCESS: y 23() element: null