@zzzen/pyright-internal 1.2.0-dev.20220821 → 1.2.0-dev.20220911
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 +18 -25
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +1 -0
- package/dist/analyzer/checker.js +30 -0
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +6 -1
- package/dist/analyzer/importResolver.js +76 -28
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +1 -0
- package/dist/analyzer/parseTreeUtils.js +54 -7
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +10 -0
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +16 -2
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/scope.js +5 -3
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/service.d.ts +1 -1
- package/dist/analyzer/service.js +21 -7
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +2 -1
- package/dist/analyzer/sourceFile.js +4 -3
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +89 -47
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeGuards.js +6 -5
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.d.ts +3 -3
- package/dist/analyzer/typePrinter.js +24 -20
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +2 -2
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/common/commandLineOptions.d.ts +2 -0
- package/dist/common/commandLineOptions.js +7 -0
- package/dist/common/commandLineOptions.js.map +1 -1
- package/dist/common/debug.js +7 -1
- package/dist/common/debug.js.map +1 -1
- package/dist/common/envVarUtils.d.ts +1 -0
- package/dist/common/envVarUtils.js +34 -0
- package/dist/common/envVarUtils.js.map +1 -0
- package/dist/common/realFileSystem.js +1 -1
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/languageServerBase.d.ts +4 -2
- package/dist/languageServerBase.js +22 -39
- 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 +5 -3
- package/dist/localization/localize.js +2 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -1
- package/dist/parser/parser.js +8 -0
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.js +2 -1
- package/dist/parser/tokenizer.js.map +1 -1
- package/dist/server.js +6 -5
- package/dist/server.js.map +1 -1
- package/dist/tests/checker.test.js +2 -2
- package/dist/tests/ipythonMode.test.js +118 -0
- package/dist/tests/ipythonMode.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +8 -2
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +9 -1
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +5 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +7 -1
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +2 -2
- package/package.json +5 -5
@@ -67,6 +67,7 @@ export declare class Checker extends ParseTreeWalker {
|
|
67
67
|
private _validateExhaustiveMatch;
|
68
68
|
private _suppressUnboundCheck;
|
69
69
|
private _validateIllegalDefaultParamInitializer;
|
70
|
+
private _validateStandardCollectionInstantiation;
|
70
71
|
private _validateContainmentTypes;
|
71
72
|
private _validateComparisonTypes;
|
72
73
|
private _isTypeComparable;
|
package/dist/analyzer/checker.js
CHANGED
@@ -440,6 +440,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
440
440
|
var _a;
|
441
441
|
this._validateIsInstanceCall(node);
|
442
442
|
this._validateIllegalDefaultParamInitializer(node);
|
443
|
+
this._validateStandardCollectionInstantiation(node);
|
443
444
|
if (this._fileInfo.diagnosticRuleSet.reportUnusedCallResult !== 'none' ||
|
444
445
|
this._fileInfo.diagnosticRuleSet.reportUnusedCoroutine !== 'none') {
|
445
446
|
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 47 /* StatementList */) {
|
@@ -948,8 +949,21 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
948
949
|
40 /* Number */,
|
949
950
|
11 /* Constant */,
|
950
951
|
38 /* Name */,
|
952
|
+
52 /* Tuple */,
|
951
953
|
];
|
954
|
+
let reportAsUnused = false;
|
952
955
|
if (simpleExpressionTypes.some((nodeType) => nodeType === node.nodeType)) {
|
956
|
+
reportAsUnused = true;
|
957
|
+
}
|
958
|
+
else if (node.nodeType === 31 /* List */ ||
|
959
|
+
node.nodeType === 45 /* Set */ ||
|
960
|
+
node.nodeType === 15 /* Dictionary */) {
|
961
|
+
// Exclude comprehensions.
|
962
|
+
if (!node.entries.some((entry) => entry.nodeType === 32 /* ListComprehension */)) {
|
963
|
+
reportAsUnused = true;
|
964
|
+
}
|
965
|
+
}
|
966
|
+
if (reportAsUnused) {
|
953
967
|
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportUnusedExpression, diagnosticRules_1.DiagnosticRule.reportUnusedExpression, localize_1.Localizer.Diagnostic.unusedExpression(), node);
|
954
968
|
}
|
955
969
|
}
|
@@ -987,6 +1001,22 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
987
1001
|
}
|
988
1002
|
}
|
989
1003
|
}
|
1004
|
+
_validateStandardCollectionInstantiation(node) {
|
1005
|
+
const leftType = this._evaluator.getType(node.leftExpression);
|
1006
|
+
if (leftType &&
|
1007
|
+
(0, types_1.isInstantiableClass)(leftType) &&
|
1008
|
+
types_1.ClassType.isBuiltIn(leftType) &&
|
1009
|
+
!leftType.includeSubclasses &&
|
1010
|
+
leftType.aliasName) {
|
1011
|
+
const nonInstantiable = ['List', 'Set', 'Dict', 'Tuple'];
|
1012
|
+
if (nonInstantiable.some((name) => name === leftType.aliasName)) {
|
1013
|
+
this._evaluator.addDiagnostic(this._fileInfo.diagnosticRuleSet.reportGeneralTypeIssues, diagnosticRules_1.DiagnosticRule.reportGeneralTypeIssues, localize_1.Localizer.Diagnostic.collectionAliasInstantiation().format({
|
1014
|
+
type: leftType.aliasName,
|
1015
|
+
alias: leftType.details.name,
|
1016
|
+
}), node.leftExpression);
|
1017
|
+
}
|
1018
|
+
}
|
1019
|
+
}
|
990
1020
|
_validateContainmentTypes(node) {
|
991
1021
|
const leftType = this._evaluator.getType(node.leftExpression);
|
992
1022
|
const containerType = this._evaluator.getType(node.rightExpression);
|