@zzzen/pyright-internal 1.2.0-dev.20251005 → 1.2.0-dev.20251019

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/analyzer/checker.js +5 -0
  2. package/dist/analyzer/checker.js.map +1 -1
  3. package/dist/analyzer/decorators.js +19 -16
  4. package/dist/analyzer/decorators.js.map +1 -1
  5. package/dist/analyzer/namedTuples.js +18 -14
  6. package/dist/analyzer/namedTuples.js.map +1 -1
  7. package/dist/analyzer/patternMatching.js +18 -6
  8. package/dist/analyzer/patternMatching.js.map +1 -1
  9. package/dist/analyzer/service.d.ts +3 -1
  10. package/dist/analyzer/service.js +15 -4
  11. package/dist/analyzer/service.js.map +1 -1
  12. package/dist/analyzer/typeEvaluator.js +14 -1
  13. package/dist/analyzer/typeEvaluator.js.map +1 -1
  14. package/dist/analyzer/typePrinter.js +5 -0
  15. package/dist/analyzer/typePrinter.js.map +1 -1
  16. package/dist/common/configOptions.js +45 -1
  17. package/dist/common/configOptions.js.map +1 -1
  18. package/dist/common/fullAccessHost.d.ts +2 -2
  19. package/dist/common/fullAccessHost.js +2 -2
  20. package/dist/common/fullAccessHost.js.map +1 -1
  21. package/dist/common/host.d.ts +1 -1
  22. package/dist/common/host.js.map +1 -1
  23. package/dist/common/pythonVersion.js +1 -1
  24. package/dist/languageServerBase.d.ts +8 -6
  25. package/dist/languageServerBase.js +94 -60
  26. package/dist/languageServerBase.js.map +1 -1
  27. package/dist/languageService/pullDiagnosticsDynamicFeature.d.ts +12 -0
  28. package/dist/languageService/pullDiagnosticsDynamicFeature.js +43 -0
  29. package/dist/languageService/pullDiagnosticsDynamicFeature.js.map +1 -0
  30. package/dist/localization/localize.d.ts +3 -0
  31. package/dist/localization/localize.js +1 -0
  32. package/dist/localization/localize.js.map +1 -1
  33. package/dist/localization/package.nls.cs.json +3 -1
  34. package/dist/localization/package.nls.de.json +3 -1
  35. package/dist/localization/package.nls.en-us.json +4 -0
  36. package/dist/localization/package.nls.es.json +3 -1
  37. package/dist/localization/package.nls.fr.json +3 -1
  38. package/dist/localization/package.nls.it.json +3 -1
  39. package/dist/localization/package.nls.ja.json +3 -1
  40. package/dist/localization/package.nls.ko.json +3 -1
  41. package/dist/localization/package.nls.pl.json +3 -1
  42. package/dist/localization/package.nls.pt-br.json +3 -1
  43. package/dist/localization/package.nls.qps-ploc.json +3 -1
  44. package/dist/localization/package.nls.ru.json +3 -1
  45. package/dist/localization/package.nls.tr.json +3 -1
  46. package/dist/localization/package.nls.zh-cn.json +3 -1
  47. package/dist/localization/package.nls.zh-tw.json +3 -1
  48. package/dist/parser/parser.js +6 -2
  49. package/dist/parser/parser.js.map +1 -1
  50. package/dist/pyright.js +3 -1
  51. package/dist/pyright.js.map +1 -1
  52. package/dist/tests/chainedSourceFiles.test.js +1 -0
  53. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  54. package/dist/tests/checker.test.js +1 -1
  55. package/dist/tests/config.test.js +5 -1
  56. package/dist/tests/config.test.js.map +1 -1
  57. package/dist/tests/envVarUtils.test.js +1 -0
  58. package/dist/tests/envVarUtils.test.js.map +1 -1
  59. package/dist/tests/fourslash/signature.complicated.fourslash.js +3 -3
  60. package/dist/tests/fourslash/signature.complicated.fourslash.js.map +1 -1
  61. package/dist/tests/harness/fourslash/testLanguageService.js +1 -0
  62. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  63. package/dist/tests/harness/fourslash/testState.js +1 -0
  64. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  65. package/dist/tests/languageServer.test.js +4 -7
  66. package/dist/tests/languageServer.test.js.map +1 -1
  67. package/dist/tests/lsp/languageServerTestUtils.d.ts +5 -1
  68. package/dist/tests/lsp/languageServerTestUtils.js +103 -23
  69. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  70. package/dist/tests/typeEvaluator1.test.js +5 -1
  71. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  72. package/dist/tests/typeEvaluator2.test.js +5 -1
  73. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  74. package/dist/tests/typeEvaluator5.test.js +1 -1
  75. package/dist/tests/typeEvaluator7.test.js +5 -1
  76. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  77. package/package.json +1 -1
