Explorar el Código

support `ParamSpec`

blueloveTH hace 1 día
padre
commit
6cbece9ebc
Se han modificado 3 ficheros con 9 adiciones y 2 borrados
  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

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 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);
     }

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio