]> 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:

Fix call patterns that contain as-expression on the kwargs (#2749)
authorBatuhan Taskaya <isidentical@gmail.com>
Fri, 7 Jan 2022 16:51:36 +0000 (19:51 +0300)
committerGitHub <noreply@github.com>
Fri, 7 Jan 2022 16:51:36 +0000 (18:51 +0200)
CHANGES.md
src/blib2to3/Grammar.txt
tests/data/pattern_matching_extras.py

index bfecbb7831d70893248efc013319eba90dede200..ec2f5dc52ab118673dfc895598cfc9e7cc991085 100644 (file)
@@ -12,6 +12,8 @@
   (#2686)
 - Fix cases that contain multiple top-level as-expressions, like `case 1 as a, 2 as b`
   (#2716)
   (#2686)
 - Fix cases that contain multiple top-level as-expressions, like `case 1 as a, 2 as b`
   (#2716)
+- Fix call patterns that contain as-expressions with keyword arguments, like
+  `case Foo(bar=baz as quux)` (#2749)
 - 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)
 - 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 27776a3b65c153f4762774cff3113d2d9843f7a7..cf4799f8abe860acff10cb1c0fe84ec5130a3b77 100644 (file)
@@ -187,7 +187,7 @@ arglist: argument (',' argument)* [',']
 argument: ( test [comp_for] |
             test ':=' test |
             test 'as' test |
 argument: ( test [comp_for] |
             test ':=' test |
             test 'as' test |
-            test '=' test |
+            test '=' asexpr_test |
            '**' test |
             '*' test )
 
            '**' test |
             '*' test )
 
index b652d2685ec1f529b8d2d489c13e9e39254ee385..9f6907f7575f0c673abe9230f4c51a54d1312620 100644 (file)
@@ -103,3 +103,17 @@ match something:
 
     case 4 as d, (5 as e), (6 | 7 as g), *h:
         pass
 
     case 4 as d, (5 as e), (6 | 7 as g), *h:
         pass
+
+
+match bar1:
+    case Foo(aa=Callable() as aa, bb=int()):
+        print(bar1.aa, bar1.bb)
+    case _:
+        print("no match", "\n")
+
+
+match bar1:
+    case Foo(
+        normal=x, perhaps=[list, {an: d, dict: 1.0}] as y, otherwise=something, q=t as u
+    ):
+        pass