@@ -580,6 +580,7 @@
580
580
  "typedDictBaseClass": "Wszystkie klasy bazowe dla klas TypedDict muszą być również klasami TypedDict",
581
581
  "typedDictBoolParam": "Oczekiwano, że parametr „{name}” będzie miał wartość True lub False",
582
582
  "typedDictClosedExtras": "\"{name}\" klasy bazowej to TypedDict ograniczająca typ dodatkowych elementów do typu \"{type}\"",
583
+ "typedDictClosedFalseNonOpenBase": "Base class \"{name}\" is not an open TypedDict; closed=False is not allowed",
583
584
  "typedDictClosedNoExtras": "Klasa bazowa „{name}” jest closed TypedDict; dodatkowe elementy są niedozwolone",
584
585
  "typedDictDelete": "Nie można usunąć elementu w typie TypedDict",
585
586
  "typedDictEmptyName": "Nazwy w elemencie TypedDict nie mogą być puste",
@@ -605,6 +606,7 @@
605
606
  "unannotatedFunctionSkipped": "Analiza funkcji „{name}” została pominięta, ponieważ nie ma adnotacji",
606
607
  "unaryOperationNotAllowed": "Operator jednoargumentowy nie jest dozwolony w wyrażeniu typu",
607
608
  "unexpectedAsyncToken": "Oczekiwano wartości „def”, „with” lub „for” po „async”",
609
+ "unexpectedEof": "Unexpected EOF",
608
610
  "unexpectedExprToken": "Nieoczekiwany token na końcu wyrażenia",
609
611
  "unexpectedIndent": "Nieoczekiwane wcięcie",
610
612
  "unexpectedUnindent": "Nieoczekiwany brak wcięcia",
@@ -741,7 +743,7 @@
741
743
  "namedTupleNotAllowed": "Funkcja NamedTuple nie może być używana do sprawdzania wystąpień lub klas",
742
744
  "newMethodLocation": "Metoda __new__ jest zdefiniowana w klasie „{type}”",
743
745
  "newMethodSignature": "Sygnatura __new__ to typ „{type}”",
744
- "newTypeClassNotAllowed": "Klasy utworzonej za pomocą elementu NewType nie można używać z sprawdzaniem wystąpień i klas",
746
+ "newTypeClassNotAllowed": "Type created with NewType cannot be used with instance and class checks",
745
747
  "noOverloadAssignable": "Żadna przeciążona funkcja nie pasuje do typu „{type}”",
746
748
  "noneNotAllowed": "Wartość None nie może być używana w przypadku kontroli wystąpień lub klas",
747
749
  "orPatternMissingName": "Brak nazw: {name}",
@@ -580,6 +580,7 @@
580
580
  "typedDictBaseClass": "Todas as classes base para classes TypedDict também devem ser classes TypedDict",
581
581
  "typedDictBoolParam": "Esperava-se que o parâmetro \"{name}\" tivesse um valor True ou False",
582
582
  "typedDictClosedExtras": "A classe \"{name}\" é um TypedDict que limita o tipo de itens extras a serem digitados \"{type}\"",
583
+ "typedDictClosedFalseNonOpenBase": "Base class \"{name}\" is not an open TypedDict; closed=False is not allowed",
583
584
  "typedDictClosedNoExtras": "A classe base \"{name}\" é um TypedDict closed; itens extras não são permitidos",
584
585
  "typedDictDelete": "Não foi possível excluir o item em TypedDict",
585
586
  "typedDictEmptyName": "Os nomes dentro de um TypedDict não podem estar vazios",
@@ -605,6 +606,7 @@
605
606
  "unannotatedFunctionSkipped": "A análise da função \"{name}\" foi ignorada porque não foi anotada",
606
607
  "unaryOperationNotAllowed": "Operador unário não permitido na expressão de tipo",
607
608
  "unexpectedAsyncToken": "Esperado \"def\", \"with\" ou \"for\" para acompanhar \"async\"",
609
+ "unexpectedEof": "Unexpected EOF",
608
610
  "unexpectedExprToken": "Token inesperado no final da expressão",
