@zzzen/pyright-internal 1.2.0-dev.20250112 → 1.2.0-dev.20250126
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 +1 -0
- package/dist/analyzer/backgroundAnalysisProgram.js +3 -0
- package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
- package/dist/analyzer/binder.js +7 -1
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -1
- package/dist/analyzer/checker.js +34 -42
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constructors.js +1 -1
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/enums.js +140 -126
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +3 -2
- package/dist/analyzer/importResolver.js +80 -79
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.d.ts +2 -0
- package/dist/analyzer/pythonPathUtils.js +20 -11
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/service.js +2 -5
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/typeCacheUtils.js +1 -1
- package/dist/analyzer/typeCacheUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +72 -44
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -1
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +24 -17
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/backgroundAnalysis.js +2 -0
- package/dist/backgroundAnalysis.js.map +1 -1
- package/dist/backgroundThreadBase.d.ts +1 -0
- package/dist/backgroundThreadBase.js +5 -8
- package/dist/backgroundThreadBase.js.map +1 -1
- package/dist/common/fullAccessHost.d.ts +1 -1
- package/dist/common/fullAccessHost.js +1 -1
- package/dist/common/languageServerInterface.d.ts +1 -1
- package/dist/common/realFileSystem.d.ts +1 -1
- package/dist/common/realFileSystem.js +10 -2
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/serviceProvider.d.ts +1 -0
- package/dist/common/serviceProvider.js +8 -0
- package/dist/common/serviceProvider.js.map +1 -1
- package/dist/languageServerBase.d.ts +3 -3
- package/dist/languageServerBase.js +7 -4
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/analyzerServiceExecutor.js +4 -1
- package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
- package/dist/languageService/hoverProvider.js +5 -3
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.d.ts +1 -1
- package/dist/languageService/tooltipUtils.js +14 -1
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +9 -7
- package/dist/localization/localize.js +6 -2
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +8 -7
- package/dist/localization/package.nls.de.json +8 -7
- package/dist/localization/package.nls.en-us.json +21 -5
- package/dist/localization/package.nls.es.json +8 -7
- package/dist/localization/package.nls.fr.json +8 -7
- package/dist/localization/package.nls.it.json +8 -7
- package/dist/localization/package.nls.ja.json +8 -7
- package/dist/localization/package.nls.ko.json +8 -7
- package/dist/localization/package.nls.pl.json +6 -5
- package/dist/localization/package.nls.pt-br.json +8 -7
- package/dist/localization/package.nls.qps-ploc.json +4 -3
- package/dist/localization/package.nls.ru.json +8 -7
- package/dist/localization/package.nls.tr.json +6 -5
- package/dist/localization/package.nls.zh-cn.json +8 -7
- package/dist/localization/package.nls.zh-tw.json +8 -7
- package/dist/pyright.js +11 -4
- package/dist/pyright.js.map +1 -1
- package/dist/server.d.ts +2 -1
- package/dist/server.js +1 -1
- package/dist/server.js.map +1 -1
- package/dist/tests/config.test.js +451 -427
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/harness/fourslash/testState.d.ts +3 -1
- package/dist/tests/harness/fourslash/testState.js +23 -23
- package/dist/tests/harness/fourslash/testState.js.map +1 -1
- package/dist/tests/hoverProvider.test.js +51 -0
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/importResolver.test.js +537 -527
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/sourceFile.test.js +1 -0
- package/dist/tests/sourceFile.test.js.map +1 -1
- package/dist/tests/testUtils.js +1 -0
- package/dist/tests/testUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator3.test.js +5 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -1
- package/dist/tests/typeEvaluator6.test.js +8 -0
- package/dist/tests/typeEvaluator6.test.js.map +1 -1
- package/dist/tests/typeEvaluator7.test.js +4 -0
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/uri.test.js +3 -0
- package/dist/tests/uri.test.js.map +1 -1
- package/dist/tests/zipfs.test.js +2 -0
- package/dist/tests/zipfs.test.js.map +1 -1
- package/dist/workspaceFactory.d.ts +2 -1
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
package/dist/analyzer/checker.js
CHANGED
@@ -4128,25 +4128,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4128
4128
|
const overriddenDecl = (0, symbolUtils_1.getLastTypedDeclarationForSymbol)(overriddenClassAndSymbol.symbol);
|
4129
4129
|
if ((0, types_1.isFunction)(overriddenType) || (0, types_1.isOverloaded)(overriddenType)) {
|
4130
4130
|
const diagAddendum = new diagnostic_1.DiagnosticAddendum();
|
4131
|
-
|
4132
|
-
|
4133
|
-
overrideFunction = overrideType;
|
4134
|
-
}
|
4135
|
-
else if ((0, types_1.isOverloaded)(overrideType)) {
|
4136
|
-
// Use the last overload.
|
4137
|
-
const impl = types_1.OverloadedType.getImplementation(overrideType);
|
4138
|
-
// If the last overload isn't an implementation, skip the check for this symbol.
|
4139
|
-
if (!impl || !(0, types_1.isFunction)(impl)) {
|
4140
|
-
return;
|
4141
|
-
}
|
4142
|
-
overrideFunction = impl;
|
4143
|
-
}
|
4144
|
-
if (overrideFunction) {
|
4145
|
-
if (!this._evaluator.validateOverrideMethod(overriddenType, overrideFunction,
|
4131
|
+
if ((0, types_1.isFunction)(overrideType) || (0, types_1.isOverloaded)(overrideType)) {
|
4132
|
+
if (!this._evaluator.validateOverrideMethod(overriddenType, overrideType,
|
4146
4133
|
/* baseClass */ undefined, diagAddendum,
|
4147
4134
|
/* enforceParamNameMatch */ true)) {
|
4148
|
-
|
4149
|
-
if (decl && decl.type === 5 /* DeclarationType.Function */) {
|
4135
|
+
if (overrideDecl && overrideDecl.type === 5 /* DeclarationType.Function */) {
|
4150
4136
|
diag = this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportIncompatibleMethodOverride, localize_1.LocMessage.baseClassMethodTypeIncompatible().format({
|
4151
4137
|
classType: childClassType.shared.name,
|
4152
4138
|
name: memberName,
|
@@ -4323,7 +4309,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4323
4309
|
}
|
4324
4310
|
const overloads = types_1.OverloadedType.getOverloads(typeOfSymbol);
|
4325
4311
|
const implementation = types_1.OverloadedType.getImplementation(typeOfSymbol);
|
4326
|
-
this.
|
4312
|
+
this._validateOverloadFinalOverride(overloads, implementation);
|
4327
4313
|
this._validateOverloadAbstractConsistency(overloads, implementation);
|
4328
4314
|
});
|
4329
4315
|
}
|
@@ -4359,33 +4345,31 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4359
4345
|
}
|
4360
4346
|
});
|
4361
4347
|
}
|
4362
|
-
|
4363
|
-
// If there's an implementation,
|
4364
|
-
|
4365
|
-
|
4366
|
-
// If one or more of the overloads is marked @final but the
|
4367
|
-
// implementation is not, report an error.
|
4368
|
-
if (!types_1.FunctionType.isFinal(implementation)) {
|
4369
|
-
overloads.forEach((overload) => {
|
4370
|
-
if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
|
4371
|
-
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalInconsistencyImpl().format({
|
4372
|
-
name: overload.shared.name,
|
4373
|
-
}), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
|
4374
|
-
}
|
4375
|
-
});
|
4376
|
-
}
|
4377
|
-
return;
|
4378
|
-
}
|
4379
|
-
if (overloads.length > 0 && !types_1.FunctionType.isFinal(overloads[0])) {
|
4380
|
-
overloads.slice(1).forEach((overload, index) => {
|
4348
|
+
_validateOverloadFinalOverride(overloads, implementation) {
|
4349
|
+
// If there's an implementation, the overloads are not allowed to be marked final or override.
|
4350
|
+
if (implementation) {
|
4351
|
+
overloads.forEach((overload) => {
|
4381
4352
|
if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
|
4382
|
-
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.
|
4383
|
-
|
4384
|
-
|
4385
|
-
|
4353
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
|
4354
|
+
}
|
4355
|
+
if (types_1.FunctionType.isOverridden(overload) && overload.shared.declaration?.node) {
|
4356
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadOverrideImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
|
4386
4357
|
}
|
4387
4358
|
});
|
4359
|
+
return;
|
4360
|
+
}
|
4361
|
+
// If there's not an implementation, only the first overload can be marked final.
|
4362
|
+
if (overloads.length === 0) {
|
4363
|
+
return;
|
4388
4364
|
}
|
4365
|
+
overloads.slice(1).forEach((overload, index) => {
|
4366
|
+
if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
|
4367
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalNoImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
|
4368
|
+
}
|
4369
|
+
if (types_1.FunctionType.isOverridden(overload) && overload.shared.declaration?.node) {
|
4370
|
+
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadOverrideNoImpl(), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
|
4371
|
+
}
|
4372
|
+
});
|
4389
4373
|
}
|
4390
4374
|
// For a TypedDict class that derives from another TypedDict class
|
4391
4375
|
// that is closed, verify that any new keys are compatible with the
|
@@ -4576,6 +4560,13 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4576
4560
|
if (impl && (0, types_1.isFunction)(impl)) {
|
4577
4561
|
overrideFunction = impl;
|
4578
4562
|
}
|
4563
|
+
// If there is no implementation present, use the first overload.
|
4564
|
+
if (!impl) {
|
4565
|
+
const overloads = types_1.OverloadedType.getOverloads(overrideType);
|
4566
|
+
if (overloads.length > 0) {
|
4567
|
+
overrideFunction = overloads[0];
|
4568
|
+
}
|
4569
|
+
}
|
4579
4570
|
}
|
4580
4571
|
else if ((0, types_1.isClassInstance)(overrideType) && types_1.ClassType.isPropertyClass(overrideType)) {
|
4581
4572
|
if (overrideType.priv.fgetInfo) {
|
@@ -4613,10 +4604,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4613
4604
|
}
|
4614
4605
|
const baseClass = baseClassAndSymbol.classType;
|
4615
4606
|
const childClassSelf = types_1.ClassType.cloneAsInstance((0, typeUtils_1.selfSpecializeClass)(childClassType, { useBoundTypeVars: true }));
|
4616
|
-
|
4607
|
+
let baseType = (0, typeUtils_1.partiallySpecializeType)(this._evaluator.getEffectiveTypeOfSymbol(baseClassAndSymbol.symbol), baseClass, this._evaluator.getTypeClassType(), childClassSelf);
|
4617
4608
|
overrideType = (0, typeUtils_1.partiallySpecializeType)(overrideType, childClassType, this._evaluator.getTypeClassType(), childClassSelf);
|
4618
4609
|
if (childClassType.shared.typeVarScopeId) {
|
4619
4610
|
overrideType = (0, typeUtils_1.makeTypeVarsBound)(overrideType, [childClassType.shared.typeVarScopeId]);
|
4611
|
+
baseType = (0, typeUtils_1.makeTypeVarsBound)(baseType, [childClassType.shared.typeVarScopeId]);
|
4620
4612
|
}
|
4621
4613
|
if ((0, types_1.isFunction)(baseType) || (0, types_1.isOverloaded)(baseType)) {
|
4622
4614
|
const diagAddendum = new diagnostic_1.DiagnosticAddendum();
|