@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.
Files changed (170) hide show
  1. package/dist/analyzer/analyzerNodeInfo.js +74 -46
  2. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  3. package/dist/analyzer/binder.js +507 -513
  4. package/dist/analyzer/binder.js.map +1 -1
  5. package/dist/analyzer/checker.js +652 -633
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/codeFlowEngine.d.ts +5 -3
  8. package/dist/analyzer/codeFlowEngine.js +143 -122
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/codeFlowTypes.js +30 -28
  11. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  12. package/dist/analyzer/constraintSolver.d.ts +1 -1
  13. package/dist/analyzer/constraintSolver.js +71 -67
  14. package/dist/analyzer/constraintSolver.js.map +1 -1
  15. package/dist/analyzer/constructorTransform.js +22 -22
  16. package/dist/analyzer/constructorTransform.js.map +1 -1
  17. package/dist/analyzer/constructors.js +85 -77
  18. package/dist/analyzer/constructors.js.map +1 -1
  19. package/dist/analyzer/dataClasses.js +113 -176
  20. package/dist/analyzer/dataClasses.js.map +1 -1
  21. package/dist/analyzer/declaration.d.ts +1 -1
  22. package/dist/analyzer/declarationUtils.js +14 -15
  23. package/dist/analyzer/declarationUtils.js.map +1 -1
  24. package/dist/analyzer/decorators.js +85 -85
  25. package/dist/analyzer/decorators.js.map +1 -1
  26. package/dist/analyzer/enums.js +71 -57
  27. package/dist/analyzer/enums.js.map +1 -1
  28. package/dist/analyzer/functionTransform.js +8 -18
  29. package/dist/analyzer/functionTransform.js.map +1 -1
  30. package/dist/analyzer/importResolver.d.ts +2 -1
  31. package/dist/analyzer/importResolver.js +40 -29
  32. package/dist/analyzer/importResolver.js.map +1 -1
  33. package/dist/analyzer/importStatementUtils.js +27 -27
  34. package/dist/analyzer/importStatementUtils.js.map +1 -1
  35. package/dist/analyzer/namedTuples.js +33 -59
  36. package/dist/analyzer/namedTuples.js.map +1 -1
  37. package/dist/analyzer/operations.d.ts +4 -4
  38. package/dist/analyzer/operations.js +70 -70
  39. package/dist/analyzer/operations.js.map +1 -1
  40. package/dist/analyzer/packageTypeVerifier.js +66 -62
  41. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  42. package/dist/analyzer/parameterUtils.d.ts +4 -4
  43. package/dist/analyzer/parameterUtils.js +28 -46
  44. package/dist/analyzer/parameterUtils.js.map +1 -1
  45. package/dist/analyzer/parseTreeUtils.js +268 -269
  46. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  47. package/dist/analyzer/parseTreeWalker.js +76 -76
  48. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  49. package/dist/analyzer/patternMatching.js +195 -147
  50. package/dist/analyzer/patternMatching.js.map +1 -1
  51. package/dist/analyzer/program.js +1 -1
  52. package/dist/analyzer/program.js.map +1 -1
  53. package/dist/analyzer/properties.js +78 -147
  54. package/dist/analyzer/properties.js.map +1 -1
  55. package/dist/analyzer/protocols.js +22 -22
  56. package/dist/analyzer/protocols.js.map +1 -1
  57. package/dist/analyzer/sourceFile.d.ts +3 -2
  58. package/dist/analyzer/sourceFile.js +8 -8
  59. package/dist/analyzer/sourceFile.js.map +1 -1
  60. package/dist/analyzer/sourceMapper.js +20 -19
  61. package/dist/analyzer/sourceMapper.js.map +1 -1
  62. package/dist/analyzer/staticExpressions.js +83 -84
  63. package/dist/analyzer/staticExpressions.js.map +1 -1
  64. package/dist/analyzer/testWalker.js +2 -2
  65. package/dist/analyzer/testWalker.js.map +1 -1
  66. package/dist/analyzer/tracePrinter.js +20 -20
  67. package/dist/analyzer/tracePrinter.js.map +1 -1
  68. package/dist/analyzer/typeDocStringUtils.js +25 -25
  69. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  70. package/dist/analyzer/typeEvaluator.js +2330 -2367
  71. package/dist/analyzer/typeEvaluator.js.map +1 -1
  72. package/dist/analyzer/typeEvaluatorTypes.d.ts +33 -31
  73. package/dist/analyzer/typeEvaluatorTypes.js +48 -41
  74. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  75. package/dist/analyzer/typeGuards.js +221 -217
  76. package/dist/analyzer/typeGuards.js.map +1 -1
  77. package/dist/analyzer/typePrinter.js +118 -115
  78. package/dist/analyzer/typePrinter.js.map +1 -1
  79. package/dist/analyzer/typeStubWriter.js +104 -103
  80. package/dist/analyzer/typeStubWriter.js.map +1 -1
  81. package/dist/analyzer/typeUtils.d.ts +26 -9
  82. package/dist/analyzer/typeUtils.js +460 -404
  83. package/dist/analyzer/typeUtils.js.map +1 -1
  84. package/dist/analyzer/typeVarContext.js +8 -8
  85. package/dist/analyzer/typeVarContext.js.map +1 -1
  86. package/dist/analyzer/typeWalker.js +13 -10
  87. package/dist/analyzer/typeWalker.js.map +1 -1
  88. package/dist/analyzer/typedDicts.js +96 -198
  89. package/dist/analyzer/typedDicts.js.map +1 -1
  90. package/dist/analyzer/types.d.ts +147 -103
  91. package/dist/analyzer/types.js +668 -493
  92. package/dist/analyzer/types.js.map +1 -1
  93. package/dist/commands/dumpFileDebugInfoCommand.js +33 -33
  94. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  95. package/dist/common/diagnostic.d.ts +14 -0
  96. package/dist/common/diagnostic.js +41 -1
  97. package/dist/common/diagnostic.js.map +1 -1
  98. package/dist/common/diagnosticSink.d.ts +4 -0
  99. package/dist/common/diagnosticSink.js +21 -1
  100. package/dist/common/diagnosticSink.js.map +1 -1
  101. package/dist/common/fileSystem.d.ts +1 -0
  102. package/dist/common/fileSystem.js.map +1 -1
  103. package/dist/common/fullAccessHost.js +6 -4
  104. package/dist/common/fullAccessHost.js.map +1 -1
  105. package/dist/common/realFileSystem.d.ts +1 -0
  106. package/dist/common/realFileSystem.js +4 -0
  107. package/dist/common/realFileSystem.js.map +1 -1
  108. package/dist/common/textEditTracker.js +14 -14
  109. package/dist/common/textEditTracker.js.map +1 -1
  110. package/dist/languageService/autoImporter.js +10 -10
  111. package/dist/languageService/autoImporter.js.map +1 -1
  112. package/dist/languageService/callHierarchyProvider.js +23 -23
  113. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  114. package/dist/languageService/completionProvider.d.ts +1 -1
  115. package/dist/languageService/completionProvider.js +156 -154
  116. package/dist/languageService/completionProvider.js.map +1 -1
  117. package/dist/languageService/definitionProvider.d.ts +1 -1
  118. package/dist/languageService/definitionProvider.js +3 -1
  119. package/dist/languageService/definitionProvider.js.map +1 -1
  120. package/dist/languageService/documentSymbolCollector.js +19 -19
  121. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  122. package/dist/languageService/hoverProvider.js +25 -24
  123. package/dist/languageService/hoverProvider.js.map +1 -1
  124. package/dist/languageService/importSorter.js +8 -8
  125. package/dist/languageService/importSorter.js.map +1 -1
  126. package/dist/languageService/referencesProvider.js +8 -8
  127. package/dist/languageService/referencesProvider.js.map +1 -1
  128. package/dist/languageService/signatureHelpProvider.d.ts +1 -1
  129. package/dist/languageService/signatureHelpProvider.js +6 -6
  130. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  131. package/dist/languageService/symbolIndexer.js +3 -3
  132. package/dist/languageService/symbolIndexer.js.map +1 -1
  133. package/dist/languageService/tooltipUtils.js +13 -13
  134. package/dist/languageService/tooltipUtils.js.map +1 -1
  135. package/dist/localization/localize.d.ts +3 -0
  136. package/dist/localization/localize.js +1 -0
  137. package/dist/localization/localize.js.map +1 -1
  138. package/dist/localization/package.nls.en-us.json +2 -1
  139. package/dist/parser/parseNodes.d.ts +468 -401
  140. package/dist/parser/parseNodes.js +626 -355
  141. package/dist/parser/parseNodes.js.map +1 -1
  142. package/dist/parser/parser.d.ts +1 -0
  143. package/dist/parser/parser.js +322 -297
  144. package/dist/parser/parser.js.map +1 -1
  145. package/dist/pyright.js +265 -5
  146. package/dist/pyright.js.map +1 -1
  147. package/dist/tests/classDeclaration.test.js +14 -14
  148. package/dist/tests/classDeclaration.test.js.map +1 -1
  149. package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
  150. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  151. package/dist/tests/harness/vfs/filesystem.d.ts +3 -2
  152. package/dist/tests/harness/vfs/filesystem.js +6 -2
  153. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  154. package/dist/tests/importResolver.test.js +4 -3
  155. package/dist/tests/importResolver.test.js.map +1 -1
  156. package/dist/tests/parseTreeUtils.test.js +5 -5
  157. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  158. package/dist/tests/parser.test.js +8 -8
  159. package/dist/tests/parser.test.js.map +1 -1
  160. package/dist/tests/sourceMapperUtils.test.js +7 -7
  161. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  162. package/dist/tests/typeEvaluator2.test.js +2 -2
  163. package/dist/tests/typeEvaluator3.test.js +10 -5
  164. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  165. package/dist/tests/typeEvaluator4.test.js +1 -1
  166. package/dist/tests/typeEvaluator7.test.js +2 -2
  167. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  168. package/dist/tests/typePrinter.test.js +14 -39
  169. package/dist/tests/typePrinter.test.js.map +1 -1
  170. package/package.json +1 -1