609
611
  "unexpectedIndent": "Recuo inesperado",
610
612
  "unexpectedUnindent": "Recuo não esperado",
@@ -741,7 +743,7 @@
741
743
  "namedTupleNotAllowed": "NamedTuple não pode ser usado para verificações de instância ou de classe",
742
744
  "newMethodLocation": "O método __new__ é definido na classe \"{type}\"",
743
745
  "newMethodSignature": "A assinatura de__new__ é \"{type}\"",
744
- "newTypeClassNotAllowed": "A classe criada com NewType não pode ser usada com verificações de instância e classe",
746
+ "newTypeClassNotAllowed": "Type created with NewType cannot be used with instance and class checks",
745
747
  "noOverloadAssignable": "Nenhuma função sobrecarregada corresponde ao tipo \"{type}\"",
746
748
  "noneNotAllowed": "None não pode ser usado para verificações de instância ou de classe",
747
749
  "orPatternMissingName": "Nomes ausentes: {name}",
@@ -580,6 +580,7 @@
580
580
  "typedDictBaseClass": "[HxyA2][นั้Æll þæsë çlæssës før TypedDict çlæssës mµst ælsø þë TypedDict çlæssësẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまนั้ढूँ]",
581
581
  "typedDictBoolParam": "[GALOD][นั้Ëxpëçtëð \"{ñæmë}\" pæræmëtër tø hævë æ vælµë øf True ør FalseẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्นั้ढूँ]",
582
582
  "typedDictClosedExtras": "[mlkJO][นั้ßæsë çlæss \"{ñæmë}\" ïs æ TypedDict thæt lïmïts thë tÿpë øf ëxtræ ïtëms tø tÿpë \"{tÿpë}\"Ấğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्นั้ढूँ]",
583
+ "typedDictClosedFalseNonOpenBase": "[ifIlm][นั้ßæsë çlæss \"{ñæmë}\" ïs ñøt æñ øpëñ TypedDict; closed=Fælsë ïs ñøt ælløwëðẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまẤนั้ढूँ]",
583
584
  "typedDictClosedNoExtras": "[BCyXd][นั้ßæsë çlæss \"{ñæmë}\" ïs æ closed TypedDict; ëxtræ ïtëms ærë ñøt ælløwëðẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまนั้ढूँ]",
584
585
  "typedDictDelete": "[bdBu7][นั้Çøµlð ñøt ðëlëtë ïtëm ïñ TypedDictẤğ倪İЂҰक्र्तिृまนั้ढूँ]",
585
586
  "typedDictEmptyName": "[h45e7][นั้Ñæmës wïthïñ æ TypedDict çæññøt þë ëmptÿẤğ倪İЂҰक्र्तिृまẤğนั้ढूँ]",
@@ -605,6 +606,7 @@
605
606
  "unannotatedFunctionSkipped": "[Ovgyl][นั้Æñælÿsïs øf fµñçtïøñ \"{ñæmë}\" ïs skïppëð þëçæµsë ït ïs µñæññøtætëðẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृนั้ढूँ]",
606
607
  "unaryOperationNotAllowed": "[2WB31][นั้Üñærÿ øpërætør ñøt ælløwëð ïñ tÿpë ëxprëssïøñẤğ倪İЂҰक्र्तिृまẤğ倪İนั้ढूँ]",
607
608
  "unexpectedAsyncToken": "[fKSJb][นั้Ëxpëçtëð \"def\", \"with\" ør \"for\" tø følløw \"async\"Ấğ倪İЂҰक्र्तिृまẤğ倪İЂҰนั้ढूँ]",
609
+ "unexpectedEof": "[SyST0][นั้Üñëxpëçtëð ËØFẤğ倪İЂҰนั้ढूँ]",
608
610
  "unexpectedExprToken": "[MtBsu][นั้Üñëxpëçtëð tøkëñ æt ëñð øf ëxprëssïøñẤğ倪İЂҰक्र्तिृまẤนั้ढूँ]",
609
611
  "unexpectedIndent": "[uZUVS][นั้Üñëxpëçtëð ïñðëñtætïøñẤğ倪İЂҰक्र्นั้ढूँ]",
610
612
  "unexpectedUnindent": "[yqwy4][นั้Üñïñðëñt ñøt ëxpëçtëðẤğ倪İЂҰक्นั้ढूँ]",
@@ -741,7 +743,7 @@
741
743
  "namedTupleNotAllowed": "[gAlSp][นั้NamedTuple çæññøt þë µsëð før ïñstæñçë ør çlæss çhëçksẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्นั้ढूँ]",
