Przeglądaj źródła

support `ParamSpec`

blueloveTH 1 dzień temu
rodzic
commit
6cbece9ebc
3 zmienionych plików z 9 dodań i 2 usunięć
  1. 1 0
      python/typing.py
  2. 0 0
      src/common/_generated.c
  3. 8 2
      src/compiler/compiler.c

+ 1 - 0
python/typing.py

@@ -40,6 +40,7 @@ Iterator = _PLACEHOLDER
 Hashable = _PLACEHOLDER
 
 TypeVar = _PLACEHOLDER
+ParamSpec = _PLACEHOLDER
 Self = _PLACEHOLDER
 
 Protocol = object

Plik diff jest za duży
+ 0 - 0
src/common/_generated.c


+ 8 - 2
src/compiler/compiler.c

@@ -2412,8 +2412,14 @@ static Error* consume_pep695_py312(Compiler* self) {
     Error* err;
     if(match(TK_LBRACKET)) {
         do {
-            consume(TK_ID);
-            if(match(TK_COLON)) check(consume_type_hints(self));
+            if(match(TK_POW)) {
+                // **P
+                consume(TK_ID);
+            } else {
+                // T: int
+                consume(TK_ID);
+                if(match(TK_COLON)) check(consume_type_hints(self));
+            }
         } while(match(TK_COMMA));
         consume(TK_RBRACKET);
     }

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików