Skip to content

Commit 8b275d1

Browse files
committed
Bugfix for handling of kwargs in MatchClass
+ explicit tests for MatchClass
1 parent 3fdf178 commit 8b275d1

File tree

3 files changed

+39
-1
lines changed

3 files changed

+39
-1
lines changed

pasta/base/annotate.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1144,7 +1144,8 @@ def visit_MatchClass(self, node):
11441144
node, 'comma_%d' % arg_i, [self.ws, ',', self.ws], default=', ')
11451145

11461146
for i, (arg, pattern) in enumerate(zip(node.kwd_attrs, node.kwd_patterns)):
1147-
self.visit(arg)
1147+
self.attr(node, 'arg_%d' % i, [self.ws, arg, self.ws],
1148+
deps=('kwd_attrs',))
11481149
self.attr(node, 'pattern_%d' % i, [self.ws, '=', self.ws], default='=')
11491150
self.visit(pattern)
11501151
arg_i += 1
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
(-1, -1) Module prefix=|@@indent@@| suffix=|@@indent@@| indent=||
2+
(1, 0) Match prefix=|| suffix=|| indent=||
3+
(1, 6) Name a prefix=|| suffix=|| indent=||
4+
(-1, -1) match_case prefix=|@@indent@@| suffix=|| indent=| |
5+
(-1, -1) match_case prefix=|@@indent@@| suffix=|| indent=| |
6+
(-1, -1) match_case prefix=|@@indent@@| suffix=|| indent=| |
7+
(-1, -1) Load prefix=|| suffix=|| indent=||
8+
(2, 7) MatchClass prefix=|| suffix=|| indent=| |
9+
(3, 4) Expr prefix=|@@indent@@| suffix=|\n| indent=| |
10+
(4, 7) MatchClass prefix=|| suffix=|| indent=| |
11+
(5, 4) Expr prefix=|@@indent@@| suffix=|\n| indent=| |
12+
(6, 9) MatchClass prefix=|| suffix=|| indent=| |
13+
(7, 4) Expr prefix=|@@indent@@| suffix=|\n| indent=| |
14+
(2, 7) Name B prefix=|| suffix=|| indent=| |
15+
(3, 4) Name c prefix=|| suffix=|| indent=| |
16+
(4, 7) Name D prefix=|| suffix=|| indent=| |
17+
(4, 9) MatchAs e prefix=|| suffix=|| indent=| |
18+
(4, 14) MatchAs g prefix=|| suffix=|| indent=| |
19+
(5, 4) Name h prefix=|| suffix=|| indent=| |
20+
(6, 9) Name I prefix=|| suffix=| | indent=| |
21+
(6, 15) MatchAs j prefix=|| suffix=| | indent=| |
22+
(6, 28) MatchAs l prefix=|| suffix=|| indent=| |
23+
(6, 32) MatchAs n prefix=|| suffix=|| indent=| |
24+
(7, 4) Name o prefix=|| suffix=|| indent=| |
25+
(-1, -1) Load prefix=|| suffix=|| indent=||
26+
(-1, -1) Load prefix=|| suffix=|| indent=||
27+
(-1, -1) Load prefix=|| suffix=|| indent=||
28+
(-1, -1) Load prefix=|| suffix=|| indent=||
29+
(-1, -1) Load prefix=|| suffix=|| indent=||
30+
(-1, -1) Load prefix=|| suffix=|| indent=||

testdata/ast/match_class.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
match a:
2+
case B():
3+
c
4+
case D(e, f=g):
5+
h
6+
case I ( j ,k = l,m=n):
7+
o

0 commit comments

Comments
 (0)