@zzzen/pyright-internal 1.2.0-dev.20250119 → 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 +29 -24
- package/dist/analyzer/checker.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/typeEvaluator.js +4 -5
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeGuards.js +10 -7
- 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/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/localization/localize.d.ts +4 -7
- package/dist/localization/localize.js +4 -2
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +0 -2
- package/dist/localization/package.nls.de.json +0 -2
- package/dist/localization/package.nls.en-us.json +12 -4
- package/dist/localization/package.nls.es.json +0 -2
- package/dist/localization/package.nls.fr.json +0 -2
- package/dist/localization/package.nls.it.json +0 -2
- package/dist/localization/package.nls.ja.json +0 -2
- package/dist/localization/package.nls.ko.json +0 -2
- package/dist/localization/package.nls.pl.json +0 -2
- package/dist/localization/package.nls.pt-br.json +0 -2
- package/dist/localization/package.nls.qps-ploc.json +0 -2
- package/dist/localization/package.nls.ru.json +0 -2
- package/dist/localization/package.nls.tr.json +0 -2
- package/dist/localization/package.nls.zh-cn.json +0 -2
- package/dist/localization/package.nls.zh-tw.json +0 -2
- 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/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 +4 -0
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -1
- package/dist/tests/typeEvaluator6.test.js +4 -0
- package/dist/tests/typeEvaluator6.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
@@ -4309,7 +4309,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4309
4309
|
}
|
4310
4310
|
const overloads = types_1.OverloadedType.getOverloads(typeOfSymbol);
|
4311
4311
|
const implementation = types_1.OverloadedType.getImplementation(typeOfSymbol);
|
4312
|
-
this.
|
4312
|
+
this._validateOverloadFinalOverride(overloads, implementation);
|
4313
4313
|
this._validateOverloadAbstractConsistency(overloads, implementation);
|
4314
4314
|
});
|
4315
4315
|
}
|
@@ -4345,33 +4345,31 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4345
4345
|
}
|
4346
4346
|
});
|
4347
4347
|
}
|
4348
|
-
|
4349
|
-
// If there's an implementation,
|
4350
|
-
|
4351
|
-
|
4352
|
-
// If one or more of the overloads is marked @final but the
|
4353
|
-
// implementation is not, report an error.
|
4354
|
-
if (!types_1.FunctionType.isFinal(implementation)) {
|
4355
|
-
overloads.forEach((overload) => {
|
4356
|
-
if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
|
4357
|
-
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.overloadFinalInconsistencyImpl().format({
|
4358
|
-
name: overload.shared.name,
|
4359
|
-
}), (0, declarationUtils_1.getNameNodeForDeclaration)(overload.shared.declaration) ?? overload.shared.declaration.node);
|
4360
|
-
}
|
4361
|
-
});
|
4362
|
-
}
|
4363
|
-
return;
|
4364
|
-
}
|
4365
|
-
if (overloads.length > 0 && !types_1.FunctionType.isFinal(overloads[0])) {
|
4366
|
-
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) => {
|
4367
4352
|
if (types_1.FunctionType.isFinal(overload) && overload.shared.declaration?.node) {
|
4368
|
-
this._evaluator.addDiagnostic(diagnosticRules_1.DiagnosticRule.reportInconsistentOverload, localize_1.LocMessage.
|
4369
|
-
|
4370
|
-
|
4371
|
-
|
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);
|
4372
4357
|
}
|
4373
4358
|
});
|
4359
|
+
return;
|
4374
4360
|
}
|
4361
|
+
// If there's not an implementation, only the first overload can be marked final.
|
4362
|
+
if (overloads.length === 0) {
|
4363
|
+
return;
|
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
|
+
});
|
4375
4373
|
}
|
4376
4374
|
// For a TypedDict class that derives from another TypedDict class
|
4377
4375
|
// that is closed, verify that any new keys are compatible with the
|
@@ -4562,6 +4560,13 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4562
4560
|
if (impl && (0, types_1.isFunction)(impl)) {
|
4563
4561
|
overrideFunction = impl;
|
4564
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
|
+
}
|
4565
4570
|
}
|
4566
4571
|
else if ((0, types_1.isClassInstance)(overrideType) && types_1.ClassType.isPropertyClass(overrideType)) {
|
4567
4572
|
if (overrideType.priv.fgetInfo) {
|