| -- Python 3.10 semantic analysis test cases. |
| |
| [case testCapturePattern] |
| x = 1 |
| match x: |
| case a: |
| a |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:2( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| AsPattern:3( |
| NameExpr(a* [__main__.a]))) |
| Body( |
| ExpressionStmt:4( |
| NameExpr(a [__main__.a]))))) |
| |
| [case testCapturePatternOutliving] |
| x = 1 |
| match x: |
| case a: |
| pass |
| a |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:2( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| AsPattern:3( |
| NameExpr(a* [__main__.a]))) |
| Body( |
| PassStmt:4())) |
| ExpressionStmt:5( |
| NameExpr(a [__main__.a]))) |
| |
| [case testNestedCapturePatterns] |
| x = 1 |
| match x: |
| case ([a], {'k': b}): |
| a |
| b |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:2( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| SequencePattern:3( |
| SequencePattern:3( |
| AsPattern:3( |
| NameExpr(a* [__main__.a]))) |
| MappingPattern:3( |
| Key( |
| StrExpr(k)) |
| Value( |
| AsPattern:3( |
| NameExpr(b* [__main__.b])))))) |
| Body( |
| ExpressionStmt:4( |
| NameExpr(a [__main__.a])) |
| ExpressionStmt:5( |
| NameExpr(b [__main__.b]))))) |
| |
| [case testMappingPatternRest] |
| x = 1 |
| match x: |
| case {**r}: |
| r |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:2( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| MappingPattern:3( |
| Rest( |
| NameExpr(r* [__main__.r])))) |
| Body( |
| ExpressionStmt:4( |
| NameExpr(r [__main__.r]))))) |
| |
| |
| [case testAsPattern] |
| x = 1 |
| match x: |
| case 1 as a: |
| a |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:2( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| AsPattern:3( |
| ValuePattern:3( |
| IntExpr(1)) |
| NameExpr(a* [__main__.a]))) |
| Body( |
| ExpressionStmt:4( |
| NameExpr(a [__main__.a]))))) |
| |
| [case testGuard] |
| x = 1 |
| a = 1 |
| match x: |
| case 1 if a: |
| pass |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| AssignmentStmt:2( |
| NameExpr(a [__main__.a]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:3( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| ValuePattern:4( |
| IntExpr(1))) |
| Guard( |
| NameExpr(a [__main__.a])) |
| Body( |
| PassStmt:5()))) |
| |
| [case testCapturePatternInGuard] |
| x = 1 |
| match x: |
| case a if a: |
| pass |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:2( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| AsPattern:3( |
| NameExpr(a* [__main__.a]))) |
| Guard( |
| NameExpr(a [__main__.a])) |
| Body( |
| PassStmt:4()))) |
| |
| [case testAsPatternInGuard] |
| x = 1 |
| match x: |
| case 1 as a if a: |
| pass |
| [out] |
| MypyFile:1( |
| AssignmentStmt:1( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:2( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| AsPattern:3( |
| ValuePattern:3( |
| IntExpr(1)) |
| NameExpr(a* [__main__.a]))) |
| Guard( |
| NameExpr(a [__main__.a])) |
| Body( |
| PassStmt:4()))) |
| |
| [case testValuePattern] |
| import _a |
| |
| x = 1 |
| match x: |
| case _a.b: |
| pass |
| [fixture _a.py] |
| b = 1 |
| [out] |
| MypyFile:1( |
| Import:1(_a) |
| AssignmentStmt:3( |
| NameExpr(x [__main__.x]) |
| IntExpr(1) |
| builtins.int) |
| MatchStmt:4( |
| NameExpr(x [__main__.x]) |
| Pattern( |
| ValuePattern:5( |
| MemberExpr:5( |
| NameExpr(_a) |
| b [_a.b]))) |
| Body( |
| PassStmt:6()))) |