]> 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 grammar for type alias support (#3949)
authorJelle Zijlstra <jelle.zijlstra@gmail.com>
Mon, 16 Oct 2023 17:53:38 +0000 (10:53 -0700)
committerGitHub <noreply@github.com>
Mon, 16 Oct 2023 17:53:38 +0000 (10:53 -0700)
Fixes #3948

CHANGES.md
src/blib2to3/Grammar.txt
tests/data/cases/type_aliases.py

index 1f6a008d643cc6fe9159b7861147f10e85511a03..610a9de0e431af4bfff2a4fd39f2bfabeb31a4c9 100644 (file)
@@ -37,6 +37,9 @@
 
 <!-- Changes to the parser or to version autodetection -->
 
+- Add support for PEP 695 type aliases containing lambdas and other unusual expressions
+  (#3949)
+
 ### Performance
 
 <!-- Changes that improve Black's performance. -->
index be91df757408cc226019898b47bb05bd6d5b2dcd..5db78723cecd4e4fdd474bb9a528448fc27ea4e4 100644 (file)
@@ -108,7 +108,7 @@ dotted_as_names: dotted_as_name (',' dotted_as_name)*
 dotted_name: NAME ('.' NAME)*
 global_stmt: ('global' | 'nonlocal') NAME (',' NAME)*
 assert_stmt: 'assert' test [',' test]
-type_stmt: "type" NAME [typeparams] '=' expr
+type_stmt: "type" NAME [typeparams] '=' test
 
 compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt | match_stmt
 async_stmt: ASYNC (funcdef | with_stmt | for_stmt)
index a3c1931c9fc08d63ca438a770dee65b64ce94249..9631bfd5ccc3c3cf815ab2421ac531f37810ff18 100644 (file)
@@ -1,6 +1,10 @@
 # flags: --minimum-version=3.12
+
 type A=int
 type Gen[T]=list[T]
+type Alias[T]=lambda: T
+type And[T]=T and T
+type IfElse[T]=T if T else T
 
 type = aliased
 print(type(42))
@@ -9,6 +13,9 @@ print(type(42))
 
 type A = int
 type Gen[T] = list[T]
+type Alias[T] = lambda: T
+type And[T] = T and T
+type IfElse[T] = T if T else T
 
 type = aliased
 print(type(42))