742
744
  "newMethodLocation": "[n0dxL][นั้Thë __new__ mëthøð ïs ðëfïñëð ïñ çlæss \"{tÿpë}\"Ấğ倪İЂҰक्र्तिृまẤğ倪İЂนั้ढूँ]",
743
745
  "newMethodSignature": "[NeWKO][นั้§ïgñætµrë øf __new__ ïs \"{tÿpë}\"Ấğ倪İЂҰक्र्तिृนั้ढूँ]",
744
- "newTypeClassNotAllowed": "[JQmcY][นั้Çlæss çrëætëð wïth NewType çæññøt þë µsëð wïth ïñstæñçë æñð çlæss çhëçksẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまẤนั้ढूँ]",
746
+ "newTypeClassNotAllowed": "[JQmcY][นั้Tÿpë çrëætëð wïth NewType çæññøt þë µsëð wïth ïñstæñçë æñð çlæss çhëçksẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまนั้ढूँ]",
745
747
  "noOverloadAssignable": "[FJ88c][นั้Ñø øvërløæðëð fµñçtïøñ mætçhës tÿpë \"{tÿpë}\"Ấğ倪İЂҰक्र्तिृまẤğ倪İนั้ढूँ]",
746
748
  "noneNotAllowed": "[Yn8Lx][นั้None çæññøt þë µsëð før ïñstæñçë ør çlæss çhëçksẤğ倪İЂҰक्र्तिृまẤğ倪İЂนั้ढूँ]",
747
749
  "orPatternMissingName": "[kgiPM][นั้Mïssïñg ñæmës: {ñæmë}Ấğ倪İЂҰक्นั้ढूँ]",
@@ -580,6 +580,7 @@
580
580
  "typedDictBaseClass": "Все базовые классы для классов TypedDict также должны быть классами TypedDict",
581
581
  "typedDictBoolParam": "От параметра \"{name}\" ожидается значение True или False",
582
582
  "typedDictClosedExtras": "Базовый класс \"{name}\" является TypedDict, который ограничивает тип дополнительных элементов типом \"{type}\"",
583
+ "typedDictClosedFalseNonOpenBase": "Base class \"{name}\" is not an open TypedDict; closed=False is not allowed",
583
584
  "typedDictClosedNoExtras": "Базовый класс \"{name}\" представляет собой closed TypedDict; дополнительные элементы не разрешены",
584
585
  "typedDictDelete": "Не удалось удалить элемент в TypedDict",
585
586
  "typedDictEmptyName": "Имена в TypedDict не могут быть пустыми",
@@ -605,6 +606,7 @@
605
606
  "unannotatedFunctionSkipped": "Анализ функции \"{name}\" пропущен, так как она не аннотирована.",
606
607
  "unaryOperationNotAllowed": "Унарный оператор нельзя использовать в выражении типа",
607
608
  "unexpectedAsyncToken": "После \"async\" ожидается \"def\", \"with\" или \"for\"",
609
+ "unexpectedEof": "Unexpected EOF",
608
610
  "unexpectedExprToken": "Непредвиденный токен в конце выражения",
609
611
  "unexpectedIndent": "Непредвиденный отступ",
610
612
  "unexpectedUnindent": "Отступ не ожидается",
@@ -741,7 +743,7 @@
741
743
  "namedTupleNotAllowed": "NamedTuple не может использоваться для проверок экземпляров или классов",
742
744
  "newMethodLocation": "Метод __new__ определен в классе \"{type}\"",
743
745
  "newMethodSignature": "Сигнатура метода __new__ требует \"{type}\"",
744
- "newTypeClassNotAllowed": "Класс, созданный с NewType, нельзя использовать с проверками экземпляров и классов",
746
+ "newTypeClassNotAllowed": "Type created with NewType cannot be used with instance and class checks",
745
747
  "noOverloadAssignable": "Нет перегруженной функции, соответствующей типу \"{type}\"",
746
748
  "noneNotAllowed": "None невозможно использовать для проверок экземпляров или классов",
747
749
  "orPatternMissingName": "Отсутствуют имена: {name}",
@@ -580,6 +580,7 @@
580
580
  "typedDictBaseClass": "TypedDict sınıfları için tüm temel sınıflar da TypedDict sınıfları olmalıdır",
581
581
  "typedDictBoolParam": "True veya False değeri olması için \"{name}\" parametresi bekleniyordu",
