@zzzen/pyright-internal 1.2.0-dev.20230910 → 1.2.0-dev.20230917
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.d.ts +1 -0
- package/dist/analyzer/binder.js +8 -4
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +44 -31
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/constraintSolver.js +1 -0
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/dataClasses.js +1 -1
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declarationUtils.js +12 -2
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +9 -2
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/namedTuples.js +2 -2
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +2 -0
- package/dist/analyzer/parameterUtils.js +53 -1
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +16 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +39 -22
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +61 -61
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -2
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.d.ts +9 -0
- package/dist/analyzer/typeGuards.js +22 -1
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +3 -2
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.js +17 -4
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +5 -5
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.js +3 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/realFileSystem.js +7 -2
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/localization/localize.d.ts +8 -4
- package/dist/localization/localize.js +3 -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 +3 -2
- 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/tests/checker.test.js +2 -2
- package/dist/tests/checker.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +1 -1
- package/dist/tests/typeEvaluator3.test.js +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -4
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/package.json +1 -1
package/dist/analyzer/checker.js
CHANGED
@@ -1897,14 +1897,6 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1897
1897
|
// There should never be a single overload.
|
1898
1898
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.singleOverload().format({ name }), primaryDecl.node.name);
|
1899
1899
|
}
|
1900
|
-
overloadedFunctions.forEach((overload) => {
|
1901
|
-
if (overload.details.declaration &&
|
1902
|
-
!ParseTreeUtils.isFunctionSuiteEmpty(overload.details.declaration.node)) {
|
1903
|
-
const diag = new diagnostic_1.DiagnosticAddendum();
|
1904
|
-
diag.addMessage(localize_1.Localizer.DiagnosticAddendum.overloadWithImplementation());
|
1905
|
-
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.overloadWithImplementation().format({ name }) + diag.getString(), overload.details.declaration.node.name);
|
1906
|
-
}
|
1907
|
-
});
|
1908
1900
|
// If the file is not a stub and this is the first overload,
|
1909
1901
|
// verify that there is an implementation.
|
1910
1902
|
if (!this._fileInfo.isStubFile && overloadedFunctions.length > 0) {
|
@@ -2662,27 +2654,34 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2662
2654
|
// we can determine which overload(s) were used to satisfy
|
2663
2655
|
// the call expression and determine whether any of them
|
2664
2656
|
// are deprecated.
|
2657
|
+
let callTypeResult;
|
2665
2658
|
const callNode = ParseTreeUtils.getCallForName(node);
|
2666
2659
|
if (callNode) {
|
2667
|
-
|
2668
|
-
|
2669
|
-
|
2670
|
-
|
2671
|
-
|
2672
|
-
|
2673
|
-
|
2674
|
-
|
2675
|
-
|
2676
|
-
|
2677
|
-
|
2678
|
-
|
2679
|
-
|
2680
|
-
|
2681
|
-
|
2682
|
-
|
2660
|
+
callTypeResult = evaluator.getTypeResult(callNode);
|
2661
|
+
}
|
2662
|
+
else {
|
2663
|
+
const decoratorNode = ParseTreeUtils.getDecoratorForName(node);
|
2664
|
+
if (decoratorNode) {
|
2665
|
+
callTypeResult = evaluator.getTypeResultForDecorator(decoratorNode);
|
2666
|
+
}
|
2667
|
+
}
|
2668
|
+
if (callTypeResult &&
|
2669
|
+
callTypeResult.overloadsUsedForCall &&
|
2670
|
+
callTypeResult.overloadsUsedForCall.length > 0) {
|
2671
|
+
callTypeResult.overloadsUsedForCall.forEach((overload) => {
|
2672
|
+
if (overload.details.deprecatedMessage !== undefined) {
|
2673
|
+
if (node.value === overload.details.name) {
|
2674
|
+
deprecatedMessage = overload.details.deprecatedMessage;
|
2675
|
+
errorMessage = getDeprecatedMessageForFunction(overload);
|
2683
2676
|
}
|
2684
|
-
|
2685
|
-
|
2677
|
+
else if ((0, types_1.isInstantiableClass)(type) && overload.details.name === '__init__') {
|
2678
|
+
deprecatedMessage = overload.details.deprecatedMessage;
|
2679
|
+
errorMessage = localize_1.Localizer.Diagnostic.deprecatedConstructor().format({
|
2680
|
+
name: type.details.name,
|
2681
|
+
});
|
2682
|
+
}
|
2683
|
+
}
|
2684
|
+
});
|
2686
2685
|
}
|
2687
2686
|
}
|
2688
2687
|
(0, typeUtils_1.doForEachSubtype)(type, (subtype) => {
|
@@ -2699,9 +2698,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2699
2698
|
}
|
2700
2699
|
}
|
2701
2700
|
else if ((0, types_1.isFunction)(subtype)) {
|
2702
|
-
if (subtype.details.deprecatedMessage !== undefined
|
2703
|
-
|
2704
|
-
|
2701
|
+
if (subtype.details.deprecatedMessage !== undefined) {
|
2702
|
+
if (!subtype.details.name || node.value === subtype.details.name) {
|
2703
|
+
deprecatedMessage = subtype.details.deprecatedMessage;
|
2704
|
+
errorMessage = getDeprecatedMessageForFunction(subtype);
|
2705
|
+
}
|
2705
2706
|
}
|
2706
2707
|
}
|
2707
2708
|
else if ((0, types_1.isOverloadedFunction)(subtype)) {
|
@@ -4122,10 +4123,22 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
4122
4123
|
const decls = overrideSymbol.getDeclarations();
|
4123
4124
|
if (decls.length > 0) {
|
4124
4125
|
const lastDecl = decls[decls.length - 1];
|
4126
|
+
const primaryDecl = decls[0];
|
4125
4127
|
// Verify that the override type is assignable to (same or narrower than)
|
4126
4128
|
// the declared type of the base symbol.
|
4127
|
-
const
|
4128
|
-
|
4129
|
+
const isInvariant = (primaryDecl === null || primaryDecl === void 0 ? void 0 : primaryDecl.type) === 1 /* Variable */ && !primaryDecl.isFinal;
|
4130
|
+
let diagAddendum = new diagnostic_1.DiagnosticAddendum();
|
4131
|
+
if (!this._evaluator.assignType(baseType, overrideType, diagAddendum,
|
4132
|
+
/* destTypeVarContext */ undefined,
|
4133
|
+
/* srcTypeVarContext */ undefined, isInvariant ? 1 /* EnforceInvariance */ : 0 /* Default */)) {
|
4134
|
+
if (isInvariant) {
|
4135
|
+
diagAddendum = new diagnostic_1.DiagnosticAddendum();
|
4136
|
+
diagAddendum.addMessage(localize_1.Localizer.DiagnosticAddendum.overrideIsInvariant());
|
4137
|
+
diagAddendum.createAddendum().addMessage(localize_1.Localizer.DiagnosticAddendum.overrideInvariantMismatch().format({
|
4138
|
+
overrideType: this._evaluator.printType(overrideType),
|
4139
|
+
baseType: this._evaluator.printType(baseType),
|
4140
|
+
}));
|
4141
|
+
}
|
4129
4142
|
const diag = this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportIncompatibleVariableOverride, diagnosticRules_1.DiagnosticRule.reportIncompatibleVariableOverride, localize_1.Localizer.Diagnostic.symbolOverridden().format({
|
4130
4143
|
name: memberName,
|
4131
4144
|
className: baseClassAndSymbol.classType.details.name,
|