@zzzen/pyright-internal 1.2.0-dev.20240407 → 1.2.0-dev.20240421
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/binder.js +13 -0
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +21 -12
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +24 -8
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.d.ts +2 -2
- package/dist/analyzer/constructors.js +174 -109
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +15 -1
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/importResolver.js +1 -1
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +1 -1
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +2 -0
- package/dist/analyzer/parseTreeUtils.js +24 -1
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/properties.js +2 -2
- package/dist/analyzer/protocols.js +5 -5
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pyTypedUtils.d.ts +4 -0
- package/dist/analyzer/pyTypedUtils.js +17 -3
- package/dist/analyzer/pyTypedUtils.js.map +1 -1
- package/dist/analyzer/service.d.ts +0 -2
- package/dist/analyzer/service.js +1 -4
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/symbolUtils.d.ts +1 -1
- package/dist/analyzer/symbolUtils.js +3 -3
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.d.ts +3 -1
- package/dist/analyzer/typeEvaluator.js +167 -76
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -1
- package/dist/analyzer/typeEvaluatorWithTracker.js +4 -2
- package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
- package/dist/analyzer/typeGuards.js +105 -57
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +20 -17
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.js +1 -1
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typedDicts.js +1 -1
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +2 -2
- package/dist/analyzer/types.js +28 -8
- package/dist/analyzer/types.js.map +1 -1
- package/dist/backgroundAnalysisBase.js +3 -1
- package/dist/backgroundAnalysisBase.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +5 -5
- package/dist/backgroundThreadBase.js +8 -6
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.d.ts +5 -0
- package/dist/commands/dumpFileDebugInfoCommand.js +83 -74
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/core.d.ts +5 -0
- package/dist/common/core.js +8 -1
- package/dist/common/core.js.map +1 -1
- package/dist/common/fileSystem.d.ts +0 -1
- package/dist/common/fileSystem.js +1 -1
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +35 -1
- package/dist/common/realFileSystem.js +4 -1
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/uri/uri.d.ts +2 -0
- package/dist/common/uri/uri.js +9 -4
- package/dist/common/uri/uri.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +0 -2
- package/dist/languageService/completionProvider.js +7 -28
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +1 -1
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +1 -1
- package/dist/languageService/tooltipUtils.js +4 -4
- package/dist/localization/localize.d.ts +7 -0
- package/dist/localization/localize.js +5 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +4 -0
- package/dist/localization/package.nls.de.json +5 -1
- package/dist/localization/package.nls.en-us.json +28 -23
- package/dist/localization/package.nls.es.json +8 -4
- package/dist/localization/package.nls.fr.json +8 -4
- package/dist/localization/package.nls.it.json +5 -1
- package/dist/localization/package.nls.ja.json +4 -0
- package/dist/localization/package.nls.ko.json +7 -3
- package/dist/localization/package.nls.pl.json +7 -3
- package/dist/localization/package.nls.pt-br.json +4 -0
- package/dist/localization/package.nls.qps-ploc.json +4 -0
- package/dist/localization/package.nls.ru.json +5 -1
- package/dist/localization/package.nls.tr.json +6 -2
- package/dist/localization/package.nls.zh-cn.json +5 -1
- package/dist/localization/package.nls.zh-tw.json +4 -0
- package/dist/parser/parser.js +3 -2
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.js +1 -0
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/parser/tokenizerTypes.d.ts +1 -0
- package/dist/parser/tokenizerTypes.js +1 -0
- package/dist/parser/tokenizerTypes.js.map +1 -1
- package/dist/tests/config.test.js +11 -0
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +1 -1
- package/dist/tests/harness/fourslash/testState.js +2 -2
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.d.ts +2 -2
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +5 -5
- package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
- package/dist/tests/importStatementUtils.test.js +1 -1
- package/dist/tests/importStatementUtils.test.js.map +1 -1
- package/dist/tests/tokenizer.test.js +4 -4
- package/dist/tests/tokenizer.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +5 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +4 -0
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +11 -7
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +2 -2
- package/package.json +2 -2
package/dist/analyzer/checker.js
CHANGED
@@ -2189,7 +2189,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2189
2189
|
// If there's one or more declaration with a declared type,
|
2190
2190
|
// all other declarations should match. The only exception is
|
2191
2191
|
// for functions that have an overload.
|
2192
|
-
const primaryDecl = (0, symbolUtils_1.
|
2192
|
+
const primaryDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(symbol);
|
2193
2193
|
// If there's no declaration with a declared type, we're done.
|
2194
2194
|
if (!primaryDecl) {
|
2195
2195
|
return;
|
@@ -4085,8 +4085,8 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4085
4085
|
? this._evaluator.getEffectiveTypeOfSymbol(childOverrideSymbol)
|
4086
4086
|
: undefined;
|
4087
4087
|
let diag;
|
4088
|
-
const overrideDecl = (0, symbolUtils_1.
|
4089
|
-
const overriddenDecl = (0, symbolUtils_1.
|
4088
|
+
const overrideDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overrideClassAndSymbol.symbol);
|
4089
|
+
const overriddenDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overriddenClassAndSymbol.symbol);
|
4090
4090
|
if ((0, types_1.isFunction)(overriddenType) || (0, types_1.isOverloadedFunction)(overriddenType)) {
|
4091
4091
|
const diagAddendum = new diagnostic_1.DiagnosticAddendum();
|
4092
4092
|
let overrideFunction;
|
@@ -4134,7 +4134,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4134
4134
|
// This check can be expensive, so don't perform it if the corresponding
|
4135
4135
|
// rule is disabled.
|
4136
4136
|
if (this._fileInfo.diagnosticRuleSet.reportIncompatibleVariableOverride !== 'none') {
|
4137
|
-
const primaryDecl = (0, symbolUtils_1.
|
4137
|
+
const primaryDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overriddenClassAndSymbol.symbol);
|
4138
4138
|
let isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* DeclarationType.Variable */ && !primaryDecl.isFinal;
|
4139
4139
|
// If the entry is a member of a frozen dataclass, it is immutable,
|
4140
4140
|
// so it does not need to be invariant.
|
@@ -4209,7 +4209,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4209
4209
|
// but subsequent ones are, an error should be reported.
|
4210
4210
|
_validateOverloadDecoratorConsistency(classType) {
|
4211
4211
|
types_1.ClassType.getSymbolTable(classType).forEach((symbol, name) => {
|
4212
|
-
const primaryDecl = (0, symbolUtils_1.
|
4212
|
+
const primaryDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(symbol);
|
4213
4213
|
if (!primaryDecl || primaryDecl.type !== 5 /* DeclarationType.Function */) {
|
4214
4214
|
return;
|
4215
4215
|
}
|
@@ -4489,13 +4489,13 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4489
4489
|
}
|
4490
4490
|
}
|
4491
4491
|
if (reportFinalMethodOverride) {
|
4492
|
-
const decl = (0, symbolUtils_1.
|
4492
|
+
const decl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overrideSymbol);
|
4493
4493
|
if (decl && decl.type === 5 /* DeclarationType.Function */) {
|
4494
4494
|
const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.finalMethodOverride().format({
|
4495
4495
|
name: memberName,
|
4496
4496
|
className: baseClass.details.name,
|
4497
4497
|
}), decl.node.name);
|
4498
|
-
const origDecl = (0, symbolUtils_1.
|
4498
|
+
const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
|
4499
4499
|
if (diag && origDecl) {
|
4500
4500
|
diag.addRelatedInfo(localize_1.LocAddendum.finalMethod(), origDecl.uri, origDecl.range);
|
4501
4501
|
}
|
@@ -4516,13 +4516,13 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4516
4516
|
if (!this._evaluator.validateOverrideMethod(baseType, overrideType, childClassType, diagAddendum, enforceParamNameMatch)) {
|
4517
4517
|
const decl = (0, types_1.isFunction)(overrideType) && overrideType.details.declaration
|
4518
4518
|
? overrideType.details.declaration
|
4519
|
-
: (0, symbolUtils_1.
|
4519
|
+
: (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overrideSymbol);
|
4520
4520
|
if (decl) {
|
4521
4521
|
const diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.incompatibleMethodOverride().format({
|
4522
4522
|
name: memberName,
|
4523
4523
|
className: baseClass.details.name,
|
4524
4524
|
}) + diagAddendum.getString(), (_a = (0, declarationUtils_1.getNameNodeForDeclaration)(decl)) !== null && _a !== void 0 ? _a : decl.node);
|
4525
|
-
const origDecl = (0, symbolUtils_1.
|
4525
|
+
const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
|
4526
4526
|
if (diag && origDecl) {
|
4527
4527
|
diag.addRelatedInfo(localize_1.LocAddendum.overriddenMethod(), origDecl.uri, origDecl.range);
|
4528
4528
|
}
|
@@ -4543,7 +4543,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4543
4543
|
className: baseClass.details.name,
|
4544
4544
|
type: this._evaluator.printType(overrideType),
|
4545
4545
|
}), (_b = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _b !== void 0 ? _b : lastDecl.node);
|
4546
|
-
const origDecl = (0, symbolUtils_1.
|
4546
|
+
const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
|
4547
4547
|
if (diag && origDecl) {
|
4548
4548
|
diag.addRelatedInfo(localize_1.LocAddendum.overriddenMethod(), origDecl.uri, origDecl.range);
|
4549
4549
|
}
|
@@ -4683,7 +4683,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4683
4683
|
name: memberName,
|
4684
4684
|
className: baseClass.details.name,
|
4685
4685
|
}) + diagAddendum.getString(), (_h = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _h !== void 0 ? _h : lastDecl.node);
|
4686
|
-
const origDecl = (0, symbolUtils_1.
|
4686
|
+
const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
|
4687
4687
|
if (diag && origDecl) {
|
4688
4688
|
diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
|
4689
4689
|
}
|
@@ -4750,7 +4750,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4750
4750
|
name: memberName,
|
4751
4751
|
className: baseClass.details.name,
|
4752
4752
|
}), (_m = (0, declarationUtils_1.getNameNodeForDeclaration)(lastDecl)) !== null && _m !== void 0 ? _m : lastDecl.node);
|
4753
|
-
const origDecl = (0, symbolUtils_1.
|
4753
|
+
const origDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(baseClassAndSymbol.symbol);
|
4754
4754
|
if (diag && origDecl) {
|
4755
4755
|
diag.addRelatedInfo(localize_1.LocAddendum.overriddenSymbol(), origDecl.uri, origDecl.range);
|
4756
4756
|
}
|
@@ -4926,6 +4926,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4926
4926
|
if (!paramInfo.typeAnnotation || !paramInfo.name) {
|
4927
4927
|
return;
|
4928
4928
|
}
|
4929
|
+
// If this is an __init__ method, we need to specifically check for the
|
4930
|
+
// use of class-scoped TypeVars, which are not allowed in this context
|
4931
|
+
// according to the typing spec.
|
4932
|
+
if (functionType.details.name === '__init__' && functionType.details.methodClass) {
|
4933
|
+
const typeVars = (0, typeUtils_1.getTypeVarArgumentsRecursive)(paramInfo.type);
|
4934
|
+
if (typeVars.some((typeVar) => { var _a; return typeVar.scopeId === ((_a = functionType.details.methodClass) === null || _a === void 0 ? void 0 : _a.details.typeVarScopeId); })) {
|
4935
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.LocMessage.initMethodSelfParamTypeVar(), paramInfo.typeAnnotation);
|
4936
|
+
}
|
4937
|
+
}
|
4929
4938
|
// If this is a protocol class, the self and cls parameters can be bound
|
4930
4939
|
// to something other than the class.
|
4931
4940
|
if (types_1.ClassType.isProtocolClass(classType)) {
|