@zzzen/pyright-internal 1.2.0-dev.20240630 → 1.2.0-dev.20240714
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.js +74 -46
- package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
- package/dist/analyzer/binder.js +507 -513
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +652 -633
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.d.ts +5 -3
- package/dist/analyzer/codeFlowEngine.js +143 -122
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/codeFlowTypes.js +30 -28
- package/dist/analyzer/codeFlowTypes.js.map +1 -1
- package/dist/analyzer/constraintSolver.d.ts +1 -1
- package/dist/analyzer/constraintSolver.js +71 -67
- package/dist/analyzer/constraintSolver.js.map +1 -1
- package/dist/analyzer/constructorTransform.js +22 -22
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/constructors.js +85 -77
- package/dist/analyzer/constructors.js.map +1 -1
- package/dist/analyzer/dataClasses.js +113 -176
- package/dist/analyzer/dataClasses.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +1 -1
- package/dist/analyzer/declarationUtils.js +14 -15
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/decorators.js +85 -85
- package/dist/analyzer/decorators.js.map +1 -1
- package/dist/analyzer/enums.js +71 -57
- package/dist/analyzer/enums.js.map +1 -1
- package/dist/analyzer/functionTransform.js +8 -18
- package/dist/analyzer/functionTransform.js.map +1 -1
- package/dist/analyzer/importResolver.d.ts +2 -1
- package/dist/analyzer/importResolver.js +40 -29
- package/dist/analyzer/importResolver.js.map +1 -1
- package/dist/analyzer/importStatementUtils.js +27 -27
- package/dist/analyzer/importStatementUtils.js.map +1 -1
- package/dist/analyzer/namedTuples.js +33 -59
- package/dist/analyzer/namedTuples.js.map +1 -1
- package/dist/analyzer/operations.d.ts +4 -4
- package/dist/analyzer/operations.js +70 -70
- package/dist/analyzer/operations.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +66 -62
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parameterUtils.d.ts +4 -4
- package/dist/analyzer/parameterUtils.js +28 -46
- package/dist/analyzer/parameterUtils.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.js +268 -269
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/parseTreeWalker.js +76 -76
- package/dist/analyzer/parseTreeWalker.js.map +1 -1
- package/dist/analyzer/patternMatching.js +195 -147
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.js +1 -1
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +78 -147
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +22 -22
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/sourceFile.d.ts +3 -2
- package/dist/analyzer/sourceFile.js +8 -8
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/sourceMapper.js +20 -19
- package/dist/analyzer/sourceMapper.js.map +1 -1
- package/dist/analyzer/staticExpressions.js +83 -84
- package/dist/analyzer/staticExpressions.js.map +1 -1
- package/dist/analyzer/testWalker.js +2 -2
- package/dist/analyzer/testWalker.js.map +1 -1
- package/dist/analyzer/tracePrinter.js +20 -20
- package/dist/analyzer/tracePrinter.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +25 -25
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +2330 -2367
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +33 -31
- package/dist/analyzer/typeEvaluatorTypes.js +48 -41
- package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
- package/dist/analyzer/typeGuards.js +221 -217
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +118 -115
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeStubWriter.js +104 -103
- package/dist/analyzer/typeStubWriter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +26 -9
- package/dist/analyzer/typeUtils.js +460 -404
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typeVarContext.js +8 -8
- package/dist/analyzer/typeVarContext.js.map +1 -1
- package/dist/analyzer/typeWalker.js +13 -10
- package/dist/analyzer/typeWalker.js.map +1 -1
- package/dist/analyzer/typedDicts.js +96 -198
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +147 -103
- package/dist/analyzer/types.js +668 -493
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/diagnostic.d.ts +14 -0
- package/dist/common/diagnostic.js +41 -1
- package/dist/common/diagnostic.js.map +1 -1
- package/dist/common/diagnosticSink.d.ts +4 -0
- package/dist/common/diagnosticSink.js +21 -1
- package/dist/common/diagnosticSink.js.map +1 -1
- package/dist/common/fileSystem.d.ts +1 -0
- package/dist/common/fileSystem.js.map +1 -1
- package/dist/common/fullAccessHost.js +6 -4
- package/dist/common/fullAccessHost.js.map +1 -1
- package/dist/common/realFileSystem.d.ts +1 -0
- package/dist/common/realFileSystem.js +4 -0
- package/dist/common/realFileSystem.js.map +1 -1
- package/dist/common/textEditTracker.js +14 -14
- package/dist/common/textEditTracker.js.map +1 -1
- package/dist/languageService/autoImporter.js +10 -10
- package/dist/languageService/autoImporter.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +23 -23
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +1 -1
- package/dist/languageService/completionProvider.js +156 -154
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/definitionProvider.d.ts +1 -1
- package/dist/languageService/definitionProvider.js +3 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolCollector.js +19 -19
- package/dist/languageService/documentSymbolCollector.js.map +1 -1
- package/dist/languageService/hoverProvider.js +25 -24
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importSorter.js +8 -8
- package/dist/languageService/importSorter.js.map +1 -1
- package/dist/languageService/referencesProvider.js +8 -8
- package/dist/languageService/referencesProvider.js.map +1 -1
- package/dist/languageService/signatureHelpProvider.d.ts +1 -1
- package/dist/languageService/signatureHelpProvider.js +6 -6
- package/dist/languageService/signatureHelpProvider.js.map +1 -1
- package/dist/languageService/symbolIndexer.js +3 -3
- package/dist/languageService/symbolIndexer.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +13 -13
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +3 -0
- package/dist/localization/localize.js +1 -0
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +2 -1
- package/dist/parser/parseNodes.d.ts +468 -401
- package/dist/parser/parseNodes.js +626 -355
- package/dist/parser/parseNodes.js.map +1 -1
- package/dist/parser/parser.d.ts +1 -0
- package/dist/parser/parser.js +322 -297
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +265 -5
- package/dist/pyright.js.map +1 -1
- package/dist/tests/classDeclaration.test.js +14 -14
- package/dist/tests/classDeclaration.test.js.map +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
- package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
- package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
- package/dist/tests/harness/vfs/filesystem.js +6 -2
- package/dist/tests/harness/vfs/filesystem.js.map +1 -1
- package/dist/tests/importResolver.test.js +4 -3
- package/dist/tests/importResolver.test.js.map +1 -1
- package/dist/tests/parseTreeUtils.test.js +5 -5
- package/dist/tests/parseTreeUtils.test.js.map +1 -1
- package/dist/tests/parser.test.js +8 -8
- package/dist/tests/parser.test.js.map +1 -1
- package/dist/tests/sourceMapperUtils.test.js +7 -7
- package/dist/tests/sourceMapperUtils.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +2 -2
- package/dist/tests/typeEvaluator3.test.js +10 -5
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +1 -1
- package/dist/tests/typeEvaluator7.test.js +2 -2
- package/dist/tests/typeEvaluator7.test.js.map +1 -1
- package/dist/tests/typePrinter.test.js +14 -39
- package/dist/tests/typePrinter.test.js.map +1 -1
- package/package.json +1 -1
package/dist/analyzer/enums.js
CHANGED
@@ -10,6 +10,7 @@
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
11
11
|
exports.getEnumAutoValueType = exports.getTypeOfEnumMember = exports.getEnumDeclaredValueType = exports.isDeclInEnumClass = exports.transformTypeForEnumMember = exports.createEnumType = exports.isEnumClassWithMembers = exports.isEnumMetaclass = void 0;
|
12
12
|
const debug_1 = require("../common/debug");
|
13
|
+
const pythonVersion_1 = require("../common/pythonVersion");
|
13
14
|
const analyzerNodeInfo_1 = require("./analyzerNodeInfo");
|
14
15
|
const parseTreeUtils_1 = require("./parseTreeUtils");
|
15
16
|
const symbol_1 = require("./symbol");
|
@@ -19,7 +20,7 @@ const typeUtils_1 = require("./typeUtils");
|
|
19
20
|
const types_1 = require("./types");
|
20
21
|
// Determines whether the class is an Enum metaclass or a subclass thereof.
|
21
22
|
function isEnumMetaclass(classType) {
|
22
|
-
return classType.
|
23
|
+
return classType.shared.mro.some((mroClass) => (0, types_1.isClass)(mroClass) && types_1.ClassType.isBuiltIn(mroClass, ['EnumMeta', 'EnumType']));
|
23
24
|
}
|
24
25
|
exports.isEnumMetaclass = isEnumMetaclass;
|
25
26
|
// Determines whether this is an enum class that has at least one enum
|
@@ -49,14 +50,14 @@ function createEnumType(evaluator, errorNode, enumClass, argList) {
|
|
49
50
|
if (nameArg.argumentCategory !== 0 /* ArgumentCategory.Simple */ ||
|
50
51
|
!nameArg.valueExpression ||
|
51
52
|
nameArg.valueExpression.nodeType !== 48 /* ParseNodeType.StringList */ ||
|
52
|
-
nameArg.valueExpression.strings.length !== 1 ||
|
53
|
-
nameArg.valueExpression.strings[0].nodeType !== 49 /* ParseNodeType.String */) {
|
53
|
+
nameArg.valueExpression.d.strings.length !== 1 ||
|
54
|
+
nameArg.valueExpression.d.strings[0].nodeType !== 49 /* ParseNodeType.String */) {
|
54
55
|
return undefined;
|
55
56
|
}
|
56
|
-
const className = nameArg.valueExpression.strings.map((s) => s.value).join('');
|
57
|
+
const className = nameArg.valueExpression.d.strings.map((s) => s.d.value).join('');
|
57
58
|
const classType = types_1.ClassType.createInstantiable(className, (0, parseTreeUtils_1.getClassFullName)(errorNode, fileInfo.moduleName, className), fileInfo.moduleName, fileInfo.fileUri, 65536 /* ClassTypeFlags.EnumClass */ | 4194304 /* ClassTypeFlags.ValidTypeAliasClass */, (0, parseTreeUtils_1.getTypeSourceId)(errorNode),
|
58
|
-
/* declaredMetaclass */ undefined, enumClass.
|
59
|
-
classType.
|
59
|
+
/* declaredMetaclass */ undefined, enumClass.shared.effectiveMetaclass);
|
60
|
+
classType.shared.baseClasses.push(enumClass);
|
60
61
|
(0, typeUtils_1.computeMroLinearization)(classType);
|
61
62
|
const classFields = types_1.ClassType.getSymbolTable(classType);
|
62
63
|
classFields.set('__class__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */ | 64 /* SymbolFlags.IgnoredForProtocolMatch */, classType));
|
@@ -82,11 +83,11 @@ function createEnumType(evaluator, errorNode, enumClass, argList) {
|
|
82
83
|
// Enum('name', {'a': 1, 'b': 2, 'c': 3})
|
83
84
|
if (initArg.valueExpression.nodeType === 48 /* ParseNodeType.StringList */) {
|
84
85
|
// Don't allow format strings in the init arg.
|
85
|
-
if (!initArg.valueExpression.strings.every((str) => str.nodeType === 49 /* ParseNodeType.String */)) {
|
86
|
+
if (!initArg.valueExpression.d.strings.every((str) => str.nodeType === 49 /* ParseNodeType.String */)) {
|
86
87
|
return undefined;
|
87
88
|
}
|
88
|
-
const initStr = initArg.valueExpression.strings
|
89
|
-
.map((s) => s.value)
|
89
|
+
const initStr = initArg.valueExpression.d.strings
|
90
|
+
.map((s) => s.d.value)
|
90
91
|
.join('')
|
91
92
|
.trim();
|
92
93
|
// Split by comma or whitespace.
|
@@ -96,7 +97,7 @@ function createEnumType(evaluator, errorNode, enumClass, argList) {
|
|
96
97
|
return undefined;
|
97
98
|
}
|
98
99
|
const valueType = types_1.ClassType.cloneWithLiteral(types_1.ClassType.cloneAsInstance(intClassType), index + 1);
|
99
|
-
const enumLiteral = new types_1.EnumLiteral(classType.
|
100
|
+
const enumLiteral = new types_1.EnumLiteral(classType.shared.fullName, classType.shared.name, entryName, valueType);
|
100
101
|
const newSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, types_1.ClassType.cloneWithLiteral(classInstanceType, enumLiteral));
|
101
102
|
classFields.set(entryName, newSymbol);
|
102
103
|
}
|
@@ -105,8 +106,8 @@ function createEnumType(evaluator, errorNode, enumClass, argList) {
|
|
105
106
|
if (initArg.valueExpression.nodeType === 34 /* ParseNodeType.List */ ||
|
106
107
|
initArg.valueExpression.nodeType === 52 /* ParseNodeType.Tuple */) {
|
107
108
|
const entries = initArg.valueExpression.nodeType === 34 /* ParseNodeType.List */
|
108
|
-
? initArg.valueExpression.
|
109
|
-
: initArg.valueExpression.
|
109
|
+
? initArg.valueExpression.d.items
|
110
|
+
: initArg.valueExpression.d.items;
|
110
111
|
if (entries.length === 0) {
|
111
112
|
return undefined;
|
112
113
|
}
|
@@ -130,28 +131,28 @@ function createEnumType(evaluator, errorNode, enumClass, argList) {
|
|
130
131
|
if (isSimpleString) {
|
131
132
|
return undefined;
|
132
133
|
}
|
133
|
-
if (entry.
|
134
|
+
if (entry.d.items.length !== 2) {
|
134
135
|
return undefined;
|
135
136
|
}
|
136
|
-
nameNode = entry.
|
137
|
-
valueType = evaluator.getTypeOfExpression(entry.
|
137
|
+
nameNode = entry.d.items[0];
|
138
|
+
valueType = evaluator.getTypeOfExpression(entry.d.items[1]).type;
|
138
139
|
}
|
139
140
|
else {
|
140
141
|
return undefined;
|
141
142
|
}
|
142
143
|
if (nameNode.nodeType !== 48 /* ParseNodeType.StringList */ ||
|
143
|
-
nameNode.strings.length !== 1 ||
|
144
|
-
nameNode.strings[0].nodeType !== 49 /* ParseNodeType.String */) {
|
144
|
+
nameNode.d.strings.length !== 1 ||
|
145
|
+
nameNode.d.strings[0].nodeType !== 49 /* ParseNodeType.String */) {
|
145
146
|
return undefined;
|
146
147
|
}
|
147
|
-
const entryName = nameNode.strings[0].value;
|
148
|
-
const enumLiteral = new types_1.EnumLiteral(classType.
|
148
|
+
const entryName = nameNode.d.strings[0].d.value;
|
149
|
+
const enumLiteral = new types_1.EnumLiteral(classType.shared.fullName, classType.shared.name, entryName, valueType);
|
149
150
|
const newSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, types_1.ClassType.cloneWithLiteral(classInstanceType, enumLiteral));
|
150
151
|
classFields.set(entryName, newSymbol);
|
151
152
|
}
|
152
153
|
}
|
153
154
|
if (initArg.valueExpression.nodeType === 18 /* ParseNodeType.Dictionary */) {
|
154
|
-
const entries = initArg.valueExpression.
|
155
|
+
const entries = initArg.valueExpression.d.items;
|
155
156
|
if (entries.length === 0) {
|
156
157
|
return undefined;
|
157
158
|
}
|
@@ -160,15 +161,15 @@ function createEnumType(evaluator, errorNode, enumClass, argList) {
|
|
160
161
|
if (entry.nodeType !== 20 /* ParseNodeType.DictionaryKeyEntry */) {
|
161
162
|
return undefined;
|
162
163
|
}
|
163
|
-
const nameNode = entry.
|
164
|
-
const valueType = evaluator.getTypeOfExpression(entry.
|
164
|
+
const nameNode = entry.d.keyExpr;
|
165
|
+
const valueType = evaluator.getTypeOfExpression(entry.d.valueExpr).type;
|
165
166
|
if (nameNode.nodeType !== 48 /* ParseNodeType.StringList */ ||
|
166
|
-
nameNode.strings.length !== 1 ||
|
167
|
-
nameNode.strings[0].nodeType !== 49 /* ParseNodeType.String */) {
|
167
|
+
nameNode.d.strings.length !== 1 ||
|
168
|
+
nameNode.d.strings[0].nodeType !== 49 /* ParseNodeType.String */) {
|
168
169
|
return undefined;
|
169
170
|
}
|
170
|
-
const entryName = nameNode.strings[0].value;
|
171
|
-
const enumLiteral = new types_1.EnumLiteral(classType.
|
171
|
+
const entryName = nameNode.d.strings[0].d.value;
|
172
|
+
const enumLiteral = new types_1.EnumLiteral(classType.shared.fullName, classType.shared.name, entryName, valueType);
|
172
173
|
const newSymbol = symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, types_1.ClassType.cloneWithLiteral(classInstanceType, enumLiteral));
|
173
174
|
classFields.set(entryName, newSymbol);
|
174
175
|
}
|
@@ -210,29 +211,29 @@ function transformTypeForEnumMember(evaluator, classType, memberName, ignoreAnno
|
|
210
211
|
if (primaryDecl.node.nodeType === 38 /* ParseNodeType.Name */) {
|
211
212
|
nameNode = primaryDecl.node;
|
212
213
|
}
|
213
|
-
else if (primaryDecl.node.nodeType === 31 /* ParseNodeType.Function */
|
214
|
-
|
215
|
-
|
214
|
+
else if (primaryDecl.node.nodeType === 31 /* ParseNodeType.Function */ ||
|
215
|
+
primaryDecl.node.nodeType === 10 /* ParseNodeType.Class */) {
|
216
|
+
// Handle the case where a method or class is decorated with @enum.member.
|
217
|
+
nameNode = primaryDecl.node.d.name;
|
216
218
|
}
|
217
219
|
else {
|
218
220
|
return undefined;
|
219
221
|
}
|
220
|
-
if (((_a = nameNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* ParseNodeType.Assignment */ && nameNode.parent.
|
222
|
+
if (((_a = nameNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 3 /* ParseNodeType.Assignment */ && nameNode.parent.d.leftExpr === nameNode) {
|
221
223
|
isMemberOfEnumeration = true;
|
222
|
-
valueTypeExprNode = nameNode.parent.
|
224
|
+
valueTypeExprNode = nameNode.parent.d.rightExpr;
|
223
225
|
}
|
224
226
|
else if (((_b = nameNode.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 52 /* ParseNodeType.Tuple */ &&
|
225
227
|
((_c = nameNode.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 3 /* ParseNodeType.Assignment */) {
|
226
228
|
isMemberOfEnumeration = true;
|
227
229
|
isUnpackedTuple = true;
|
228
|
-
valueTypeExprNode = nameNode.parent.parent.
|
230
|
+
valueTypeExprNode = nameNode.parent.parent.d.rightExpr;
|
229
231
|
}
|
230
|
-
else if (((_d = nameNode.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ &&
|
231
|
-
nameNode.parent.valueExpression === nameNode) {
|
232
|
+
else if (((_d = nameNode.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ && nameNode.parent.d.valueExpr === nameNode) {
|
232
233
|
if (ignoreAnnotation) {
|
233
234
|
isMemberOfEnumeration = true;
|
234
235
|
}
|
235
|
-
declaredTypeNode = nameNode.parent.
|
236
|
+
declaredTypeNode = nameNode.parent.d.annotation;
|
236
237
|
}
|
237
238
|
// The spec specifically excludes names that start and end with a single underscore.
|
238
239
|
// This also includes dunder names.
|
@@ -246,24 +247,37 @@ function transformTypeForEnumMember(evaluator, classType, memberName, ignoreAnno
|
|
246
247
|
const declaredType = declaredTypeNode ? evaluator.getTypeOfAnnotation(declaredTypeNode) : undefined;
|
247
248
|
let assignedType;
|
248
249
|
if (valueTypeExprNode) {
|
249
|
-
const evalFlags = (0, analyzerNodeInfo_1.getFileInfo)(valueTypeExprNode).isStubFile ? 1 /*
|
250
|
+
const evalFlags = (0, analyzerNodeInfo_1.getFileInfo)(valueTypeExprNode).isStubFile ? 1 /* EvalFlags.ConvertEllipsisToAny */ : undefined;
|
250
251
|
assignedType = evaluator.getTypeOfExpression(valueTypeExprNode, evalFlags).type;
|
251
252
|
}
|
252
253
|
// Handle aliases to other enum members within the same enum.
|
253
|
-
if ((valueTypeExprNode === null || valueTypeExprNode === void 0 ? void 0 : valueTypeExprNode.nodeType) === 38 /* ParseNodeType.Name */ && valueTypeExprNode.value !== memberName) {
|
254
|
-
const aliasedEnumType = transformTypeForEnumMember(evaluator, classType, valueTypeExprNode.value,
|
254
|
+
if ((valueTypeExprNode === null || valueTypeExprNode === void 0 ? void 0 : valueTypeExprNode.nodeType) === 38 /* ParseNodeType.Name */ && valueTypeExprNode.d.value !== memberName) {
|
255
|
+
const aliasedEnumType = transformTypeForEnumMember(evaluator, classType, valueTypeExprNode.d.value,
|
255
256
|
/* ignoreAnnotation */ false, recursionCount);
|
256
257
|
if (aliasedEnumType &&
|
257
258
|
(0, types_1.isClassInstance)(aliasedEnumType) &&
|
258
259
|
types_1.ClassType.isSameGenericClass(aliasedEnumType, types_1.ClassType.cloneAsInstance(memberInfo.classType)) &&
|
259
|
-
aliasedEnumType.literalValue !== undefined) {
|
260
|
+
aliasedEnumType.priv.literalValue !== undefined) {
|
260
261
|
return aliasedEnumType;
|
261
262
|
}
|
262
263
|
}
|
263
264
|
if (primaryDecl.node.nodeType === 31 /* ParseNodeType.Function */) {
|
264
|
-
const
|
265
|
-
if (
|
266
|
-
assignedType =
|
265
|
+
const functionTypeInfo = evaluator.getTypeOfFunction(primaryDecl.node);
|
266
|
+
if (functionTypeInfo) {
|
267
|
+
assignedType = functionTypeInfo.decoratedType;
|
268
|
+
}
|
269
|
+
}
|
270
|
+
else if (primaryDecl.node.nodeType === 10 /* ParseNodeType.Class */) {
|
271
|
+
const classTypeInfo = evaluator.getTypeOfClass(primaryDecl.node);
|
272
|
+
if (classTypeInfo) {
|
273
|
+
assignedType = classTypeInfo.decoratedType;
|
274
|
+
// If the class is not marked as a member or a non-member, the behavior
|
275
|
+
// depends on the version of Python. In versions prior to 3.13, classes
|
276
|
+
// are treated as members.
|
277
|
+
if ((0, types_1.isInstantiableClass)(assignedType)) {
|
278
|
+
const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(primaryDecl.node);
|
279
|
+
isMemberOfEnumeration = fileInfo.executionEnvironment.pythonVersion.isLessThan(pythonVersion_1.pythonVersion3_13);
|
280
|
+
}
|
267
281
|
}
|
268
282
|
}
|
269
283
|
let valueType = (_e = declaredType !== null && declaredType !== void 0 ? declaredType : assignedType) !== null && _e !== void 0 ? _e : types_1.UnknownType.create();
|
@@ -290,15 +304,15 @@ function transformTypeForEnumMember(evaluator, classType, memberName, ignoreAnno
|
|
290
304
|
}
|
291
305
|
if (!assignedType &&
|
292
306
|
((_h = nameNode.parent) === null || _h === void 0 ? void 0 : _h.nodeType) === 3 /* ParseNodeType.Assignment */ &&
|
293
|
-
nameNode.parent.
|
294
|
-
assignedType = evaluator.getTypeOfExpression(nameNode.parent.
|
307
|
+
nameNode.parent.d.leftExpr === nameNode) {
|
308
|
+
assignedType = evaluator.getTypeOfExpression(nameNode.parent.d.rightExpr,
|
295
309
|
/* flags */ undefined, (0, typeUtils_1.makeInferenceContext)(declaredType)).type;
|
296
310
|
}
|
297
311
|
// Handle the Python 3.11 "enum.member()" and "enum.nonmember()" features.
|
298
312
|
if (assignedType && (0, types_1.isClassInstance)(assignedType) && types_1.ClassType.isBuiltIn(assignedType)) {
|
299
|
-
if (assignedType.
|
300
|
-
const nonMemberType = assignedType.typeArguments && assignedType.typeArguments.length > 0
|
301
|
-
? assignedType.typeArguments[0]
|
313
|
+
if (assignedType.shared.fullName === 'enum.nonmember') {
|
314
|
+
const nonMemberType = assignedType.priv.typeArguments && assignedType.priv.typeArguments.length > 0
|
315
|
+
? assignedType.priv.typeArguments[0]
|
302
316
|
: types_1.UnknownType.create();
|
303
317
|
// If the type of the nonmember is declared and the assigned value has
|
304
318
|
// a compatible type, use the declared type.
|
@@ -307,10 +321,10 @@ function transformTypeForEnumMember(evaluator, classType, memberName, ignoreAnno
|
|
307
321
|
}
|
308
322
|
return nonMemberType;
|
309
323
|
}
|
310
|
-
if (assignedType.
|
324
|
+
if (assignedType.shared.fullName === 'enum.member') {
|
311
325
|
valueType =
|
312
|
-
assignedType.typeArguments && assignedType.typeArguments.length > 0
|
313
|
-
? assignedType.typeArguments[0]
|
326
|
+
assignedType.priv.typeArguments && assignedType.priv.typeArguments.length > 0
|
327
|
+
? assignedType.priv.typeArguments[0]
|
314
328
|
: types_1.UnknownType.create();
|
315
329
|
isMemberOfEnumeration = true;
|
316
330
|
}
|
@@ -318,7 +332,7 @@ function transformTypeForEnumMember(evaluator, classType, memberName, ignoreAnno
|
|
318
332
|
if (!isMemberOfEnumeration) {
|
319
333
|
return undefined;
|
320
334
|
}
|
321
|
-
const enumLiteral = new types_1.EnumLiteral(memberInfo.classType.
|
335
|
+
const enumLiteral = new types_1.EnumLiteral(memberInfo.classType.shared.fullName, memberInfo.classType.shared.name, memberName, valueType);
|
322
336
|
return types_1.ClassType.cloneAsInstance(types_1.ClassType.cloneWithLiteral(memberInfo.classType, enumLiteral));
|
323
337
|
}
|
324
338
|
exports.transformTypeForEnumMember = transformTypeForEnumMember;
|
@@ -361,7 +375,7 @@ function getTypeOfEnumMember(evaluator, errorNode, classType, memberName, isInco
|
|
361
375
|
return undefined;
|
362
376
|
}
|
363
377
|
// Handle the special case of 'name' and 'value' members within an enum.
|
364
|
-
const literalValue = classType.literalValue;
|
378
|
+
const literalValue = classType.priv.literalValue;
|
365
379
|
if (memberName === 'name' || memberName === '_name_') {
|
366
380
|
// Does the class explicitly override this member? Or it it using the
|
367
381
|
// standard behavior provided by the "Enum" class?
|
@@ -386,7 +400,7 @@ function getTypeOfEnumMember(evaluator, errorNode, classType, memberName, isInco
|
|
386
400
|
if (literalValues && literalValues.length > 0) {
|
387
401
|
return {
|
388
402
|
type: (0, types_1.combineTypes)(literalValues.map((literalClass) => {
|
389
|
-
const literalValue = literalClass.literalValue;
|
403
|
+
const literalValue = literalClass.priv.literalValue;
|
390
404
|
(0, debug_1.assert)(literalValue instanceof types_1.EnumLiteral);
|
391
405
|
return makeNameType(literalValue);
|
392
406
|
})),
|
@@ -409,7 +423,7 @@ function getTypeOfEnumMember(evaluator, errorNode, classType, memberName, isInco
|
|
409
423
|
// This occurs, for example, in the django TextChoices class. If we
|
410
424
|
// detect a custom metaclass, we'll use the declared type of _value_
|
411
425
|
// if it is declared.
|
412
|
-
const metaclass = classType.
|
426
|
+
const metaclass = classType.shared.effectiveMetaclass;
|
413
427
|
if (metaclass && (0, types_1.isClass)(metaclass) && !types_1.ClassType.isBuiltIn(metaclass)) {
|
414
428
|
return { type: valueType !== null && valueType !== void 0 ? valueType : types_1.AnyType.create(), isIncomplete };
|
415
429
|
}
|
@@ -445,7 +459,7 @@ function getTypeOfEnumMember(evaluator, errorNode, classType, memberName, isInco
|
|
445
459
|
if (literalValues && literalValues.length > 0) {
|
446
460
|
return {
|
447
461
|
type: (0, types_1.combineTypes)(literalValues.map((literalClass) => {
|
448
|
-
const literalValue = literalClass.literalValue;
|
462
|
+
const literalValue = literalClass.priv.literalValue;
|
449
463
|
(0, debug_1.assert)(literalValue instanceof types_1.EnumLiteral);
|
450
464
|
return literalValue.itemType;
|
451
465
|
})),
|
@@ -471,8 +485,8 @@ function getEnumAutoValueType(evaluator, node) {
|
|
471
485
|
memberInfo.classType &&
|
472
486
|
(0, types_1.isClass)(memberInfo.classType) &&
|
473
487
|
!types_1.ClassType.isBuiltIn(memberInfo.classType, 'Enum')) {
|
474
|
-
if (memberInfo.type.
|
475
|
-
return memberInfo.type.
|
488
|
+
if (memberInfo.type.shared.declaredReturnType) {
|
489
|
+
return memberInfo.type.shared.declaredReturnType;
|
476
490
|
}
|
477
491
|
}
|
478
492
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../src/analyzer/enums.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../../src/analyzer/enums.ts"],"names":[],"mappings":"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"}
|
@@ -17,7 +17,7 @@ const types_1 = require("./types");
|
|
17
17
|
const typeUtils_1 = require("./typeUtils");
|
18
18
|
function applyFunctionTransform(evaluator, errorNode, argList, functionType, result) {
|
19
19
|
if ((0, types_1.isFunction)(functionType)) {
|
20
|
-
if (functionType.
|
20
|
+
if (functionType.shared.fullName === 'functools.total_ordering') {
|
21
21
|
return applyTotalOrderingTransform(evaluator, errorNode, argList, result);
|
22
22
|
}
|
23
23
|
}
|
@@ -32,7 +32,7 @@ function applyTotalOrderingTransform(evaluator, errorNode, argList, result) {
|
|
32
32
|
}
|
33
33
|
// This function is meant to apply to a concrete instantiable class.
|
34
34
|
const classType = (_a = argList[0].typeResult) === null || _a === void 0 ? void 0 : _a.type;
|
35
|
-
if (!classType || !(0, types_1.isInstantiableClass)(classType) || classType.includeSubclasses) {
|
35
|
+
if (!classType || !(0, types_1.isInstantiableClass)(classType) || classType.priv.includeSubclasses) {
|
36
36
|
return result;
|
37
37
|
}
|
38
38
|
const orderingMethods = ['__lt__', '__le__', '__gt__', '__ge__'];
|
@@ -55,9 +55,9 @@ function applyTotalOrderingTransform(evaluator, errorNode, argList, result) {
|
|
55
55
|
let operandType;
|
56
56
|
const firstMemberType = evaluator.getTypeOfMember(firstMemberFound);
|
57
57
|
if ((0, types_1.isFunction)(firstMemberType) &&
|
58
|
-
firstMemberType.
|
59
|
-
firstMemberType.
|
60
|
-
operandType = firstMemberType.
|
58
|
+
firstMemberType.shared.parameters.length >= 2 &&
|
59
|
+
types_1.FunctionParam.isTypeDeclared(firstMemberType.shared.parameters[1])) {
|
60
|
+
operandType = firstMemberType.shared.parameters[1].type;
|
61
61
|
}
|
62
62
|
// If there was no provided operand type, fall back to object.
|
63
63
|
if (!operandType) {
|
@@ -71,24 +71,14 @@ function applyTotalOrderingTransform(evaluator, errorNode, argList, result) {
|
|
71
71
|
if (!boolType || !(0, types_1.isClassInstance)(boolType)) {
|
72
72
|
return result;
|
73
73
|
}
|
74
|
-
const selfParam =
|
75
|
-
|
76
|
-
name: 'self',
|
77
|
-
type: (0, typeUtils_1.synthesizeTypeVarForSelfCls)(classType, /* isClsParam */ false),
|
78
|
-
hasDeclaredType: true,
|
79
|
-
};
|
80
|
-
const objParam = {
|
81
|
-
category: 0 /* ParameterCategory.Simple */,
|
82
|
-
name: '__value',
|
83
|
-
type: operandType,
|
84
|
-
hasDeclaredType: true,
|
85
|
-
};
|
74
|
+
const selfParam = types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, (0, typeUtils_1.synthesizeTypeVarForSelfCls)(classType, /* isClsParam */ false), types_1.FunctionParamFlags.TypeDeclared, 'self');
|
75
|
+
const objParam = types_1.FunctionParam.create(0 /* ParameterCategory.Simple */, operandType, types_1.FunctionParamFlags.TypeDeclared, '__value');
|
86
76
|
// Add the missing members to the class's symbol table.
|
87
77
|
missingMethods.forEach((methodName) => {
|
88
78
|
const methodToAdd = types_1.FunctionType.createSynthesizedInstance(methodName);
|
89
79
|
types_1.FunctionType.addParameter(methodToAdd, selfParam);
|
90
80
|
types_1.FunctionType.addParameter(methodToAdd, objParam);
|
91
|
-
methodToAdd.
|
81
|
+
methodToAdd.shared.declaredReturnType = boolType;
|
92
82
|
types_1.ClassType.getSymbolTable(classType).set(methodName, symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, methodToAdd));
|
93
83
|
});
|
94
84
|
return result;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"functionTransform.js","sourceRoot":"","sources":["../../../../../src/analyzer/functionTransform.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+DAA2D;AAC3D,uDAAsD;AAEtD,qCAA+C;AAE/C,
|
1
|
+
{"version":3,"file":"functionTransform.js","sourceRoot":"","sources":["../../../../../src/analyzer/functionTransform.ts"],"names":[],"mappings":"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"}
|
@@ -108,7 +108,8 @@ export declare class ImportResolver {
|
|
108
108
|
private _isUniqueValidSuggestion;
|
109
109
|
private _findImplicitImports;
|
110
110
|
private _getPyTypedInfo;
|
111
|
-
private
|
111
|
+
private _findAndResolveNativeModule;
|
112
|
+
private _resolveNativeModuleWithStub;
|
112
113
|
private _isNativeModuleFileName;
|
113
114
|
private _tryWalkUp;
|
114
115
|
private _shouldWalkUp;
|
@@ -912,17 +912,12 @@ class ImportResolver {
|
|
912
912
|
if (!pyTypedInfo && lookForPyTyped) {
|
913
913
|
pyTypedInfo = this._getPyTypedInfo(dirPath);
|
914
914
|
}
|
915
|
-
if (!isLastPart) {
|
916
|
-
// We are not at the last part, and we found a directory,
|
917
|
-
// so continue to look for the next part.
|
918
|
-
if (!isInitFilePresent) {
|
919
|
-
resolvedPaths.push(uri_1.Uri.empty());
|
920
|
-
isNamespacePackage = true;
|
921
|
-
pyTypedInfo = undefined;
|
922
|
-
}
|
923
|
-
continue;
|
924
|
-
}
|
925
915
|
if (isInitFilePresent) {
|
916
|
+
if (!isLastPart) {
|
917
|
+
// We are not at the last part, and we found a directory,
|
918
|
+
// so continue to look for the next part.
|
919
|
+
continue;
|
920
|
+
}
|
926
921
|
implicitImports = this._findImplicitImports(moduleDescriptor.nameParts.join('.'), dirPath, [
|
927
922
|
pyFilePath,
|
928
923
|
pyiFilePath,
|
@@ -947,26 +942,26 @@ class ImportResolver {
|
|
947
942
|
importFailureInfo.push(`Resolved import with file '${pyFilePath}'`);
|
948
943
|
resolvedPaths.push(pyFilePath);
|
949
944
|
}
|
950
|
-
else
|
951
|
-
|
952
|
-
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
if (!isNativeLib && foundDirectory) {
|
961
|
-
importFailureInfo.push(`Partially resolved import with directory '${dirPath}'`);
|
945
|
+
else if (allowNativeLib &&
|
946
|
+
this._findAndResolveNativeModule(fileDirectory, dirPath, execEnv, importName, moduleDescriptor, importFailureInfo, resolvedPaths)) {
|
947
|
+
isNativeLib = true;
|
948
|
+
importFailureInfo.push(`Did not find file '${pyiFilePath}' or '${pyFilePath}'`);
|
949
|
+
}
|
950
|
+
else if (foundDirectory) {
|
951
|
+
if (!isLastPart) {
|
952
|
+
// We are not at the last part, and we found a directory,
|
953
|
+
// so continue to look for the next part assuming this is
|
954
|
+
// a namespace package.
|
962
955
|
resolvedPaths.push(uri_1.Uri.empty());
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
}
|
956
|
+
isNamespacePackage = true;
|
957
|
+
pyTypedInfo = undefined;
|
958
|
+
continue;
|
967
959
|
}
|
968
|
-
|
969
|
-
|
960
|
+
importFailureInfo.push(`Partially resolved import with directory '${dirPath}'`);
|
961
|
+
resolvedPaths.push(uri_1.Uri.empty());
|
962
|
+
if (isLastPart) {
|
963
|
+
implicitImports = this._findImplicitImports(importName, dirPath, [pyFilePath, pyiFilePath]);
|
964
|
+
isNamespacePackage = true;
|
970
965
|
}
|
971
966
|
}
|
972
967
|
if (!pyTypedInfo && lookForPyTyped) {
|
@@ -1838,7 +1833,23 @@ class ImportResolver {
|
|
1838
1833
|
}
|
1839
1834
|
return (0, pyTypedUtils_1.getPyTypedInfoForPyTypedFile)(this.fileSystem, filePath.pytypedUri);
|
1840
1835
|
}
|
1841
|
-
|
1836
|
+
_findAndResolveNativeModule(fileDirectory, dirPath, execEnv, importName, moduleDescriptor, importFailureInfo, resolvedPaths) {
|
1837
|
+
let isNativeLib = false;
|
1838
|
+
if (this.dirExistsCached(fileDirectory)) {
|
1839
|
+
const filesInDir = this._getFilesInDirectory(fileDirectory);
|
1840
|
+
const dirName = dirPath.fileName;
|
1841
|
+
const nativeLibPath = filesInDir.find((f) => this._isNativeModuleFileName(dirName, f));
|
1842
|
+
if (nativeLibPath) {
|
1843
|
+
// Try resolving native library to a custom stub.
|
1844
|
+
isNativeLib = this._resolveNativeModuleWithStub(nativeLibPath, execEnv, importName, moduleDescriptor, importFailureInfo, resolvedPaths);
|
1845
|
+
if (isNativeLib) {
|
1846
|
+
importFailureInfo.push(`Resolved with native lib '${nativeLibPath.toUserVisibleString()}'`);
|
1847
|
+
}
|
1848
|
+
}
|
1849
|
+
}
|
1850
|
+
return isNativeLib;
|
1851
|
+
}
|
1852
|
+
_resolveNativeModuleWithStub(nativeLibPath, execEnv, importName, moduleDescriptor, importFailureInfo, resolvedPaths) {
|
1842
1853
|
let moduleFullName = importName;
|
1843
1854
|
if (moduleDescriptor.leadingDots > 0) {
|
1844
1855
|
// Relative path. Convert `.mtrand` to `numpy.random.mtrand` based on search path.
|