blob: e96a3ca9d7770d2eea78c02002a04524e9a50d7e [file] [log] [blame] [edit]
-- 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())))