@zzzen/pyright-internal 1.2.0-dev.20240526 → 1.2.0-dev.20240602
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/analyzerNodeInfo.d.ts +2 -2
- package/dist/analyzer/binder.d.ts +3 -3
- package/dist/analyzer/binder.js +32 -32
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.d.ts +3 -3
- package/dist/analyzer/checker.js +35 -35
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +4 -4
- package/dist/analyzer/codeFlowTypes.js +3 -3
- package/dist/analyzer/constructors.js +10 -3
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/declarationUtils.js +3 -3
- package/dist/analyzer/enums.js +6 -6
- package/dist/analyzer/importResolver.d.ts +1 -0
- package/dist/analyzer/importResolver.js +6 -3
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +6 -6
- package/dist/analyzer/namedTuples.js +2 -2
- package/dist/analyzer/operations.js +2 -2
- package/dist/analyzer/parseTreeUtils.d.ts +1 -1
- package/dist/analyzer/parseTreeUtils.js +94 -94
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.d.ts +5 -5
- package/dist/analyzer/parseTreeWalker.js +64 -64
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +1 -1
- package/dist/analyzer/program.d.ts +1 -1
- package/dist/analyzer/program.js +23 -29
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/scope.d.ts +1 -1
- package/dist/analyzer/scope.js +2 -2
- package/dist/analyzer/scope.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +4 -4
- package/dist/analyzer/staticExpressions.js +3 -3
- package/dist/analyzer/testWalker.js +1 -1
- package/dist/analyzer/tracePrinter.js +4 -4
- package/dist/analyzer/typeDocStringUtils.js +1 -1
- package/dist/analyzer/typeEvaluator.js +290 -311
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeGuards.js +6 -6
- package/dist/analyzer/typeStubWriter.js +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -1
- package/dist/analyzer/typeUtils.js +11 -4
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +1 -2
- package/dist/analyzer/typedDicts.js +5 -17
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.d.ts +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +14 -14
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/textEditTracker.js +5 -5
- package/dist/common/uri/fileUri.js +1 -0
- package/dist/common/uri/fileUri.js.map +1 -1
- package/dist/common/uri/uri.d.ts +3 -0
- package/dist/common/uri/uri.js +16 -0
- package/dist/common/uri/uri.js.map +1 -1
- package/dist/languageService/autoImporter.js +4 -4
- package/dist/languageService/callHierarchyProvider.js +1 -1
- package/dist/languageService/completionProvider.js +30 -30
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +7 -7
- package/dist/languageService/hoverProvider.js +2 -2
- package/dist/languageService/importSorter.js +1 -1
- package/dist/languageService/referencesProvider.js +4 -4
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +3 -3
- package/dist/languageService/tooltipUtils.js +2 -2
- package/dist/localization/localize.d.ts +1 -1
- package/dist/localization/localize.js +1 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.cs.json +3 -1
- package/dist/localization/package.nls.de.json +3 -1
- package/dist/localization/package.nls.en-us.json +1 -1
- package/dist/localization/package.nls.es.json +3 -1
- package/dist/localization/package.nls.fr.json +3 -1
- package/dist/localization/package.nls.it.json +3 -1
- package/dist/localization/package.nls.ja.json +3 -1
- package/dist/localization/package.nls.ko.json +3 -1
- package/dist/localization/package.nls.pl.json +3 -1
- package/dist/localization/package.nls.pt-br.json +3 -1
- package/dist/localization/package.nls.qps-ploc.json +3 -1
- package/dist/localization/package.nls.ru.json +3 -1
- package/dist/localization/package.nls.tr.json +3 -1
- package/dist/localization/package.nls.zh-cn.json +3 -1
- package/dist/localization/package.nls.zh-tw.json +3 -1
- package/dist/parser/parseNodes.d.ts +42 -42
- package/dist/parser/parseNodes.js +69 -69
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +1 -1
- package/dist/parser/parser.js +35 -35
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +3 -3
- package/dist/pyright.js.map +1 -1
- package/dist/tests/classDeclaration.test.js +1 -1
- package/dist/tests/importResolver.test.js +16 -0
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +4 -4
- package/dist/tests/parser.test.js +3 -3
- package/dist/tests/typeEvaluator2.test.js +5 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator7.test.js +0 -6
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/uri.test.js +11 -3
- package/dist/tests/uri.test.js.map +1 -1
- package/dist/workspaceFactory.js +16 -14
- package/dist/workspaceFactory.js.map +1 -1
- package/package.json +1 -1
package/dist/analyzer/checker.js
CHANGED
@@ -509,11 +509,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
509
509
|
this._validateIllegalDefaultParamInitializer(node);
|
510
510
|
return true;
|
511
511
|
}
|
512
|
-
|
512
|
+
visitComprehension(node) {
|
513
513
|
this._scopedNodes.push(node);
|
514
514
|
return true;
|
515
515
|
}
|
516
|
-
|
516
|
+
visitComprehensionIf(node) {
|
517
517
|
this._validateConditionalIsBool(node.testExpression);
|
518
518
|
this._reportUnnecessaryConditionExpression(node.testExpression);
|
519
519
|
return true;
|
@@ -861,7 +861,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
861
861
|
if (this._fileInfo.executionEnvironment.pythonVersion.isLessThan(pythonVersion_1.pythonVersion3_12)) {
|
862
862
|
let curNode = node;
|
863
863
|
while (curNode) {
|
864
|
-
if (curNode.nodeType ===
|
864
|
+
if (curNode.nodeType === 30 /* ParseNodeType.FormatString */) {
|
865
865
|
fStringContainers.push(curNode);
|
866
866
|
}
|
867
867
|
curNode = curNode.parent;
|
@@ -1024,7 +1024,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1024
1024
|
break;
|
1025
1025
|
}
|
1026
1026
|
let isImportFromTyping = false;
|
1027
|
-
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) ===
|
1027
|
+
if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 25 /* ParseNodeType.ImportFrom */) {
|
1028
1028
|
if (node.parent.module.leadingDots === 0 && node.parent.module.nameParts.length === 1) {
|
1029
1029
|
if (node.parent.module.nameParts[0].value === 'typing') {
|
1030
1030
|
isImportFromTyping = true;
|
@@ -1066,7 +1066,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1066
1066
|
break;
|
1067
1067
|
}
|
1068
1068
|
}
|
1069
|
-
else if (typeVarScopeNode.nodeType ===
|
1069
|
+
else if (typeVarScopeNode.nodeType === 31 /* ParseNodeType.Function */) {
|
1070
1070
|
const functionType = (_d = this._evaluator.getTypeOfFunction(typeVarScopeNode)) === null || _d === void 0 ? void 0 : _d.functionType;
|
1071
1071
|
if (functionType === null || functionType === void 0 ? void 0 : functionType.details.typeParameters.some((param) => param.details.name === node.name.value)) {
|
1072
1072
|
foundDuplicate = true;
|
@@ -1228,7 +1228,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1228
1228
|
55 /* ParseNodeType.UnaryOperation */,
|
1229
1229
|
7 /* ParseNodeType.BinaryOperation */,
|
1230
1230
|
40 /* ParseNodeType.Number */,
|
1231
|
-
|
1231
|
+
14 /* ParseNodeType.Constant */,
|
1232
1232
|
38 /* ParseNodeType.Name */,
|
1233
1233
|
52 /* ParseNodeType.Tuple */,
|
1234
1234
|
];
|
@@ -1236,11 +1236,11 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1236
1236
|
if (simpleExpressionTypes.some((nodeType) => nodeType === node.nodeType)) {
|
1237
1237
|
reportAsUnused = true;
|
1238
1238
|
}
|
1239
|
-
else if (node.nodeType ===
|
1239
|
+
else if (node.nodeType === 34 /* ParseNodeType.List */ ||
|
1240
1240
|
node.nodeType === 45 /* ParseNodeType.Set */ ||
|
1241
|
-
node.nodeType ===
|
1241
|
+
node.nodeType === 18 /* ParseNodeType.Dictionary */) {
|
1242
1242
|
// Exclude comprehensions.
|
1243
|
-
if (!node.entries.some((entry) => entry.nodeType ===
|
1243
|
+
if (!node.entries.some((entry) => entry.nodeType === 11 /* ParseNodeType.Comprehension */)) {
|
1244
1244
|
reportAsUnused = true;
|
1245
1245
|
}
|
1246
1246
|
}
|
@@ -1605,7 +1605,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1605
1605
|
}
|
1606
1606
|
}
|
1607
1607
|
const existingEntry = localTypeVarUsage.get(nameType.details.name);
|
1608
|
-
const isParamTypeWithEllipsisUsage = ((_a = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _a === void 0 ? void 0 : _a.nodeType) ===
|
1608
|
+
const isParamTypeWithEllipsisUsage = ((_a = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _a === void 0 ? void 0 : _a.nodeType) === 21 /* ParseNodeType.Ellipsis */;
|
1609
1609
|
if (!existingEntry) {
|
1610
1610
|
localTypeVarUsage.set(nameType.details.name, {
|
1611
1611
|
nodes: [nameNode],
|
@@ -1637,7 +1637,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1637
1637
|
// this constructor method?
|
1638
1638
|
if (constructorClass && nameType.scopeId === constructorClass.details.typeVarScopeId) {
|
1639
1639
|
const existingEntry = classTypeVarUsage.get(nameType.details.name);
|
1640
|
-
const isParamTypeWithEllipsisUsage = ((_d = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _d === void 0 ? void 0 : _d.nodeType) ===
|
1640
|
+
const isParamTypeWithEllipsisUsage = ((_d = curParamNode === null || curParamNode === void 0 ? void 0 : curParamNode.defaultValue) === null || _d === void 0 ? void 0 : _d.nodeType) === 21 /* ParseNodeType.Ellipsis */;
|
1641
1641
|
const isExempt = !!nameType.details.isDefaultExplicit;
|
1642
1642
|
if (!existingEntry) {
|
1643
1643
|
classTypeVarUsage.set(nameType.details.name, {
|
@@ -1901,15 +1901,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1901
1901
|
}
|
1902
1902
|
_validateStubStatement(statement) {
|
1903
1903
|
switch (statement.nodeType) {
|
1904
|
-
case
|
1905
|
-
case
|
1904
|
+
case 22 /* ParseNodeType.If */:
|
1905
|
+
case 31 /* ParseNodeType.Function */:
|
1906
1906
|
case 10 /* ParseNodeType.Class */:
|
1907
1907
|
case 0 /* ParseNodeType.Error */: {
|
1908
1908
|
// These are allowed in a stub file.
|
1909
1909
|
break;
|
1910
1910
|
}
|
1911
1911
|
case 57 /* ParseNodeType.While */:
|
1912
|
-
case
|
1912
|
+
case 29 /* ParseNodeType.For */:
|
1913
1913
|
case 53 /* ParseNodeType.Try */:
|
1914
1914
|
case 58 /* ParseNodeType.With */: {
|
1915
1915
|
// These are not allowed.
|
@@ -1924,15 +1924,15 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
1924
1924
|
case 4 /* ParseNodeType.AssignmentExpression */:
|
1925
1925
|
case 6 /* ParseNodeType.Await */:
|
1926
1926
|
case 7 /* ParseNodeType.BinaryOperation */:
|
1927
|
-
case
|
1928
|
-
case
|
1929
|
-
case
|
1930
|
-
case
|
1931
|
-
case
|
1932
|
-
case
|
1933
|
-
case
|
1934
|
-
case
|
1935
|
-
case
|
1927
|
+
case 14 /* ParseNodeType.Constant */:
|
1928
|
+
case 17 /* ParseNodeType.Del */:
|
1929
|
+
case 18 /* ParseNodeType.Dictionary */:
|
1930
|
+
case 27 /* ParseNodeType.Index */:
|
1931
|
+
case 29 /* ParseNodeType.For */:
|
1932
|
+
case 30 /* ParseNodeType.FormatString */:
|
1933
|
+
case 32 /* ParseNodeType.Global */:
|
1934
|
+
case 33 /* ParseNodeType.Lambda */:
|
1935
|
+
case 34 /* ParseNodeType.List */:
|
1936
1936
|
case 35 /* ParseNodeType.MemberAccess */:
|
1937
1937
|
case 38 /* ParseNodeType.Name */:
|
1938
1938
|
case 39 /* ParseNodeType.Nonlocal */:
|
@@ -2175,7 +2175,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2175
2175
|
// the assignment is within an `__init__` method, so ignore class
|
2176
2176
|
// scopes here.
|
2177
2177
|
const classOrFunc = ParseTreeUtils.getEnclosingClassOrFunction(decl.node);
|
2178
|
-
if ((classOrFunc === null || classOrFunc === void 0 ? void 0 : classOrFunc.nodeType) ===
|
2178
|
+
if ((classOrFunc === null || classOrFunc === void 0 ? void 0 : classOrFunc.nodeType) === 31 /* ParseNodeType.Function */) {
|
2179
2179
|
exemptAssignment = true;
|
2180
2180
|
}
|
2181
2181
|
}
|
@@ -2454,7 +2454,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2454
2454
|
case 8 /* DeclarationType.Alias */:
|
2455
2455
|
diagnosticLevel = this._fileInfo.diagnosticRuleSet.reportUnusedImport;
|
2456
2456
|
rule = diagnosticRules_1.DiagnosticRule.reportUnusedImport;
|
2457
|
-
if (decl.node.nodeType ===
|
2457
|
+
if (decl.node.nodeType === 24 /* ParseNodeType.ImportAs */) {
|
2458
2458
|
if (decl.node.alias) {
|
2459
2459
|
// For statements of the form "import x as x", don't mark "x" as unaccessed
|
2460
2460
|
// because it's assumed to be re-exported.
|
@@ -2476,7 +2476,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2476
2476
|
}
|
2477
2477
|
}
|
2478
2478
|
}
|
2479
|
-
else if (decl.node.nodeType ===
|
2479
|
+
else if (decl.node.nodeType === 26 /* ParseNodeType.ImportFromAs */) {
|
2480
2480
|
const importFrom = decl.node.parent;
|
2481
2481
|
// For statements of the form "from y import x as x", don't mark "x" as
|
2482
2482
|
// unaccessed because it's assumed to be re-exported.
|
@@ -2908,7 +2908,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2908
2908
|
_isSymbolPrivate(nameValue, scopeType) {
|
2909
2909
|
// All variables within the scope of a function or a list
|
2910
2910
|
// comprehension are considered private.
|
2911
|
-
if (scopeType === 2 /* ScopeType.Function */ || scopeType === 1 /* ScopeType.
|
2911
|
+
if (scopeType === 2 /* ScopeType.Function */ || scopeType === 1 /* ScopeType.Comprehension */) {
|
2912
2912
|
return true;
|
2913
2913
|
}
|
2914
2914
|
// See if the symbol is private.
|
@@ -2966,7 +2966,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
2966
2966
|
let deprecatedMessage;
|
2967
2967
|
function getDeprecatedMessageForFunction(functionType) {
|
2968
2968
|
if (functionType.details.declaration &&
|
2969
|
-
functionType.details.declaration.node.nodeType ===
|
2969
|
+
functionType.details.declaration.node.nodeType === 31 /* ParseNodeType.Function */) {
|
2970
2970
|
const containingClass = ParseTreeUtils.getEnclosingClass(functionType.details.declaration.node,
|
2971
2971
|
/* stopAtFunction */ true);
|
2972
2972
|
if (containingClass) {
|
@@ -3155,8 +3155,8 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3155
3155
|
return;
|
3156
3156
|
}
|
3157
3157
|
// Skip this check for relative imports.
|
3158
|
-
const nodeModule = node.nodeType ===
|
3159
|
-
? ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) ===
|
3158
|
+
const nodeModule = node.nodeType === 26 /* ParseNodeType.ImportFromAs */
|
3159
|
+
? ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 25 /* ParseNodeType.ImportFrom */
|
3160
3160
|
? (_b = node.parent) === null || _b === void 0 ? void 0 : _b.module
|
3161
3161
|
: undefined
|
3162
3162
|
: node.module;
|
@@ -3164,9 +3164,9 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3164
3164
|
return;
|
3165
3165
|
}
|
3166
3166
|
// Otherwise use the name to determine if a match for a stdlib module.
|
3167
|
-
const namePartNodes = node.nodeType ===
|
3167
|
+
const namePartNodes = node.nodeType === 24 /* ParseNodeType.ImportAs */
|
3168
3168
|
? node.module.nameParts
|
3169
|
-
: node.nodeType ===
|
3169
|
+
: node.nodeType === 26 /* ParseNodeType.ImportFromAs */
|
3170
3170
|
? [node.name]
|
3171
3171
|
: node.module.nameParts;
|
3172
3172
|
const nameParts = namePartNodes.map((n) => n.value);
|
@@ -3321,7 +3321,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3321
3321
|
if (statement.nodeType === 47 /* ParseNodeType.StatementList */) {
|
3322
3322
|
for (const substatement of statement.statements) {
|
3323
3323
|
if (substatement.nodeType !== 54 /* ParseNodeType.TypeAnnotation */ &&
|
3324
|
-
substatement.nodeType !==
|
3324
|
+
substatement.nodeType !== 21 /* ParseNodeType.Ellipsis */ &&
|
3325
3325
|
substatement.nodeType !== 48 /* ParseNodeType.StringList */ &&
|
3326
3326
|
substatement.nodeType !== 42 /* ParseNodeType.Pass */) {
|
3327
3327
|
emitBadStatementError(substatement);
|
@@ -3997,7 +3997,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
3997
3997
|
const newDecl = newMemberType.details.declaration;
|
3998
3998
|
if (initDecl && newDecl) {
|
3999
3999
|
const mainDecl = displayOnInit ? initDecl : newDecl;
|
4000
|
-
const mainDeclNode = mainDecl.node.nodeType ===
|
4000
|
+
const mainDeclNode = mainDecl.node.nodeType === 31 /* ParseNodeType.Function */ ? mainDecl.node.name : mainDecl.node;
|
4001
4001
|
const diagAddendum = new diagnostic_1.DiagnosticAddendum();
|
4002
4002
|
const initSignature = this._evaluator.printType(initMemberType);
|
4003
4003
|
const newSignature = this._evaluator.printType(newMemberType);
|
@@ -5178,7 +5178,7 @@ class Checker extends parseTreeWalker_1.ParseTreeWalker {
|
|
5178
5178
|
const importStatements = (0, importStatementUtils_1.getTopLevelImports)(this._moduleNode);
|
5179
5179
|
const importModuleMap = new Map();
|
5180
5180
|
importStatements.orderedImports.forEach((importStatement) => {
|
5181
|
-
if (importStatement.node.nodeType ===
|
5181
|
+
if (importStatement.node.nodeType === 25 /* ParseNodeType.ImportFrom */) {
|
5182
5182
|
const symbolMap = new Map();
|
5183
5183
|
importStatement.node.imports.forEach((importFromAs) => {
|
5184
5184
|
// Ignore duplicates if they're aliased.
|