소스 검색

support `ParamSpec`

blueloveTH 1 일 전
부모
커밋
6cbece9ebc
3개의 변경된 파일9개의 추가작업 그리고 2개의 파일을 삭제
  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

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 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);
     }

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.