@zzzen/pyright-internal 1.2.0-dev.20230806 → 1.2.0-dev.20230820
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.
- package/dist/analyzer/backgroundAnalysisProgram.d.ts +6 -5
- package/dist/analyzer/backgroundAnalysisProgram.js +6 -5
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +8 -2
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -0
- package/dist/analyzer/checker.js +79 -8
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +5 -5
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/constraintSolver.d.ts +1 -0
- package/dist/analyzer/constraintSolver.js +30 -23
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/dataClasses.js +242 -236
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/decorators.js +8 -8
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/enums.js +12 -0
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.js +3 -1
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/namedTuples.js +6 -0
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +1 -1
- package/dist/analyzer/operations.js +2 -2
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +4 -1
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +2 -1
- package/dist/analyzer/parameterUtils.js +15 -0
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +3 -3
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +4 -1
- package/dist/analyzer/program.js +8 -10
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.js +42 -20
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +3 -0
- package/dist/analyzer/service.js +37 -2
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +279 -141
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +6 -2
- package/dist/analyzer/typeEvaluatorTypes.js +10 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +9 -6
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +4 -1
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -0
- package/dist/analyzer/typeUtils.js +47 -29
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +3 -1
- package/dist/analyzer/types.js +3 -1
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysis.d.ts +2 -1
- package/dist/backgroundAnalysis.js +2 -2
- package/dist/backgroundAnalysis.js.map +1 -1
- package/dist/backgroundAnalysisBase.d.ts +3 -3
- package/dist/backgroundAnalysisBase.js +3 -3
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +7 -6
- package/dist/backgroundThreadBase.js +20 -6
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/common/console.js.map +1 -1
- package/dist/common/extensibility.d.ts +2 -18
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -1
- package/dist/common/pathUtils.d.ts +1 -0
- package/dist/common/pathUtils.js +19 -5
- package/dist/common/pathUtils.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +1 -1
- package/dist/common/realFileSystem.js +12 -8
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.d.ts +15 -0
- package/dist/common/serviceProvider.js +37 -0
- package/dist/common/serviceProvider.js.map +1 -0
- package/dist/common/serviceProviderExtensions.d.ts +16 -0
- package/dist/common/serviceProviderExtensions.js +27 -0
- package/dist/common/serviceProviderExtensions.js.map +1 -0
- package/dist/languageServerBase.d.ts +6 -5
- package/dist/languageServerBase.js +8 -6
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/navigationUtils.js +1 -1
- package/dist/languageService/navigationUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +25 -4
- package/dist/localization/localize.js +8 -2
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +4 -3
- package/dist/localization/package.nls.de.json +4 -3
- package/dist/localization/package.nls.en-us.json +17 -11
- package/dist/localization/package.nls.es.json +4 -3
- package/dist/localization/package.nls.fr.json +4 -3
- package/dist/localization/package.nls.it.json +4 -3
- package/dist/localization/package.nls.ja.json +4 -3
- package/dist/localization/package.nls.ko.json +4 -3
- package/dist/localization/package.nls.pl.json +4 -3
- package/dist/localization/package.nls.pt-br.json +4 -3
- package/dist/localization/package.nls.qps-ploc.json +3 -2
- package/dist/localization/package.nls.ru.json +4 -3
- package/dist/localization/package.nls.tr.json +4 -3
- package/dist/localization/package.nls.zh-cn.json +4 -3
- package/dist/localization/package.nls.zh-tw.json +3 -2
- package/dist/nodeMain.js +2 -1
- package/dist/nodeMain.js.map +1 -1
- package/dist/parser/parser.d.ts +1 -0
- package/dist/parser/parser.js +80 -20
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyrightFileSystem.d.ts +3 -1
- package/dist/pyrightFileSystem.js.map +1 -1
- package/dist/readonlyAugmentedFileSystem.d.ts +1 -1
- package/dist/readonlyAugmentedFileSystem.js +2 -2
- package/dist/readonlyAugmentedFileSystem.js.map +1 -1
- package/dist/server.js +8 -2
- package/dist/server.js.map +1 -1
- package/dist/tests/harness/fourslash/runner.js +1 -1
- package/dist/tests/harness/fourslash/runner.js.map +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js +1 -1
- package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.js +6 -1
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +2 -2
- package/dist/tests/harness/vfs/filesystem.js +1 -1
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/service.test.js +65 -0
- package/dist/tests/service.test.js.map +1 -1
- package/dist/tests/testUtils.js +6 -1
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +4 -4
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +9 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +7 -3
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +10 -2
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +10 -2
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/dist/tests/zipfs.test.js +8 -5
- package/dist/tests/zipfs.test.js.map +1 -1
- package/package.json +1 -1
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "指定された引数に一致する \"{name}\" のオーバーロードがありません",
|
294
294
|
"noReturnContainsReturn": "戻り値の型が \"NoReturn\" として宣言されている関数に return ステートメントを含めることはできません",
|
295
295
|
"noReturnContainsYield": "戻り値の型 \"NoReturn\" を宣言した関数に yield ステートメントを含めることはできません",
|
296
|
-
"noReturnReturnsNone": "
|
296
|
+
"noReturnReturnsNone": "戻り値の型が \"NoReturn\" として宣言されている関数は \"None\" を返すことができません",
|
297
297
|
"nonDefaultAfterDefault": "既定以外の引数は既定の引数の後に続きます",
|
298
298
|
"nonLocalInModule": "モジュール レベルでは非ローカル宣言は許可されません",
|
299
299
|
"nonLocalNoBinding": "非ローカル \"{name}\" のバインドが見つかりません",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "\"Required\" の後に 1 つの型引数が必要です",
|
384
384
|
"requiredNotInTypedDict": "このコンテキストでは\"必須\" は許可されていません",
|
385
385
|
"returnInAsyncGenerator": "値を持つ return ステートメントは、非同期ジェネレーターでは使用できません",
|
386
|
-
"returnMissing": "
|
386
|
+
"returnMissing": "戻り値の型が \"{returnType}\" として宣言されている関数は、すべてのコード パスで値を返す必要があります",
|
387
387
|
"returnOutsideFunction": "\"return\" は関数内でのみ使用できます",
|
388
388
|
"returnTypeContravariant": "反変の型変数は戻り値の型では使用できません",
|
389
389
|
"returnTypeMismatch": "型 \"{exprType}\" の式を戻り値の型 \"{returnType}\" に割り当てることはできません",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "インデックス {index} が型 {type} の範囲外です",
|
430
430
|
"typeAliasIllegalExpressionForm": "型エイリアス定義の式フォームが無効です",
|
431
431
|
"typeAliasIsRecursiveDirect": "型エイリアス \"{name}\" は、その定義でそれ自体を使用できません",
|
432
|
+
"typeAliasNotAllowed": "型のエイリアス \"{name}\" は、このコンテキストでは使用できません",
|
432
433
|
"typeAliasNotInModuleOrClass": "TypeAlias は、モジュールまたはクラススコープ内でのみ定義できます",
|
433
434
|
"typeAliasRedeclared": "\"{name}\" は TypeAlias として宣言されており、1 回だけ割り当てることができます",
|
434
435
|
"typeAliasStatementIllegal": "型エイリアス ステートメントには Python 3.12 以降が必要です",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "型パラメーター リストは、TypeVar、TypeVarTuple、または ParamSpec のみを含むタプルである必要があります",
|
439
440
|
"typeAnnotationCall": "型式では呼び出し式を使用できません",
|
440
441
|
"typeAnnotationVariable": "型式では変数を使用できません",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "\"type\" の型引数はクラスである必要があります。呼び出し可能関数はサポートされていません",
|
442
443
|
"typeArgListExpected": "ParamSpec、省略記号、または型の一覧が必要です",
|
443
444
|
"typeArgListNotAllowed": "この型引数にはリスト式を使用できません",
|
444
445
|
"typeArgsExpectingNone": "クラス \"{name}\" に型引数が必要ありません",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "제공된 인수와 일치하는 \"{name}\"에 대한 오버로드가 없습니다.",
|
294
294
|
"noReturnContainsReturn": "선언된 반환 형식이 \"NoReturn\"인 함수는 return 문을 포함할 수 없습니다.",
|
295
295
|
"noReturnContainsYield": "선언된 반환 형식이 \"NoReturn\"인 함수는 yield 문을 포함할 수 없습니다.",
|
296
|
-
"noReturnReturnsNone": "선언된 형식이 \"NoReturn\"인 함수는 \"None\"을 반환할 수 없습니다.",
|
296
|
+
"noReturnReturnsNone": "선언된 반환 형식이 \"NoReturn\"인 함수는 \"None\"을 반환할 수 없습니다.",
|
297
297
|
"nonDefaultAfterDefault": "기본값이 아닌 인수가 기본 인수를 따릅니다.",
|
298
298
|
"nonLocalInModule": "모듈 수준에서는 비로컬 선언을 사용할 수 없습니다.",
|
299
299
|
"nonLocalNoBinding": "비로컬 \"{name}\"에 대한 바인딩을 찾을 수 없습니다.",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "‘Required’ 뒤에 단일 형식 인수가 필요합니다.",
|
384
384
|
"requiredNotInTypedDict": "이 컨텍스트에서는 \"Required\"를 사용할 수 없습니다.",
|
385
385
|
"returnInAsyncGenerator": "값이 있는 Return 문은 비동기 생성기에서 사용할 수 없습니다.",
|
386
|
-
"returnMissing": "선언된
|
386
|
+
"returnMissing": "선언된 반환 형식이 \"{returnType}\"인 함수는 모든 코드 경로에서 값을 반환해야 합니다.",
|
387
387
|
"returnOutsideFunction": "‘return’은 함수 내에서만 사용할 수 있습니다.",
|
388
388
|
"returnTypeContravariant": "반공변 유형 변수는 반환 형식에 사용할 수 없습니다.",
|
389
389
|
"returnTypeMismatch": "\"{exprType}\" 형식의 식을 반환 형식 \"{returnType}\"에 할당할 수 없습니다.",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "{index} 인덱스가 {type} 형식의 범위를 벗어났습니다.",
|
430
430
|
"typeAliasIllegalExpressionForm": "형식 별칭 정의에 대한 식 양식이 잘못되었습니다.",
|
431
431
|
"typeAliasIsRecursiveDirect": "형식 별칭 ‘{name}’의 정의에서 스스로를 사용할 수 없습니다.",
|
432
|
+
"typeAliasNotAllowed": "이 컨텍스트에서 형식 별칭 \"{name}\"을(를) 사용할 수 없습니다.",
|
432
433
|
"typeAliasNotInModuleOrClass": "TypeAlias는 모듈 또는 클래스 범위 내에서만 정의할 수 있습니다.",
|
433
434
|
"typeAliasRedeclared": "\"{name}\"은(는) TypeAlias로 선언되며 한 번만 할당할 수 있습니다.",
|
434
435
|
"typeAliasStatementIllegal": "형식 별칭 문에는 Python 3.12 이상이 필요합니다.",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "형식 매개 변수 목록은 TypeVar, TypeVarTuple 또는 ParamSpec만 포함하는 튜플이어야 합니다.",
|
439
440
|
"typeAnnotationCall": "형식 식에는 호출 식을 사용할 수 없습니다.",
|
440
441
|
"typeAnnotationVariable": "형식 식에는 변수를 사용할 수 없습니다.",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "\"type\"에 대한 형식 인수는 클래스여야 합니다. 콜러블은 지원되지 않습니다.",
|
442
443
|
"typeArgListExpected": "ParamSpec, 줄임표 또는 형식 목록이 필요합니다.",
|
443
444
|
"typeArgListNotAllowed": "이 형식 인수에는 목록 식을 사용할 수 없습니다.",
|
444
445
|
"typeArgsExpectingNone": "클래스 \"{name}\"에 형식 인수가 필요하지 않습니다.",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "Żadne przeciążenia dla nazwy „{name}” nie pasują do podanych argumentów",
|
294
294
|
"noReturnContainsReturn": "Funkcja z zadeklarowanym zwracanym typem „NoReturn” nie może zawierać instrukcji Return",
|
295
295
|
"noReturnContainsYield": "Funkcja z zadeklarowanym zwracanym typem „NoReturn” nie może zawierać instrukcji Yield",
|
296
|
-
"noReturnReturnsNone": "Funkcja
|
296
|
+
"noReturnReturnsNone": "Funkcja z zadeklarowanym typem zwracanym „NoReturn” nie może zwracać wartości „None”",
|
297
297
|
"nonDefaultAfterDefault": "Argument inny niż domyślny następuje po argumencie domyślnym",
|
298
298
|
"nonLocalInModule": "Deklaracja nielokalna nie jest dozwolona na poziomie modułu",
|
299
299
|
"nonLocalNoBinding": "Nie znaleziono powiązania dla nielokalnej nazwy „{name}”.",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "Oczekiwano jednego argumentu typu po wartości „Required”",
|
384
384
|
"requiredNotInTypedDict": "Element „Required” jest niedozwolony w tym kontekście",
|
385
385
|
"returnInAsyncGenerator": "Instrukcja „return” z wartością jest niedozwolona w generatorze asynchronicznym",
|
386
|
-
"returnMissing": "Funkcja z zadeklarowanym typem „{returnType}” musi zwracać wartość we wszystkich ścieżkach kodu",
|
386
|
+
"returnMissing": "Funkcja z zadeklarowanym typem zwracanym „{returnType}” musi zwracać wartość we wszystkich ścieżkach kodu",
|
387
387
|
"returnOutsideFunction": "Instrukcja „return” może być używana tylko w ramach funkcji",
|
388
388
|
"returnTypeContravariant": "Kontrawariantna zmienna typu nie może być używana w zwracanym typie",
|
389
389
|
"returnTypeMismatch": "Wyrażenia typu „{exprType}” nie można przypisać do zwracanego typu „{returnType}”",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "Indeks {index} jest poza zakresem dla typu {type}",
|
430
430
|
"typeAliasIllegalExpressionForm": "Nieprawidłowy formularz wyrażenia dla definicji aliasu typu",
|
431
431
|
"typeAliasIsRecursiveDirect": "Alias typu „{name}” nie może używać samego siebie w swojej definicji",
|
432
|
+
"typeAliasNotAllowed": "Alias typu „{name}” nie może być używany w tym kontekście",
|
432
433
|
"typeAliasNotInModuleOrClass": "Typ TypeAlias można zdefiniować tylko w zakresie modułu lub klasy",
|
433
434
|
"typeAliasRedeclared": "Nazwa „{name}” jest zadeklarowana jako TypeAlias i może być przypisana tylko raz",
|
434
435
|
"typeAliasStatementIllegal": "Instrukcja typu alias wymaga języka Python w wersji 3.12 lub nowszej",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "Lista parametrów typu musi być krotką zawierającą tylko parametry TypeVar, TypeVarTuple lub ParamSpec",
|
439
440
|
"typeAnnotationCall": "Wyrażenie wywołania jest niedozwolone w wyrażeniu typu",
|
440
441
|
"typeAnnotationVariable": "Zmienna niedozwolona w wyrażeniu typu",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "Argument typu „type” musi być klasą; elementy wywoływane nie są obsługiwane",
|
442
443
|
"typeArgListExpected": "Oczekiwano parametru ParamSpec, wielokropka lub listy typów",
|
443
444
|
"typeArgListNotAllowed": "Wyrażenie listy jest niedozwolone dla tego argumentu typu",
|
444
445
|
"typeArgsExpectingNone": "Oczekiwano braku argumentów typu dla klasy „{name}”",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "Nenhuma sobrecarga para \"{name}\" corresponde aos argumentos fornecidos",
|
294
294
|
"noReturnContainsReturn": "A função com o tipo de retorno declarado \"NoReturn\" não pode incluir uma instrução return",
|
295
295
|
"noReturnContainsYield": "A função com o tipo de retorno declarado \"NoReturn\" não pode incluir uma instrução yield",
|
296
|
-
"noReturnReturnsNone": "
|
296
|
+
"noReturnReturnsNone": "Função com tipo de retorno declarado \"NoReturn\" não pode retornar \"None\"",
|
297
297
|
"nonDefaultAfterDefault": "O argumento não padrão segue o argumento padrão",
|
298
298
|
"nonLocalInModule": "Declaração não local não permitida no nível do módulo",
|
299
299
|
"nonLocalNoBinding": "Nenhuma associação para \"{name}\" não local encontrada",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "Argumento de tipo único esperado após \"Obrigatório\"",
|
384
384
|
"requiredNotInTypedDict": "\"Obrigatório\" não é permitido neste contexto",
|
385
385
|
"returnInAsyncGenerator": "A instrução return com valor não é permitida no gerador assíncrono",
|
386
|
-
"returnMissing": "
|
386
|
+
"returnMissing": "Função com tipo de retorno declarado \"{returnType}\" deve retornar valor em todos os caminhos de código",
|
387
387
|
"returnOutsideFunction": "\"return\" só pode ser usado dentro de uma função",
|
388
388
|
"returnTypeContravariant": "A variável de tipo contravariante não pode ser usada no tipo de retorno",
|
389
389
|
"returnTypeMismatch": "A expressão do tipo \"{exprType}\" não pode ser atribuída ao tipo de retorno \"{returnType}\"",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "O índice {index} está fora do intervalo para o tipo {type}",
|
430
430
|
"typeAliasIllegalExpressionForm": "Formulário de expressão inválido para definição de alias de tipo",
|
431
431
|
"typeAliasIsRecursiveDirect": "O alias de tipo \"{name}\" não pode usar a si mesmo em sua definição",
|
432
|
+
"typeAliasNotAllowed": "O alias de tipo \"{name}\" não pode ser usado neste contexto",
|
432
433
|
"typeAliasNotInModuleOrClass": "Um TypeAlias só pode ser definido dentro de um módulo ou escopo de classe",
|
433
434
|
"typeAliasRedeclared": "\"{name}\" é declarado como um TypeAlias e só pode ser atribuído uma vez",
|
434
435
|
"typeAliasStatementIllegal": "A instrução de alias de tipo requer o Python 3.12 ou mais recente",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "A lista de parâmetros de tipo deve ser uma tupla contendo apenas TypeVar, TypeVarTuple ou ParamSpec",
|
439
440
|
"typeAnnotationCall": "Expressão de chamada não permitida na expressão de tipo",
|
440
441
|
"typeAnnotationVariable": "Variável não permitida na expressão de tipo",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "O argumento de tipo para \"type\" deve ser uma classe; não há suporte para callables",
|
442
443
|
"typeArgListExpected": "ParamSpec, reticências ou lista de tipos esperados",
|
443
444
|
"typeArgListNotAllowed": "Expressão de lista não permitida para este argumento de tipo",
|
444
445
|
"typeArgsExpectingNone": "Nenhum argumento de tipo era esperado para a classe \"{name}\"",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "[IcBNQ][นั้Ñø øvërløæðs før \"{ñæmë}\" mætçh thë prøvïðëð ærgµmëñtsẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्นั้ढूँ]",
|
294
294
|
"noReturnContainsReturn": "[nBLDq][นั้Fµñçtïøñ wïth ðëçlærëð rëtµrñ tÿpë \"ÑøRëtµrñ\" çæññøt ïñçlµðë æ rëtµrñ stætëmëñtẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまẤğ倪İนั้ढूँ]",
|
295
295
|
"noReturnContainsYield": "[V3G36][นั้Fµñçtïøñ wïth ðëçlærëð rëtµrñ tÿpë \"ÑøRëtµrñ\" çæññøt ïñçlµðë æ ÿïëlð stætëmëñtẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまẤğ倪นั้ढूँ]",
|
296
|
-
"noReturnReturnsNone": "[O3XA6][นั้Fµñçtïøñ wïth ðëçlærëð tÿpë
|
296
|
+
"noReturnReturnsNone": "[O3XA6][นั้Fµñçtïøñ wïth ðëçlærëð rëtµrñ tÿpë \"ÑøRëtµrñ\" çæññøt rëtµrñ \"Ñøñë\"Ấğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृนั้ढूँ]",
|
297
297
|
"nonDefaultAfterDefault": "[mFFgP][นั้Ñøñ-ðëfæµlt ærgµmëñt følløws ðëfæµlt ærgµmëñtẤğ倪İЂҰक्र्तिृまẤğ倪İนั้ढूँ]",
|
298
298
|
"nonLocalInModule": "[kmLlv][นั้Ñøñløçæl ðëçlærætïøñ ñøt ælløwëð æt møðµlë lëvëlẤğ倪İЂҰक्र्तिृまẤğ倪İЂนั้ढूँ]",
|
299
299
|
"nonLocalNoBinding": "[WTA2d][นั้Ñø þïñðïñg før ñøñløçæl \"{ñæmë}\" føµñðẤğ倪İЂҰक्र्तिृまẤนั้ढूँ]",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "[aZX4z][นั้Ëxpëçtëð æ sïñglë tÿpë ærgµmëñt æftër \"Rëqµïrëð\"Ấğ倪İЂҰक्र्तिृまẤğ倪İЂนั้ढूँ]",
|
384
384
|
"requiredNotInTypedDict": "[TArW6][นั้\"Rëqµïrëð\" ïs ñøt ælløwëð ïñ thïs çøñtëxtẤğ倪İЂҰक्र्तिृまẤğนั้ढूँ]",
|
385
385
|
"returnInAsyncGenerator": "[qb5pt][นั้Rëtµrñ stætëmëñt wïth vælµë ïs ñøt ælløwëð ïñ æsÿñç gëñërætørẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्นั้ढूँ]",
|
386
|
-
"returnMissing": "[kPevK][นั้Fµñçtïøñ wïth ðëçlærëð tÿpë
|
386
|
+
"returnMissing": "[kPevK][นั้Fµñçtïøñ wïth ðëçlærëð rëtµrñ tÿpë \"{rëtµrñTÿpë}\" mµst rëtµrñ vælµë øñ æll çøðë pæthsẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰนั้ढूँ]",
|
387
387
|
"returnOutsideFunction": "[O4SJp][นั้\"rëtµrñ\" çæñ þë µsëð øñlÿ wïthïñ æ fµñçtïøñẤğ倪İЂҰक्र्तिृまẤğ倪นั้ढूँ]",
|
388
388
|
"returnTypeContravariant": "[KkMhh][นั้Çøñtræværïæñt tÿpë værïæþlë çæññøt þë µsëð ïñ rëtµrñ tÿpëẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्นั้ढूँ]",
|
389
389
|
"returnTypeMismatch": "[QYqHy][นั้Ëxprëssïøñ øf tÿpë \"{ëxprTÿpë}\" çæññøt þë æssïgñëð tø rëtµrñ tÿpë \"{rëtµrñTÿpë}\"Ấğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृまẤğ倪İนั้ढूँ]",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "[aNqDv][นั้Ïñðëx {ïñðëx} ïs øµt øf ræñgë før tÿpë {tÿpë}Ấğ倪İЂҰक्र्तिृまẤğ倪İนั้ढूँ]",
|
430
430
|
"typeAliasIllegalExpressionForm": "[4u4ay][นั้Ïñvælïð ëxprëssïøñ førm før tÿpë ælïæs ðëfïñïtïøñẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰนั้ढूँ]",
|
431
431
|
"typeAliasIsRecursiveDirect": "[r8PyZ][นั้Tÿpë ælïæs \"{ñæmë}\" çæññøt µsë ïtsëlf ïñ ïts ðëfïñïtïøñẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्นั้ढूँ]",
|
432
|
+
"typeAliasNotAllowed": "[a8iha][นั้Tÿpë ælïæs \"{ñæmë}\" çæññøt þë µsëð ïñ thïs çøñtëxtẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰนั้ढूँ]",
|
432
433
|
"typeAliasNotInModuleOrClass": "[iQpDJ][นั้Æ TÿpëÆlïæs çæñ þë ðëfïñëð øñlÿ wïthïñ æ møðµlë ør çlæss sçøpëẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृนั้ढूँ]",
|
433
434
|
"typeAliasRedeclared": "[P036x][นั้\"{ñæmë}\" ïs ðëçlærëð æs æ TÿpëÆlïæs æñð çæñ þë æssïgñëð øñlÿ øñçëẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰक्र्तिृนั้ढूँ]",
|
434
435
|
"typeAliasStatementIllegal": "[2EW0Q][นั้Tÿpë ælïæs stætëmëñt rëqµïrës Pÿthøñ 3.12 ør ñëwërẤğ倪İЂҰक्र्तिृまẤğ倪İЂҰนั้ढूँ]",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "Не существует перегрузок для \"{name}\", соответствующих указанным аргументам",
|
294
294
|
"noReturnContainsReturn": "Функция с объявленным типом возвращаемого значения \"NoReturn\" не может содержать оператор return",
|
295
295
|
"noReturnContainsYield": "Функция с объявленным типом возвращаемого значения \"NoReturn\" не может содержать инструкцию yield",
|
296
|
-
"noReturnReturnsNone": "Функция с объявленным типом \"NoReturn\" не может возвращать \"None\"",
|
296
|
+
"noReturnReturnsNone": "Функция с объявленным типом возвращаемого значения \"NoReturn\" не может возвращать \"None\"",
|
297
297
|
"nonDefaultAfterDefault": "Аргумент, отличный от аргумента по умолчанию, следует за аргументом по умолчанию",
|
298
298
|
"nonLocalInModule": "Нелокальные объявления на уровне модулей не разрешены",
|
299
299
|
"nonLocalNoBinding": "Привязка для нелокального элемента \"{name}\" не найдена",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "Ожидается один аргумент типа после \"Required\"",
|
384
384
|
"requiredNotInTypedDict": "Использование \"Required\" в этом контексте не допускается",
|
385
385
|
"returnInAsyncGenerator": "Оператор return со значением не допускается в асинхронном генераторе",
|
386
|
-
"returnMissing": "Функция с объявленным типом \"{returnType}\" должна возвращать значение во всех путях кода",
|
386
|
+
"returnMissing": "Функция с объявленным типом возвращаемого значения \"{returnType}\" должна возвращать значение во всех путях кода",
|
387
387
|
"returnOutsideFunction": "\"return\" можно использовать только внутри функции",
|
388
388
|
"returnTypeContravariant": "Переменная контравариантного типа не может использоваться в возвращаемом типе",
|
389
389
|
"returnTypeMismatch": "Выражение типа \"{exprType}\" не может быть назначено возвращаемому типу \"{returnType}\"",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "Индекс {index} выходит за пределы допустимого диапазона для типа {type}",
|
430
430
|
"typeAliasIllegalExpressionForm": "Недопустимая форма выражения для определения псевдонима типа",
|
431
431
|
"typeAliasIsRecursiveDirect": "Псевдоним типа \"{name}\" не может использовать себя в своем определении",
|
432
|
+
"typeAliasNotAllowed": "Псевдоним типа \"{name}\" нельзя использовать в этом контексте",
|
432
433
|
"typeAliasNotInModuleOrClass": "TypeAlias можно определить только внутри области модуля или класса",
|
433
434
|
"typeAliasRedeclared": "\"{name}\" объявлен как TypeAlias и может быть присвоен только один раз",
|
434
435
|
"typeAliasStatementIllegal": "Оператор псевдонима типа можно использовать в Python версии не ниже 3.12",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "Список параметров типа должен быть кортежем, содержащим только TypeVar, TypeVarTuple или ParamSpec",
|
439
440
|
"typeAnnotationCall": "Выражение вызова не разрешено в выражении типа",
|
440
441
|
"typeAnnotationVariable": "Переменная не разрешена в выражении типа",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "Аргумент типа для \"type\" должен быть классом. Вызываемые объекты не поддерживаются",
|
442
443
|
"typeArgListExpected": "Ожидается ParamSpec, многоточие или список типов",
|
443
444
|
"typeArgListNotAllowed": "Выражение списка не разрешено для аргумента этого типа",
|
444
445
|
"typeArgsExpectingNone": "Для класса \"{name}\" не ожидается аргументов типа",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "\"{name}\" için aşırı yüklemelerin hiçbiri sağlanan bağımsız değişkenlerle eşleşmiyor",
|
294
294
|
"noReturnContainsReturn": "Bildirilen dönüş türü \"NoReturn\" olan işlev bir return deyimi içeremez",
|
295
295
|
"noReturnContainsYield": "Bildirilen dönüş türü \"NoReturn\" olan işlev bir yield deyimi içeremez",
|
296
|
-
"noReturnReturnsNone": "Bildirilen \"NoReturn\" türüne sahip işlev \"None\" döndüremez",
|
296
|
+
"noReturnReturnsNone": "Bildirilen \"NoReturn\" döndürme türüne sahip işlev \"None\" döndüremez",
|
297
297
|
"nonDefaultAfterDefault": "Varsayılan olmayan bağımsız değişken varsayılan bağımsız değişkeni izler",
|
298
298
|
"nonLocalInModule": "Modül düzeyinde yerel olmayan bildirim kullanılamaz",
|
299
299
|
"nonLocalNoBinding": "Yerel olmayan \"{name}\" öğesi için bağlama bulunamadı",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "\"Required\" sonrasında tek bir tür bağımsız değişken bekleniyordu",
|
384
384
|
"requiredNotInTypedDict": "Bu bağlamda \"Required\" kullanımına izin verilmiyor",
|
385
385
|
"returnInAsyncGenerator": "Zaman uyumsuz oluşturucuda değer içeren dönüş deyimine izin verilmez",
|
386
|
-
"returnMissing": "Bildirilen \"{returnType}\" türüne sahip işlev, tüm kod yollarında değer döndürmelidir",
|
386
|
+
"returnMissing": "Bildirilen \"{returnType}\" döndürme türüne sahip işlev, tüm kod yollarında değer döndürmelidir",
|
387
387
|
"returnOutsideFunction": "\"return\" yalnızca bir işlev içinde kullanılabilir",
|
388
388
|
"returnTypeContravariant": "Değişken karşıtı tür değişkeni dönüş türünde kullanılamaz",
|
389
389
|
"returnTypeMismatch": "\"{exprType}\" türündeki ifade \"{returnType}\" dönüş türüne atanamaz",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "{index} dizini {type} türü için aralık dışında",
|
430
430
|
"typeAliasIllegalExpressionForm": "Tür diğer ad tanımı için geçersiz ifade form",
|
431
431
|
"typeAliasIsRecursiveDirect": "Tür diğer adı \"{name}\", tanımında kendisini kullanamaz",
|
432
|
+
"typeAliasNotAllowed": "\"{name}\" tür adı bu bağlamda kullanılamaz",
|
432
433
|
"typeAliasNotInModuleOrClass": "TypeAlias yalnızca bir modül veya sınıf kapsamında tanımlanabilir",
|
433
434
|
"typeAliasRedeclared": "\"{name}\" bir TypeAlias olarak bildirilmiş ve yalnızca bir kez atanabilir",
|
434
435
|
"typeAliasStatementIllegal": "Tür diğer adı deyimi için Python 3.12 veya daha yeni bir sürümü gerekiyor",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "Tür parametresi listesi yalnızca TypeVar, TypeVarTuple veya ParamSpec içeren bir demet olmalıdır",
|
439
440
|
"typeAnnotationCall": "Tür ifadesinde çağrı ifadesine izin verilmiyor",
|
440
441
|
"typeAnnotationVariable": "Tür ifadesinde değişkene izin verilmiyor",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "“Tür” için tür bağımsız değişkeni bir sınıf olmalıdır; çağrılabilir öğeler desteklenmiyor",
|
442
443
|
"typeArgListExpected": "ParamSpec, üç nokta veya tür listesi bekleniyordu",
|
443
444
|
"typeArgListNotAllowed": "Bu tür bağımsız değişkeni için liste ifadesine izin verilmiyor",
|
444
445
|
"typeArgsExpectingNone": "\"{name}\" sınıfı için tür bağımsız değişkeni beklenmiyordu",
|
@@ -293,7 +293,7 @@
|
|
293
293
|
"noOverload": "“{name}”的重载与提供的参数不匹配",
|
294
294
|
"noReturnContainsReturn": "声明返回类型为“NoReturn”的函数不能包含 return 语句",
|
295
295
|
"noReturnContainsYield": "声明的返回类型为 “NoReturn” 的函数不能包含 yield 语句",
|
296
|
-
"noReturnReturnsNone": "
|
296
|
+
"noReturnReturnsNone": "所声明的返回类型为 \"NoReturn\" 的函数无法返回 \"None\"",
|
297
297
|
"nonDefaultAfterDefault": "非默认参数遵循默认参数",
|
298
298
|
"nonLocalInModule": "模块级别不允许使用非本地声明",
|
299
299
|
"nonLocalNoBinding": "找不到非本地“{name}”的绑定",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "\"Required\"后应为单个类型参数",
|
384
384
|
"requiredNotInTypedDict": "此上下文中不允许使用\"Required\"",
|
385
385
|
"returnInAsyncGenerator": "异步生成器中不允许返回值为值的语句",
|
386
|
-
"returnMissing": "
|
386
|
+
"returnMissing": "所声明的返回类型为“{returnType}”的函数必须在所有代码路径上返回值",
|
387
387
|
"returnOutsideFunction": "“return”只能在函数中使用",
|
388
388
|
"returnTypeContravariant": "逆变类型变量不能用于返回类型",
|
389
389
|
"returnTypeMismatch": "无法将类型“{exprType}”的表达式分配给返回类型“{returnType}”",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "类型 {type} 的索引 {index} 超出范围",
|
430
430
|
"typeAliasIllegalExpressionForm": "类型别名定义的表达式形式无效",
|
431
431
|
"typeAliasIsRecursiveDirect": "类型别名“{name}”不能在其定义中使用自身",
|
432
|
+
"typeAliasNotAllowed": "类型别名“{name}”不能在此上下文中使用",
|
432
433
|
"typeAliasNotInModuleOrClass": "TypeAlias 只能在模块或类范围内定义",
|
433
434
|
"typeAliasRedeclared": "“{name}”声明为 TypeAlias,只能分配一次",
|
434
435
|
"typeAliasStatementIllegal": "类型别名语句需要 Python 3.12 或更高版本",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "类型参数列表必须是仅包含 TypeVar、TypeVarTuple 或 ParamSpec 的元组",
|
439
440
|
"typeAnnotationCall": "类型表达式中不允许使用调用表达式",
|
440
441
|
"typeAnnotationVariable": "类型表达式中不允许使用变量",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "“type”的类型参数必须为类; 不支持可调用项",
|
442
443
|
"typeArgListExpected": "应为 ParamSpec、省略号或类型列表",
|
443
444
|
"typeArgListNotAllowed": "不允许此类型参数使用列表表达式",
|
444
445
|
"typeArgsExpectingNone": "类“{name}”不应有类型参数",
|
@@ -383,7 +383,7 @@
|
|
383
383
|
"requiredArgCount": "\"Required\" 後面應有單一型別引數",
|
384
384
|
"requiredNotInTypedDict": "此內容中不允許 \"Required\"",
|
385
385
|
"returnInAsyncGenerator": "非同步產生器中不允許具有值的 return 陳述式",
|
386
|
-
"returnMissing": "
|
386
|
+
"returnMissing": "宣告類型為 \"{returnType}\" 的函式必須在所有程式碼路徑上傳回值",
|
387
387
|
"returnOutsideFunction": "\"return\" 只能在函式內使用",
|
388
388
|
"returnTypeContravariant": "逆變數型別變數不能用在傳回型別中",
|
389
389
|
"returnTypeMismatch": "類型 \"{exprType}\" 的運算式不能指派至傳回類型 \"{returnType}\"",
|
@@ -429,6 +429,7 @@
|
|
429
429
|
"tupleIndexOutOfRange": "索引 {index} 超過類型 {type} 的範圍",
|
430
430
|
"typeAliasIllegalExpressionForm": "類型別名定義無效的運算式格式",
|
431
431
|
"typeAliasIsRecursiveDirect": "型別別名 \"{name}\" 無法在其定義中使用它自己",
|
432
|
+
"typeAliasNotAllowed": "類型別名 \"{name}\" 無法在此內容中使用",
|
432
433
|
"typeAliasNotInModuleOrClass": "TypeAlias 只能在模組或類別範圍內定義",
|
433
434
|
"typeAliasRedeclared": "\"{name}\" 宣告為 TypeAlias,且只能指派一次",
|
434
435
|
"typeAliasStatementIllegal": "類型別名陳述式需要 Python 3.12 或更新版本",
|
@@ -438,7 +439,7 @@
|
|
438
439
|
"typeAliasTypeParamInvalid": "型別參數清單必須是只包含 TypeVar、TypeVarTuple 或 ParamSpec 的元組",
|
439
440
|
"typeAnnotationCall": "型別運算式中不允許呼叫運算式",
|
440
441
|
"typeAnnotationVariable": "型別運算式中不允許變數",
|
441
|
-
"typeAnnotationWithCallable": "
|
442
|
+
"typeAnnotationWithCallable": "\"type\" 的類型引數必須是類別; 不支援可呼叫項目",
|
442
443
|
"typeArgListExpected": "預期為 ParamSpec、省略符號或類型清單",
|
443
444
|
"typeArgListNotAllowed": "此型別引數不允許清單運算式",
|
444
445
|
"typeArgsExpectingNone": "預期類別 \"{name}\" 沒有類型引數",
|
package/dist/nodeMain.js
CHANGED
@@ -9,11 +9,12 @@
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
10
10
|
exports.main = void 0;
|
11
11
|
const backgroundAnalysis_1 = require("./backgroundAnalysis");
|
12
|
+
const serviceProvider_1 = require("./common/serviceProvider");
|
12
13
|
const nodeServer_1 = require("./nodeServer");
|
13
14
|
const server_1 = require("./server");
|
14
15
|
function main() {
|
15
16
|
(0, nodeServer_1.run)((conn) => new server_1.PyrightServer(conn), () => {
|
16
|
-
const runner = new backgroundAnalysis_1.BackgroundAnalysisRunner();
|
17
|
+
const runner = new backgroundAnalysis_1.BackgroundAnalysisRunner(new serviceProvider_1.ServiceProvider());
|
17
18
|
runner.start();
|
18
19
|
});
|
19
20
|
}
|
package/dist/nodeMain.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nodeMain.js","sourceRoot":"","sources":["../../src/nodeMain.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,6DAAgE;AAChE,6CAAmC;AACnC,qCAAyC;AAEzC,SAAgB,IAAI;IAChB,IAAA,gBAAG,EACC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,sBAAa,CAAC,IAAI,CAAC,EACjC,GAAG,EAAE;QACD,MAAM,MAAM,GAAG,IAAI,6CAAwB,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"nodeMain.js","sourceRoot":"","sources":["../../src/nodeMain.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,6DAAgE;AAChE,8DAA2D;AAC3D,6CAAmC;AACnC,qCAAyC;AAEzC,SAAgB,IAAI;IAChB,IAAA,gBAAG,EACC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,sBAAa,CAAC,IAAI,CAAC,EACjC,GAAG,EAAE;QACD,MAAM,MAAM,GAAG,IAAI,6CAAwB,CAAC,IAAI,iCAAe,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CACJ,CAAC;AACN,CAAC;AARD,oBAQC"}
|
package/dist/parser/parser.d.ts
CHANGED
@@ -77,6 +77,7 @@ export declare class Parser {
|
|
77
77
|
private _parseMatchStatement;
|
78
78
|
private _parseCaseStatement;
|
79
79
|
private _isPatternIrrefutable;
|
80
|
+
private _reportDuplicatePatternCaptureTargets;
|
80
81
|
private _getPatternTargetNames;
|
81
82
|
private _parsePatternSequence;
|
82
83
|
private _parsePatternAs;
|
package/dist/parser/parser.js
CHANGED
@@ -486,6 +486,11 @@ class Parser {
|
|
486
486
|
else {
|
487
487
|
casePattern = parseNodes_1.PatternSequenceNode.create(patternList.list[0], patternList.list);
|
488
488
|
}
|
489
|
+
if (casePattern.nodeType !== 0 /* Error */) {
|
490
|
+
const globalNameMap = new Map();
|
491
|
+
const localNameMap = new Map();
|
492
|
+
this._reportDuplicatePatternCaptureTargets(casePattern, globalNameMap, localNameMap);
|
493
|
+
}
|
489
494
|
let guardExpression;
|
490
495
|
if (this._consumeTokenIfKeyword(20 /* If */)) {
|
491
496
|
guardExpression = this._parseTestExpression(/* allowAssignmentExpression */ true);
|
@@ -504,6 +509,79 @@ class Parser {
|
|
504
509
|
}
|
505
510
|
return false;
|
506
511
|
}
|
512
|
+
// Reports any situations where a capture target (a variable that receives part of a pattern)
|
513
|
+
// appears twice within the same pattern. This is complicated by the fact that duplicate targets
|
514
|
+
// are allowed in separate "or" clauses, so we need to track the targets we've seen globally
|
515
|
+
// as well as the targets we've seen locally within the current "or" clause.
|
516
|
+
_reportDuplicatePatternCaptureTargets(node, globalNameMap, localNameMap) {
|
517
|
+
const reportTargetIfDuplicate = (nameNode) => {
|
518
|
+
if (globalNameMap.has(nameNode.value) || localNameMap.has(nameNode.value)) {
|
519
|
+
this._addError(localize_1.Localizer.Diagnostic.duplicateCapturePatternTarget().format({
|
520
|
+
name: nameNode.value,
|
521
|
+
}), nameNode);
|
522
|
+
}
|
523
|
+
else {
|
524
|
+
localNameMap.set(nameNode.value, nameNode);
|
525
|
+
}
|
526
|
+
};
|
527
|
+
switch (node.nodeType) {
|
528
|
+
case 65 /* PatternSequence */: {
|
529
|
+
node.entries.forEach((subpattern) => {
|
530
|
+
this._reportDuplicatePatternCaptureTargets(subpattern, globalNameMap, localNameMap);
|
531
|
+
});
|
532
|
+
break;
|
533
|
+
}
|
534
|
+
case 68 /* PatternClass */: {
|
535
|
+
node.arguments.forEach((arg) => {
|
536
|
+
this._reportDuplicatePatternCaptureTargets(arg.pattern, globalNameMap, localNameMap);
|
537
|
+
});
|
538
|
+
break;
|
539
|
+
}
|
540
|
+
case 66 /* PatternAs */: {
|
541
|
+
if (node.target) {
|
542
|
+
reportTargetIfDuplicate(node.target);
|
543
|
+
}
|
544
|
+
const orLocalNameMaps = node.orPatterns.map((subpattern) => {
|
545
|
+
const orLocalNameMap = new Map();
|
546
|
+
this._reportDuplicatePatternCaptureTargets(subpattern, localNameMap, orLocalNameMap);
|
547
|
+
return orLocalNameMap;
|
548
|
+
});
|
549
|
+
const combinedLocalOrNameMap = new Map();
|
550
|
+
orLocalNameMaps.forEach((orLocalNameMap) => {
|
551
|
+
orLocalNameMap.forEach((node) => {
|
552
|
+
if (!combinedLocalOrNameMap.has(node.value)) {
|
553
|
+
combinedLocalOrNameMap.set(node.value, node);
|
554
|
+
reportTargetIfDuplicate(node);
|
555
|
+
}
|
556
|
+
});
|
557
|
+
});
|
558
|
+
break;
|
559
|
+
}
|
560
|
+
case 69 /* PatternCapture */: {
|
561
|
+
if (!node.isWildcard) {
|
562
|
+
reportTargetIfDuplicate(node.target);
|
563
|
+
}
|
564
|
+
break;
|
565
|
+
}
|
566
|
+
case 70 /* PatternMapping */: {
|
567
|
+
node.entries.forEach((mapEntry) => {
|
568
|
+
if (mapEntry.nodeType === 72 /* PatternMappingExpandEntry */) {
|
569
|
+
reportTargetIfDuplicate(mapEntry.target);
|
570
|
+
}
|
571
|
+
else {
|
572
|
+
this._reportDuplicatePatternCaptureTargets(mapEntry.keyPattern, globalNameMap, localNameMap);
|
573
|
+
this._reportDuplicatePatternCaptureTargets(mapEntry.valuePattern, globalNameMap, localNameMap);
|
574
|
+
}
|
575
|
+
});
|
576
|
+
break;
|
577
|
+
}
|
578
|
+
case 67 /* PatternLiteral */:
|
579
|
+
case 73 /* PatternValue */:
|
580
|
+
case 0 /* Error */: {
|
581
|
+
break;
|
582
|
+
}
|
583
|
+
}
|
584
|
+
}
|
507
585
|
_getPatternTargetNames(node, nameSet) {
|
508
586
|
switch (node.nodeType) {
|
509
587
|
case 65 /* PatternSequence */: {
|
@@ -561,24 +639,6 @@ class Parser {
|
|
561
639
|
if (starEntries.length > 1) {
|
562
640
|
this._addError(localize_1.Localizer.Diagnostic.duplicateStarPattern(), starEntries[1].orPatterns[0]);
|
563
641
|
}
|
564
|
-
// Look for redundant capture targets.
|
565
|
-
const captureTargetMap = new Map();
|
566
|
-
patternList.list.forEach((asPattern) => {
|
567
|
-
asPattern.orPatterns.forEach((patternAtom) => {
|
568
|
-
if (patternAtom.nodeType === 69 /* PatternCapture */ &&
|
569
|
-
!patternAtom.isStar &&
|
570
|
-
!patternAtom.isWildcard) {
|
571
|
-
if (captureTargetMap.has(patternAtom.target.value)) {
|
572
|
-
this._addError(localize_1.Localizer.Diagnostic.duplicateCapturePatternTarget().format({
|
573
|
-
name: patternAtom.target.value,
|
574
|
-
}), patternAtom);
|
575
|
-
}
|
576
|
-
else {
|
577
|
-
captureTargetMap.set(patternAtom.target.value, patternAtom);
|
578
|
-
}
|
579
|
-
}
|
580
|
-
});
|
581
|
-
});
|
582
642
|
return patternList;
|
583
643
|
}
|
584
644
|
// as_pattern: or_pattern ['as' NAME]
|
@@ -2178,12 +2238,12 @@ class Parser {
|
|
2178
2238
|
if (this._getLanguageVersion() < pythonVersion_1.PythonVersion.V3_3) {
|
2179
2239
|
this._addError(localize_1.Localizer.Diagnostic.yieldFromIllegal(), nextToken);
|
2180
2240
|
}
|
2181
|
-
return parseNodes_1.YieldFromNode.create(yieldToken, this._parseTestExpression(/* allowAssignmentExpression */
|
2241
|
+
return parseNodes_1.YieldFromNode.create(yieldToken, this._parseTestExpression(/* allowAssignmentExpression */ false));
|
2182
2242
|
}
|
2183
2243
|
let exprList;
|
2184
2244
|
if (!this._isNextTokenNeverExpression()) {
|
2185
2245
|
exprList = this._parseTestOrStarListAsExpression(
|
2186
|
-
/* allowAssignmentExpression */
|
2246
|
+
/* allowAssignmentExpression */ false,
|
2187
2247
|
/* allowMultipleUnpack */ true, 2 /* MissingExpression */, () => localize_1.Localizer.Diagnostic.expectedYieldExpr());
|
2188
2248
|
this._reportConditionalErrorForStarTupleElement(exprList);
|
2189
2249
|
}
|