@@ -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.details.mro.some((mroClass) => (0, types_1.isClass)(mroClass) && types_1.ClassType.isBuiltIn(mroClass, ['EnumMeta', 'EnumType']));
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.details.effectiveMetaclass);
59
- classType.details.baseClasses.push(enumClass);
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.details.fullName, classType.details.name, entryName, valueType);
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.entries
109
- : initArg.valueExpression.expressions;
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.expressions.length !== 2) {
134
+ if (entry.d.items.length !== 2) {
134
135
  return undefined;
135
136
  }
136
- nameNode = entry.expressions[0];
137
- valueType = evaluator.getTypeOfExpression(entry.expressions[1]).type;
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.details.fullName, classType.details.name, entryName, valueType);
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.entries;
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.keyExpression;
164
- const valueType = evaluator.getTypeOfExpression(entry.valueExpression).type;
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.details.fullName, classType.details.name, entryName, valueType);
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
- // Handle the case where a method is decorated with @enum.member.
215
- nameNode = primaryDecl.node.name;
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.leftExpression === nameNode) {
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.rightExpression;
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.rightExpression;
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.typeAnnotation;
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 /* EvaluatorFlags.ConvertEllipsisToAny */ : undefined;
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 functionType = evaluator.getTypeOfFunction(primaryDecl.node);
265
- if (functionType) {
266
- assignedType = functionType.decoratedType;
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.leftExpression === nameNode) {
294
- assignedType = evaluator.getTypeOfExpression(nameNode.parent.rightExpression,
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.details.fullName === 'enum.nonmember') {
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.details.fullName === 'enum.member') {
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.details.fullName, memberInfo.classType.details.name, memberName, valueType);
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.details.effectiveMetaclass;
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.details.declaredReturnType) {
475
- return memberInfo.type.details.declaredReturnType;
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.details.fullName === 'functools.total_ordering') {
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.details.parameters.length >= 2 &&
59
- firstMemberType.details.parameters[1].hasDeclaredType) {
60
- operandType = firstMemberType.details.parameters[1].type;
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
- category: 0 /* ParameterCategory.Simple */,
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.details.declaredReturnType = boolType;
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":"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"}
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,mCAUiB;AACjB,2CAA8G;AAE9G,SAAgB,sBAAsB,CAClC,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,YAAmD,EACnD,MAAsB;IAEtB,IAAI,IAAA,kBAAU,EAAC,YAAY,CAAC,EAAE;QAC1B,IAAI,YAAY,CAAC,MAAM,CAAC,QAAQ,KAAK,0BAA0B,EAAE;YAC7D,OAAO,2BAA2B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;SAC7E;KACJ;IAED,4CAA4C;IAC5C,OAAO,MAAM,CAAC;AAClB,CAAC;AAfD,wDAeC;AAED,SAAS,2BAA2B,CAChC,SAAwB,EACxB,SAAyB,EACzB,OAA2B,EAC3B,MAAsB;;IAEtB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,MAAM,CAAC;KACjB;IAED,oEAAoE;IACpE,MAAM,SAAS,GAAG,MAAA,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,0CAAE,IAAI,CAAC;IAC9C,IAAI,CAAC,SAAS,IAAI,CAAC,IAAA,2BAAmB,EAAC,SAAS,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE;QACnF,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,iBAAS,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAE1D,oEAAoE;IACpE,IAAI,gBAAyC,CAAC;IAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,IAAA,8BAAkB,EAAC,YAAY,EAAE,UAAU,iDAAwC,CAAC;QACvG,IAAI,UAAU,IAAI,CAAC,gBAAgB,EAAE;YACjC,gBAAgB,GAAG,UAAU,CAAC;SACjC;QACD,OAAO,CAAC,UAAU,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,EAAE;QACnB,SAAS,CAAC,aAAa,CACnB,gCAAc,CAAC,uBAAuB,EACtC,qBAAU,CAAC,0BAA0B,EAAE,EACvC,SAAS,CACZ,CAAC;QACF,OAAO,MAAM,CAAC;KACjB;IAED,gEAAgE;IAChE,mEAAmE;IACnE,IAAI,WAA6B,CAAC;IAElC,MAAM,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IACpE,IACI,IAAA,kBAAU,EAAC,eAAe,CAAC;QAC3B,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC;QAC7C,qBAAa,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EACpE;QACE,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC3D;IAED,8DAA8D;IAC9D,IAAI,CAAC,WAAW,EAAE;QACd,MAAM,UAAU,GAAG,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,IAAI,CAAC,IAAA,uBAAe,EAAC,UAAU,CAAC,EAAE;YAC7C,OAAO,MAAM,CAAC;SACjB;QACD,WAAW,GAAG,UAAU,CAAC;KAC5B;IAED,MAAM,QAAQ,GAAG,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,uBAAe,EAAC,QAAQ,CAAC,EAAE;QACzC,OAAO,MAAM,CAAC;KACjB;IAED,MAAM,SAAS,GAAG,qBAAa,CAAC,MAAM,mCAElC,IAAA,uCAA2B,EAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC9D,0BAAkB,CAAC,YAAY,EAC/B,MAAM,CACT,CAAC;IAEF,MAAM,QAAQ,GAAG,qBAAa,CAAC,MAAM,mCAEjC,WAAW,EACX,0BAAkB,CAAC,YAAY,EAC/B,SAAS,CACZ,CAAC;IAEF,uDAAuD;IACvD,cAAc,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,oBAAY,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACvE,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAClD,oBAAY,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACjD,WAAW,CAAC,MAAM,CAAC,kBAAkB,GAAG,QAAQ,CAAC;QAEjD,iBAAS,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,CACnC,UAAU,EACV,eAAM,CAAC,cAAc,kCAA0B,WAAW,CAAC,CAC9D,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -108,7 +108,8 @@ export declare class ImportResolver {
108
108
  private _isUniqueValidSuggestion;
109
109
  private _findImplicitImports;
110
110
  private _getPyTypedInfo;
111
- private _resolveNativeModuleStub;
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
- if (allowNativeLib && this.dirExistsCached(fileDirectory)) {
952
- const filesInDir = this._getFilesInDirectory(fileDirectory);
953
- const dirName = dirPath.fileName;
954
- const nativeLibPath = filesInDir.find((f) => this._isNativeModuleFileName(dirName, f));
955
- if (nativeLibPath) {
956
- // Try resolving native library to a custom stub.
957
- isNativeLib = this._resolveNativeModuleStub(nativeLibPath, execEnv, importName, moduleDescriptor, importFailureInfo, resolvedPaths);
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
- if (isLastPart) {
964
- implicitImports = this._findImplicitImports(importName, dirPath, [pyFilePath, pyiFilePath]);
965
- isNamespacePackage = true;
966
- }
956
+ isNamespacePackage = true;
957
+ pyTypedInfo = undefined;
958
+ continue;
967
959
  }
968
- else if (isNativeLib) {
969
- importFailureInfo.push(`Did not find file '${pyiFilePath}' or '${pyFilePath}'`);
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
- _resolveNativeModuleStub(nativeLibPath, execEnv, importName, moduleDescriptor, importFailureInfo, resolvedPaths) {
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.