]> git.madduck.net Git - etc/vim.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Support multiple top-level as-expressions on case statements (#2716)
authorBatuhan Taskaya <isidentical@gmail.com>
Tue, 21 Dec 2021 18:16:55 +0000 (21:16 +0300)
committerGitHub <noreply@github.com>
Tue, 21 Dec 2021 18:16:55 +0000 (10:16 -0800)
CHANGES.md
src/blib2to3/Grammar.txt
tests/data/pattern_matching_extras.py

index 252f2cc886389a6d52c841679e7592a60001c490..d5cfb623c9ac32d098347adcf99ddfe737d98698 100644 (file)
@@ -10,6 +10,8 @@
   underlying SyntaxError (#2693)
 - Fix mapping cases that contain as-expressions, like `case {"key": 1 | 2 as password}`
   (#2686)
+- Fix cases that contain multiple top-level as-expressions, like `case 1 as a, 2 as b`
+  (#2716)
 - No longer color diff headers white as it's unreadable in light themed terminals
   (#2691)
 - Tuple unpacking on `return` and `yield` constructs now implies 3.8+ (#2700)
index 600712ce2f072e2b23c34f3312d5c34b7caca38f..27776a3b65c153f4762774cff3113d2d9843f7a7 100644 (file)
@@ -247,5 +247,5 @@ subject_expr: (namedexpr_test|star_expr) (',' (namedexpr_test|star_expr))* [',']
 # cases
 case_block: "case" patterns [guard] ':' suite
 guard: 'if' namedexpr_test
-patterns: pattern ['as' pattern]
-pattern: (expr|star_expr) (',' (expr|star_expr))* [',']
+patterns: pattern (',' pattern)* [',']
+pattern: (expr|star_expr) ['as' expr]
index c00585e928523e56da6c63caa903173fb9421f90..b652d2685ec1f529b8d2d489c13e9e39254ee385 100644 (file)
@@ -92,3 +92,14 @@ match something:
         pass
     case {"maybe": something(complicated as this) as that}:
         pass
+
+
+match something:
+    case 1 as a:
+        pass
+
+    case 2 as b, 3 as c:
+        pass
+
+    case 4 as d, (5 as e), (6 | 7 as g), *h:
+        pass