@zzzen/pyright-internal 1.2.0-dev.20230611 → 1.2.0-dev.20230618
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/checker.js +11 -3
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +4 -1
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructors.js +3 -2
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +1 -1
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/program.d.ts +2 -2
- package/dist/analyzer/program.js +2 -25
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/protocols.d.ts +1 -1
- package/dist/analyzer/protocols.js +47 -26
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/service.d.ts +2 -2
- package/dist/analyzer/service.js +2 -7
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +216 -82
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
- package/dist/analyzer/typeEvaluatorTypes.js +2 -0
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +1 -1
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +10 -11
- package/dist/analyzer/typeUtils.js +57 -44
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/types.d.ts +2 -0
- package/dist/analyzer/types.js +7 -3
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/extensibility.d.ts +6 -2
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/workspaceEditUtils.d.ts +3 -3
- package/dist/common/workspaceEditUtils.js +23 -13
- package/dist/common/workspaceEditUtils.js.map +1 -1
- package/dist/languageServerBase.d.ts +48 -0
- package/dist/languageServerBase.js +3 -3
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/completionProvider.js +2 -0
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +1 -0
- package/dist/localization/localize.js +1 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +1 -0
- package/dist/parser/parser.js +5 -2
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +1 -1
- package/dist/tests/typeEvaluator2.test.js +17 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +5 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator5.test.js +1 -1
- package/dist/tests/workspaceEditUtils.test.js +2 -3
- package/dist/tests/workspaceEditUtils.test.js.map +1 -1
- package/package.json +1 -1
package/dist/analyzer/checker.js
CHANGED
@@ -3738,7 +3738,8 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3738
3738
|
}
|
3739
3739
|
}
|
3740
3740
|
if (overrideFunction) {
|
3741
|
-
if (!this._evaluator.validateOverrideMethod(overriddenType, overrideFunction,
|
3741
|
+
if (!this._evaluator.validateOverrideMethod(overriddenType, overrideFunction,
|
3742
|
+
/* baseClass */ undefined, diagAddendum,
|
3742
3743
|
/* enforceParamNameMatch */ true)) {
|
3743
3744
|
const decl = overrideFunction.details.declaration;
|
3744
3745
|
if (decl && decl.type === 5 /* Function */) {
|
@@ -3826,6 +3827,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3826
3827
|
if (!mroBaseClass) {
|
3827
3828
|
continue;
|
3828
3829
|
}
|
3830
|
+
(0, debug_1.assert)((0, types_1.isClass)(mroBaseClass));
|
3829
3831
|
const baseClassAndSymbol = (0, typeUtils_1.lookUpClassMember)(mroBaseClass, name, 0 /* Default */);
|
3830
3832
|
if (!baseClassAndSymbol) {
|
3831
3833
|
continue;
|
@@ -3945,7 +3947,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3945
3947
|
// Don't check certain magic functions or private symbols.
|
3946
3948
|
if (!exemptMethods.some((exempt) => exempt === memberName) &&
|
3947
3949
|
!SymbolNameUtils.isPrivateName(memberName)) {
|
3948
|
-
if (!this._evaluator.validateOverrideMethod(baseType, overrideType, diagAddendum, enforceParamNameMatch)) {
|
3950
|
+
if (!this._evaluator.validateOverrideMethod(baseType, overrideType, childClassType, diagAddendum, enforceParamNameMatch)) {
|
3949
3951
|
const decl = (0, types_1.isFunction)(overrideType) && overrideType.details.declaration
|
3950
3952
|
? overrideType.details.declaration
|
3951
3953
|
: (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(overrideSymbol);
|
@@ -4042,7 +4044,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4042
4044
|
else {
|
4043
4045
|
const subclassMethodType = (0, typeUtils_1.partiallySpecializeType)(this._evaluator.getEffectiveTypeOfSymbol(subclassPropMethod), childClassType);
|
4044
4046
|
if ((0, types_1.isFunction)(subclassMethodType)) {
|
4045
|
-
if (!this._evaluator.validateOverrideMethod(baseClassMethodType, subclassMethodType, diagAddendum.createAddendum())) {
|
4047
|
+
if (!this._evaluator.validateOverrideMethod(baseClassMethodType, subclassMethodType, childClassType, diagAddendum.createAddendum())) {
|
4046
4048
|
diagAddendum.addMessage(localize_1.Localizer.DiagnosticAddendum.propertyMethodIncompatible().format({
|
4047
4049
|
name: methodName,
|
4048
4050
|
}));
|
@@ -4331,6 +4333,12 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4331
4333
|
if ((0, types_1.isClassInstance)(paramType) && types_1.ClassType.isProtocolClass(paramType)) {
|
4332
4334
|
return;
|
4333
4335
|
}
|
4336
|
+
// If the method starts with a `*args: P.args`, skip the check.
|
4337
|
+
if (paramInfo.category === 1 /* ArgsList */ &&
|
4338
|
+
(0, types_1.isParamSpec)(paramInfo.type) &&
|
4339
|
+
paramInfo.type.paramSpecAccess === 'args') {
|
4340
|
+
return;
|
4341
|
+
}
|
4334
4342
|
// Don't enforce this for an overloaded method because the "self" param
|
4335
4343
|
// annotation can be used as a filter for the overload. This differs from
|
4336
4344
|
// mypy, which enforces this check for overloads, but there are legitimate
|