582
582
  "typedDictClosedExtras": "Temel sınıf \"{name}\", TypedDict öğe türünü türle sınırlanmış bir \"{type}\"",
583
+ "typedDictClosedFalseNonOpenBase": "Base class \"{name}\" is not an open TypedDict; closed=False is not allowed",
583
584
  "typedDictClosedNoExtras": "\"{name}\" temel sınıfı closed bir TypedDict öğesidir; ek öğelere izin verilmiyor",
584
585
  "typedDictDelete": "TypedDict'da öğe silinemedi",
585
586
  "typedDictEmptyName": "TypedDict içindeki adlar boş olamaz",
@@ -605,6 +606,7 @@
605
606
  "unannotatedFunctionSkipped": "\"{name}\" işlevinin analizi, açıklanmadığından atlandı",
606
607
  "unaryOperationNotAllowed": "Tür ifadesinde birli işleç kullanılamaz",
607
608
  "unexpectedAsyncToken": "\"async\" öğesinin ardından \"def\", \"with\" veya \"for\" bekleniyordu",
609
+ "unexpectedEof": "Unexpected EOF",
608
610
  "unexpectedExprToken": "İfadenin sonunda beklenmeyen belirteç",
609
611
  "unexpectedIndent": "Beklenmeyen girinti",
610
612
  "unexpectedUnindent": "Girintiyi kaldırma beklenmiyordu",
@@ -741,7 +743,7 @@
741
743
  "namedTupleNotAllowed": "NamedTuple örnek veya sınıf kontrolleri için kullanılamaz",
742
744
  "newMethodLocation": "\"{type}\" sınıfı içinde __new__ metodu tanımlandı",
743
745
  "newMethodSignature": "__new__ imzası \"{type}\"",
744
- "newTypeClassNotAllowed": "NewType ile oluşturulan sınıf, örnek ve sınıf denetimleriyle kullanılamaz",
746
+ "newTypeClassNotAllowed": "Type created with NewType cannot be used with instance and class checks",
745
747
  "noOverloadAssignable": "Aşırı yüklenmiş işlevlerden hiçbiri \"{type}\" türüyle uyuşmuyor",
746
748
  "noneNotAllowed": "Örnek veya sınıf denetimleri için None kullanılamaz",
747
749
  "orPatternMissingName": "Eksik adlar: {name}",
@@ -580,6 +580,7 @@
580
580
  "typedDictBaseClass": "TypedDict 类的所有基类也必须是 TypedDict 类",
581
581
  "typedDictBoolParam": "预期“{name}”参数的值为 True 或 False",
582
582
  "typedDictClosedExtras": "基类 \"{name}\" 是限制额外项类型 \"{type}\" 的 TypedDict",
583
+ "typedDictClosedFalseNonOpenBase": "Base class \"{name}\" is not an open TypedDict; closed=False is not allowed",
583
584
  "typedDictClosedNoExtras": "基类 \"{name}\" 是 closed TypedDict; 不允许使用额外的项",
584
585
  "typedDictDelete": "无法删除 TypedDict 中的项",
585
586
  "typedDictEmptyName": "TypedDict 中的名称不能为空",
@@ -605,6 +606,7 @@
605
606
  "unannotatedFunctionSkipped": "已跳过对函数“{name}”的分析,因为它未被批注",
606
607
  "unaryOperationNotAllowed": "类型表达式中不允许使用一元运算符",
607
608
  "unexpectedAsyncToken": "“def”、“with” 或 “for” 应跟随 “async”",
609
+ "unexpectedEof": "Unexpected EOF",
608
610
  "unexpectedExprToken": "表达式末尾出现意外标记",
609
611
  "unexpectedIndent": "意外缩进",
610
612
  "unexpectedUnindent": "不应取消缩进",
@@ -741,7 +743,7 @@
741
743
  "namedTupleNotAllowed": "不能对实例或类检查使用 NamedTuple",
742
744
  "newMethodLocation": "__new__方法已在类“{type}”中定义",
743
745
  "newMethodSignature": "__new__的签名为“{type}”",
744
- "newTypeClassNotAllowed": "不能将使用 NewType 创建的类用于实例和类检查",
746
+ "newTypeClassNotAllowed": "Type created with NewType cannot be used with instance and class checks",
745
747
  "noOverloadAssignable": "没有重载函数与类型“{type}”匹配",
746
748
  "noneNotAllowed": "不能对实例或类检查使用 None",
747
749
  "orPatternMissingName": "缺少名称: {name}",
@@ -580,6 +580,7 @@
580
580
  "typedDictBaseClass": "TypedDict 類別的所有基底類別也必須是 TypedDict 類別",
581
581
  "typedDictBoolParam": "預期 \"{name}\" 參數的值為 True 或 False",
582
582
  "typedDictClosedExtras": "基類 \"{name}\" 是限制額外專案類型的 TypedDict \"{type}\"",
583
+ "typedDictClosedFalseNonOpenBase": "Base class \"{name}\" is not an open TypedDict; closed=False is not allowed",
583
584
  "typedDictClosedNoExtras": "基底類別 \"{name}\" 是 closed 的 TypedDict; 不允許額外項目",
584
585
  "typedDictDelete": "無法刪除 TypedDict 中的項目",
585
586
  "typedDictEmptyName": "TypedDict 內的名稱不可為空白",
@@ -605,6 +606,7 @@
605
606
  "unannotatedFunctionSkipped": "因為未標註函式 \"{name}\",所以略過其分析",
606
607
  "unaryOperationNotAllowed": "類型運算式中不允許一元運算子",
607
608
  "unexpectedAsyncToken": "預期為 \"def\"、\"with\" 或 \"for\" 來追蹤 \"async\"",
609
+ "unexpectedEof": "Unexpected EOF",
608
610
  "unexpectedExprToken": "運算式結尾未預期的權杖",
609
611
  "unexpectedIndent": "未預期的縮排",
610
612
  "unexpectedUnindent": "取消縮排未預期",
@@ -741,7 +743,7 @@
741
743
  "namedTupleNotAllowed": "執行個體或類別檢查無法使用 NamedTuple",
742
744
  "newMethodLocation": "__new__ 方法於類別 \"{type}\" 中定義",
743
745
  "newMethodSignature": "__new__ 的簽章為 \"{type}\"",
744
- "newTypeClassNotAllowed": "使用 NewType 建立的類別不能與執行個體和類別檢查一起使用",
746
+ "newTypeClassNotAllowed": "Type created with NewType cannot be used with instance and class checks",
745
747
  "noOverloadAssignable": "沒有任何多載函式符合類型 \"{type}\"",
746
748
  "noneNotAllowed": "無法對執行個體或類別檢查使用 None",
747
749
  "orPatternMissingName": "遺失名稱: {name}",
@@ -1767,6 +1767,7 @@ class Parser {
1767
1767
  // "dry run" to determine whether the entire list of "with items"
1768
1768
  // is enclosed in parentheses.
1769
1769
  let isParenthesizedWithItemList = false;
1770
+ let isParenthesizedDisallowed = false;
1770
1771
  if (possibleParen.type === 13 /* TokenType.OpenParenthesis */) {
1771
1772
  const openParenTokenIndex = this._tokenIndex;
1772
1773
  this._suppressErrors(() => {
@@ -1782,7 +1783,10 @@ class Parser {
1782
1783
  }
1783
1784
  if (this._peekToken().type === 14 /* TokenType.CloseParenthesis */ &&
1784
1785
  this._peekToken(1).type === 10 /* TokenType.Colon */) {
1785
- isParenthesizedWithItemList = withItemList.length !== 1 || withItemList[0].d.target !== undefined;
1786
+ isParenthesizedWithItemList = true;
1787
+ // Some forms of parenthesized context with statements were not
1788
+ // allowed prior to Python 3.9. Is this such a form?
1789
+ isParenthesizedDisallowed = withItemList.length !== 1 || withItemList[0].d.target !== undefined;
1786
1790
  }
1787
1791
  this._tokenIndex = openParenTokenIndex;
1788
1792
  withItemList = [];
@@ -1790,7 +1794,7 @@ class Parser {
1790
1794
  }
1791
1795
  if (isParenthesizedWithItemList) {
1792
1796
  this._consumeTokenIfType(13 /* TokenType.OpenParenthesis */);
1793
- if (pythonVersion_1.PythonVersion.isLessThan(this._getLanguageVersion(), pythonVersion_1.pythonVersion3_9)) {
1797
+ if (isParenthesizedDisallowed && pythonVersion_1.PythonVersion.isLessThan(this._getLanguageVersion(), pythonVersion_1.pythonVersion3_9)) {
1794
1798
  this._addSyntaxError(localize_1.LocMessage.parenthesizedContextManagerIllegal(), possibleParen);
1795
1799
  }
1796
1800
  }