@zzzen/pyright-internal 1.2.0-dev.20260816 → 1.2.0-dev.20260823

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 (338) hide show
  1. package/dist/analyzer/analyzerNodeInfo.d.ts +119 -24
  2. package/dist/analyzer/analyzerNodeInfo.js +408 -89
  3. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +6 -3
  5. package/dist/analyzer/binder.js +70 -69
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/checker.d.ts +4 -2
  8. package/dist/analyzer/checker.js +55 -34
  9. package/dist/analyzer/checker.js.map +1 -1
  10. package/dist/analyzer/codeFlowEngine.d.ts +2 -1
  11. package/dist/analyzer/codeFlowEngine.js +12 -10
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowUtils.d.ts +2 -1
  14. package/dist/analyzer/codeFlowUtils.js +2 -3
  15. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  16. package/dist/analyzer/dataClasses.d.ts +5 -4
  17. package/dist/analyzer/dataClasses.js +21 -56
  18. package/dist/analyzer/dataClasses.js.map +1 -1
  19. package/dist/analyzer/declarationUtils.d.ts +2 -1
  20. package/dist/analyzer/declarationUtils.js +2 -2
  21. package/dist/analyzer/declarationUtils.js.map +1 -1
  22. package/dist/analyzer/decorators.d.ts +5 -4
  23. package/dist/analyzer/decorators.js +20 -21
  24. package/dist/analyzer/decorators.js.map +1 -1
  25. package/dist/analyzer/enums.d.ts +5 -4
  26. package/dist/analyzer/enums.js +11 -10
  27. package/dist/analyzer/enums.js.map +1 -1
  28. package/dist/analyzer/importResolver.d.ts +1 -1
  29. package/dist/analyzer/importResolver.js +5 -3
  30. package/dist/analyzer/importResolver.js.map +1 -1
  31. package/dist/analyzer/importStatementUtils.d.ts +3 -1
  32. package/dist/analyzer/importStatementUtils.js +14 -7
  33. package/dist/analyzer/importStatementUtils.js.map +1 -1
  34. package/dist/analyzer/namedTuples.d.ts +2 -1
  35. package/dist/analyzer/namedTuples.js +3 -4
  36. package/dist/analyzer/namedTuples.js.map +1 -1
  37. package/dist/analyzer/operations.d.ts +3 -2
  38. package/dist/analyzer/operations.js +8 -8
  39. package/dist/analyzer/operations.js.map +1 -1
  40. package/dist/analyzer/packageTypeVerifier.js +2 -2
  41. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  42. package/dist/analyzer/parseTreeUtils.d.ts +13 -11
  43. package/dist/analyzer/parseTreeUtils.js +62 -36
  44. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  45. package/dist/analyzer/parseTreeWalker.d.ts +7 -2
  46. package/dist/analyzer/parseTreeWalker.js +29 -175
  47. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  48. package/dist/analyzer/patternMatching.d.ts +4 -3
  49. package/dist/analyzer/patternMatching.js +47 -43
  50. package/dist/analyzer/patternMatching.js.map +1 -1
  51. package/dist/analyzer/program.d.ts +12 -0
  52. package/dist/analyzer/program.js +235 -29
  53. package/dist/analyzer/program.js.map +1 -1
  54. package/dist/analyzer/properties.d.ts +4 -3
  55. package/dist/analyzer/properties.js +7 -8
  56. package/dist/analyzer/properties.js.map +1 -1
  57. package/dist/analyzer/protocols.js +14 -2
  58. package/dist/analyzer/protocols.js.map +1 -1
  59. package/dist/analyzer/scopeUtils.d.ts +4 -3
  60. package/dist/analyzer/scopeUtils.js +8 -8
  61. package/dist/analyzer/scopeUtils.js.map +1 -1
  62. package/dist/analyzer/sentinel.d.ts +2 -1
  63. package/dist/analyzer/sentinel.js +2 -3
  64. package/dist/analyzer/sentinel.js.map +1 -1
  65. package/dist/analyzer/service.js +28 -10
  66. package/dist/analyzer/service.js.map +1 -1
  67. package/dist/analyzer/sourceEnumerator.d.ts +5 -0
  68. package/dist/analyzer/sourceEnumerator.js +57 -3
  69. package/dist/analyzer/sourceEnumerator.js.map +1 -1
  70. package/dist/analyzer/sourceFile.d.ts +12 -6
  71. package/dist/analyzer/sourceFile.js +73 -50
  72. package/dist/analyzer/sourceFile.js.map +1 -1
  73. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
  74. package/dist/analyzer/sourceFileInfoUtils.js +8 -0
  75. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  76. package/dist/analyzer/sourceMapper.d.ts +4 -1
  77. package/dist/analyzer/sourceMapper.js +14 -8
  78. package/dist/analyzer/sourceMapper.js.map +1 -1
  79. package/dist/analyzer/testWalker.js +2 -1
  80. package/dist/analyzer/testWalker.js.map +1 -1
  81. package/dist/analyzer/tracePrinter.d.ts +2 -1
  82. package/dist/analyzer/tracePrinter.js +2 -2
  83. package/dist/analyzer/tracePrinter.js.map +1 -1
  84. package/dist/analyzer/tuples.d.ts +3 -2
  85. package/dist/analyzer/tuples.js +5 -5
  86. package/dist/analyzer/tuples.js.map +1 -1
  87. package/dist/analyzer/typeDocStringUtils.d.ts +5 -7
  88. package/dist/analyzer/typeDocStringUtils.js +229 -132
  89. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  90. package/dist/analyzer/typeEvaluator.d.ts +2 -0
  91. package/dist/analyzer/typeEvaluator.js +326 -198
  92. package/dist/analyzer/typeEvaluator.js.map +1 -1
  93. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
  94. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  95. package/dist/analyzer/typeGuards.d.ts +3 -2
  96. package/dist/analyzer/typeGuards.js +26 -25
  97. package/dist/analyzer/typeGuards.js.map +1 -1
  98. package/dist/analyzer/typeStubWriter.js +12 -9
  99. package/dist/analyzer/typeStubWriter.js.map +1 -1
  100. package/dist/analyzer/typeUtils.js +3 -1
  101. package/dist/analyzer/typeUtils.js.map +1 -1
  102. package/dist/analyzer/typedDicts.d.ts +4 -3
  103. package/dist/analyzer/typedDicts.js +15 -14
  104. package/dist/analyzer/typedDicts.js.map +1 -1
  105. package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
  106. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  107. package/dist/common/collectionUtils.js +15 -6
  108. package/dist/common/collectionUtils.js.map +1 -1
  109. package/dist/common/commandLineOptions.d.ts +1 -0
  110. package/dist/common/commandLineOptions.js.map +1 -1
  111. package/dist/common/configOptions.d.ts +4 -1
  112. package/dist/common/configOptions.js +68 -12
  113. package/dist/common/configOptions.js.map +1 -1
  114. package/dist/common/envVarUtils.d.ts +1 -0
  115. package/dist/common/envVarUtils.js +41 -10
  116. package/dist/common/envVarUtils.js.map +1 -1
  117. package/dist/common/extensibility.d.ts +3 -1
  118. package/dist/common/extensibility.js.map +1 -1
  119. package/dist/common/extraPathGlob.d.ts +12 -0
  120. package/dist/common/extraPathGlob.js +315 -0
  121. package/dist/common/extraPathGlob.js.map +1 -0
  122. package/dist/common/host.d.ts +2 -0
  123. package/dist/common/host.js.map +1 -1
  124. package/dist/common/languageServerInterface.d.ts +2 -1
  125. package/dist/common/languageServerInterface.js.map +1 -1
  126. package/dist/common/pathConsts.d.ts +1 -0
  127. package/dist/common/pathConsts.js +11 -1
  128. package/dist/common/pathConsts.js.map +1 -1
  129. package/dist/common/processUtils.d.ts +4 -2
  130. package/dist/common/processUtils.js +3 -0
  131. package/dist/common/processUtils.js.map +1 -1
  132. package/dist/common/stringUtils.d.ts +6 -0
  133. package/dist/common/stringUtils.js +87 -5
  134. package/dist/common/stringUtils.js.map +1 -1
  135. package/dist/common/textEditTracker.d.ts +3 -1
  136. package/dist/common/textEditTracker.js +8 -6
  137. package/dist/common/textEditTracker.js.map +1 -1
  138. package/dist/common/textRangeCollection.d.ts +1 -0
  139. package/dist/common/textRangeCollection.js +32 -1
  140. package/dist/common/textRangeCollection.js.map +1 -1
  141. package/dist/common/uri/uriUtils.d.ts +3 -0
  142. package/dist/common/uri/uriUtils.js +65 -15
  143. package/dist/common/uri/uriUtils.js.map +1 -1
  144. package/dist/fileSystemMapping.d.ts +10 -0
  145. package/dist/fileSystemMapping.js +176 -0
  146. package/dist/fileSystemMapping.js.map +1 -0
  147. package/dist/languageService/analyzerServiceExecutor.js +2 -1
  148. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  149. package/dist/languageService/autoImporter.d.ts +1 -0
  150. package/dist/languageService/autoImporter.js +32 -5
  151. package/dist/languageService/autoImporter.js.map +1 -1
  152. package/dist/languageService/callHierarchyProvider.d.ts +7 -0
  153. package/dist/languageService/callHierarchyProvider.js +97 -11
  154. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  155. package/dist/languageService/completionProvider.d.ts +30 -8
  156. package/dist/languageService/completionProvider.js +298 -93
  157. package/dist/languageService/completionProvider.js.map +1 -1
  158. package/dist/languageService/definitionProvider.js +7 -6
  159. package/dist/languageService/definitionProvider.js.map +1 -1
  160. package/dist/languageService/documentHighlightProvider.js +2 -1
  161. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  162. package/dist/languageService/documentSymbolCollector.d.ts +3 -1
  163. package/dist/languageService/documentSymbolCollector.js +78 -14
  164. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  165. package/dist/languageService/documentSymbolProvider.js +3 -2
  166. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  167. package/dist/languageService/fileWatcherDynamicFeature.js +28 -1
  168. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  169. package/dist/languageService/hoverProvider.d.ts +2 -1
  170. package/dist/languageService/hoverProvider.js +48 -16
  171. package/dist/languageService/hoverProvider.js.map +1 -1
  172. package/dist/languageService/importSorter.d.ts +3 -1
  173. package/dist/languageService/importSorter.js +4 -2
  174. package/dist/languageService/importSorter.js.map +1 -1
  175. package/dist/languageService/importStatementCandidates.js +4 -2
  176. package/dist/languageService/importStatementCandidates.js.map +1 -1
  177. package/dist/languageService/quickActions.js +2 -1
  178. package/dist/languageService/quickActions.js.map +1 -1
  179. package/dist/languageService/referencesProvider.js +12 -5
  180. package/dist/languageService/referencesProvider.js.map +1 -1
  181. package/dist/languageService/signatureHelpProvider.d.ts +3 -0
  182. package/dist/languageService/signatureHelpProvider.js +56 -18
  183. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  184. package/dist/languageService/symbolIndexer.d.ts +2 -1
  185. package/dist/languageService/symbolIndexer.js +7 -7
  186. package/dist/languageService/symbolIndexer.js.map +1 -1
  187. package/dist/languageService/tooltipUtils.d.ts +1 -1
  188. package/dist/languageService/tooltipUtils.js +103 -35
  189. package/dist/languageService/tooltipUtils.js.map +1 -1
  190. package/dist/languageService/workspaceSymbolProvider.js +3 -2
  191. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  192. package/dist/localization/localize.d.ts +6 -0
  193. package/dist/localization/localize.js +10 -0
  194. package/dist/localization/localize.js.map +1 -1
  195. package/dist/localization/package.nls.cs.json +11 -0
  196. package/dist/localization/package.nls.de.json +11 -0
  197. package/dist/localization/package.nls.en-us.json +5 -0
  198. package/dist/localization/package.nls.es.json +11 -0
  199. package/dist/localization/package.nls.fr.json +11 -0
  200. package/dist/localization/package.nls.it.json +11 -0
  201. package/dist/localization/package.nls.ja.json +11 -0
  202. package/dist/localization/package.nls.ko.json +11 -0
  203. package/dist/localization/package.nls.pl.json +11 -0
  204. package/dist/localization/package.nls.pt-br.json +11 -0
  205. package/dist/localization/package.nls.qps-ploc.json +11 -0
  206. package/dist/localization/package.nls.ru.json +11 -0
  207. package/dist/localization/package.nls.tr.json +11 -0
  208. package/dist/localization/package.nls.zh-cn.json +12 -1
  209. package/dist/localization/package.nls.zh-tw.json +13 -2
  210. package/dist/parser/parseNodes.d.ts +85 -80
  211. package/dist/parser/parseNodes.js +182 -159
  212. package/dist/parser/parseNodes.js.map +1 -1
  213. package/dist/parser/parseTreeUtils.d.ts +3 -0
  214. package/dist/parser/parseTreeUtils.js +209 -0
  215. package/dist/parser/parseTreeUtils.js.map +1 -0
  216. package/dist/parser/parser.d.ts +16 -6
  217. package/dist/parser/parser.js +210 -144
  218. package/dist/parser/parser.js.map +1 -1
  219. package/dist/parser/stringAnnotationInfo.d.ts +16 -0
  220. package/dist/parser/stringAnnotationInfo.js +26 -0
  221. package/dist/parser/stringAnnotationInfo.js.map +1 -0
  222. package/dist/readonlyAugmentedFileSystem.d.ts +2 -9
  223. package/dist/readonlyAugmentedFileSystem.js +17 -144
  224. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  225. package/dist/server.js +2 -2
  226. package/dist/server.js.map +1 -1
  227. package/dist/tests/analyzerNodeInfo.test.d.ts +1 -0
  228. package/dist/tests/analyzerNodeInfo.test.js +113 -0
  229. package/dist/tests/analyzerNodeInfo.test.js.map +1 -0
  230. package/dist/tests/collectionUtils.test.js +46 -0
  231. package/dist/tests/collectionUtils.test.js.map +1 -1
  232. package/dist/tests/completions.test.js +34 -0
  233. package/dist/tests/completions.test.js.map +1 -1
  234. package/dist/tests/config.test.js +131 -6
  235. package/dist/tests/config.test.js.map +1 -1
  236. package/dist/tests/extraPathGlob.test.d.ts +1 -0
  237. package/dist/tests/extraPathGlob.test.js +434 -0
  238. package/dist/tests/extraPathGlob.test.js.map +1 -0
  239. package/dist/tests/fileSystemMapping.test.d.ts +1 -0
  240. package/dist/tests/fileSystemMapping.test.js +458 -0
  241. package/dist/tests/fileSystemMapping.test.js.map +1 -0
  242. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js +23 -0
  243. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js.map +1 -1
  244. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js +14 -0
  245. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js.map +1 -1
  246. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js +7 -0
  247. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js.map +1 -1
  248. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.d.ts +1 -0
  249. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js +41 -0
  250. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js.map +1 -0
  251. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js +2 -0
  252. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js.map +1 -1
  253. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js +5 -0
  254. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js.map +1 -1
  255. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js +4 -0
  256. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js.map +1 -1
  257. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.d.ts +1 -0
  258. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js +48 -0
  259. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js.map +1 -0
  260. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +8 -2
  261. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  262. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +5 -2
  263. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  264. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js +2 -2
  265. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js.map +1 -1
  266. package/dist/tests/harness/fourslash/testState.js +1 -1
  267. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  268. package/dist/tests/hoverProvider.test.js +38 -0
  269. package/dist/tests/hoverProvider.test.js.map +1 -1
  270. package/dist/tests/importStatementUtils.test.js +6 -3
  271. package/dist/tests/importStatementUtils.test.js.map +1 -1
  272. package/dist/tests/ipythonMode.test.js +38 -0
  273. package/dist/tests/ipythonMode.test.js.map +1 -1
  274. package/dist/tests/parseTreeUtils.test.js +88 -0
  275. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  276. package/dist/tests/parser.test.js +60 -3
  277. package/dist/tests/parser.test.js.map +1 -1
  278. package/dist/tests/positionUtils.test.js +23 -0
  279. package/dist/tests/positionUtils.test.js.map +1 -1
  280. package/dist/tests/pyrightFileSystem.test.js +41 -0
  281. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  282. package/dist/tests/service.test.js +77 -0
  283. package/dist/tests/service.test.js.map +1 -1
  284. package/dist/tests/sourceEnumeratorSymlink.test.d.ts +1 -0
  285. package/dist/tests/sourceEnumeratorSymlink.test.js +203 -0
  286. package/dist/tests/sourceEnumeratorSymlink.test.js.map +1 -0
  287. package/dist/tests/stringUtils.test.js +84 -0
  288. package/dist/tests/stringUtils.test.js.map +1 -1
  289. package/dist/tests/symlinkAliasInvalidation.test.d.ts +1 -0
  290. package/dist/tests/symlinkAliasInvalidation.test.js +471 -0
  291. package/dist/tests/symlinkAliasInvalidation.test.js.map +1 -0
  292. package/dist/tests/testUtils.d.ts +2 -0
  293. package/dist/tests/testUtils.js +7 -1
  294. package/dist/tests/testUtils.js.map +1 -1
  295. package/dist/tests/textEditUtil.test.js +2 -2
  296. package/dist/tests/textEditUtil.test.js.map +1 -1
  297. package/dist/tests/textRangeCollection.test.d.ts +1 -0
  298. package/dist/tests/textRangeCollection.test.js +137 -0
  299. package/dist/tests/textRangeCollection.test.js.map +1 -0
  300. package/dist/tests/typeEvaluator1.test.js +24 -3
  301. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  302. package/dist/tests/typeEvaluator4.test.js +4 -0
  303. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  304. package/dist/tests/typeEvaluator7.test.js +4 -0
  305. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  306. package/dist/tests/typeServer/typeCache.test.d.ts +1 -0
  307. package/dist/tests/typeServer/typeCache.test.js +69 -0
  308. package/dist/tests/typeServer/typeCache.test.js.map +1 -0
  309. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +18 -0
  310. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
  311. package/dist/tests/uri.test.js +51 -0
  312. package/dist/tests/uri.test.js.map +1 -1
  313. package/dist/typeServer/notebookDocumentHandler.d.ts +9 -2
  314. package/dist/typeServer/notebookDocumentHandler.js +16 -6
  315. package/dist/typeServer/notebookDocumentHandler.js.map +1 -1
  316. package/dist/typeServer/programWrapper.d.ts +1 -0
  317. package/dist/typeServer/programWrapper.js +28 -15
  318. package/dist/typeServer/programWrapper.js.map +1 -1
  319. package/dist/typeServer/protocol/tspSupplemental.d.ts +1 -1
  320. package/dist/typeServer/protocol/tspSupplemental.js +2 -2
  321. package/dist/typeServer/server.d.ts +13 -2
  322. package/dist/typeServer/server.js +36 -23
  323. package/dist/typeServer/server.js.map +1 -1
  324. package/dist/typeServer/typeCache.d.ts +8 -4
  325. package/dist/typeServer/typeCache.js +33 -5
  326. package/dist/typeServer/typeCache.js.map +1 -1
  327. package/dist/typeServer/typeEvalUtils.d.ts +2 -1
  328. package/dist/typeServer/typeEvalUtils.js +7 -3
  329. package/dist/typeServer/typeEvalUtils.js.map +1 -1
  330. package/dist/typeServer/typeGuards.js +3 -4
  331. package/dist/typeServer/typeGuards.js.map +1 -1
  332. package/dist/typeServer/typeServerFileSystem.d.ts +10 -9
  333. package/dist/typeServer/typeServerFileSystem.js +16 -12
  334. package/dist/typeServer/typeServerFileSystem.js.map +1 -1
  335. package/package.json +7 -5
  336. package/dist/analyzer/parseTreeCleaner.d.ts +0 -8
  337. package/dist/analyzer/parseTreeCleaner.js +0 -65
  338. package/dist/analyzer/parseTreeCleaner.js.map +0 -1
@@ -6,11 +6,14 @@ import { FileSystem } from '../common/fileSystem';
6
6
  import { LogTracker } from '../common/logTracker';
7
7
  import { ServiceProvider } from '../common/serviceProvider';
8
8
  import '../common/serviceProviderExtensions';
9
+ import * as StringUtils from '../common/stringUtils';
9
10
  import { TextRange } from '../common/textRange';
10
11
  import { TextRangeCollection } from '../common/textRangeCollection';
11
12
  import { Uri } from '../common/uri/uri';
12
- import { ParseFileResults, ParserOutput } from '../parser/parser';
13
+ import { ModuleNode } from '../parser/parseNodes';
14
+ import { ParseFileResults, ParseOptions, ParserOutput } from '../parser/parser';
13
15
  import { ImportLookup } from './analyzerFileInfo';
16
+ import * as AnalyzerNodeInfo from './analyzerNodeInfo';
14
17
  import { CellChainIndexProvider } from './cellChainIndex';
15
18
  import { CircularDependency } from './circularDependency';
16
19
  import { ImportResolver } from './importResolver';
@@ -25,6 +28,8 @@ export declare enum IPythonMode {
25
28
  }
26
29
  export interface SourceFileEditMode {
27
30
  readonly isEditMode: boolean;
31
+ readonly isClonedProgram?: boolean;
32
+ readonly analysisContextOwner?: object;
28
33
  }
29
34
  export declare class SourceFile {
30
35
  readonly serviceProvider: ServiceProvider;
@@ -68,9 +73,9 @@ export declare class SourceFile {
68
73
  getCheckTime(): number | undefined;
69
74
  restore(): string | undefined;
70
75
  didContentsChangeOnDisk(): boolean;
71
- dropParseAndBindInfo(): void;
76
+ dropParseAndBindInfo(): ModuleNode | undefined;
72
77
  markDirty(): void;
73
- markReanalysisRequired(forceRebinding: boolean): void;
78
+ markReanalysisRequired(forceRebinding: boolean, nodeInfoReader: AnalyzerNodeInfo.AnalyzerNodeInfoReader): void;
74
79
  getFileContentsVersion(): number;
75
80
  getClientVersion(): number | undefined;
76
81
  getSemanticVersion(): number;
@@ -99,17 +104,18 @@ export declare class SourceFile {
99
104
  isNoCircularDependencyConfirmed(): boolean;
100
105
  setHitMaxImportDepth(maxImportDepth: number): void;
101
106
  parse(configOptions: ConfigOptions, importResolver: ImportResolver, content?: string): boolean;
102
- bind(configOptions: ConfigOptions, importLookup: ImportLookup, builtinsScope: Scope | undefined, futureImports: Set<string>, cellChainIndex: CellChainIndexProvider | undefined): void;
103
- check(configOptions: ConfigOptions, importLookup: ImportLookup, importResolver: ImportResolver, evaluator: TypeEvaluator, dependentFiles?: ParserOutput[]): void;
107
+ bind(configOptions: ConfigOptions, importLookup: ImportLookup, builtinsScope: Scope | undefined, futureImports: Set<string>, cellChainIndex: CellChainIndexProvider | undefined, nodeInfoContext: AnalyzerNodeInfo.AnalyzerNodeInfoContext): boolean;
108
+ check(configOptions: ConfigOptions, importLookup: ImportLookup, importResolver: ImportResolver, evaluator: TypeEvaluator, dependentFiles: ParserOutput[] | undefined, nodeInfoReader: AnalyzerNodeInfo.AnalyzerNodeInfoReader): void;
104
109
  test_enableIPythonMode(enable: boolean): void;
105
110
  protected createDiagnosticSink(): DiagnosticSink;
106
111
  protected createTextRangeDiagnosticSink(lines: TextRangeCollection<TextRange>): TextRangeDiagnosticSink;
112
+ protected readFileContents(): string;
113
+ protected parseFileContents(fileContents: string, parseOptions: ParseOptions, diagSink: DiagnosticSink, contentHash: StringUtils.StringFingerprint): ParseFileResults;
107
114
  private _makeFileId;
108
115
  private _recomputeDiagnostics;
109
116
  private _cachePreEditState;
110
117
  private _addTaskListDiagnostics;
111
118
  private _buildFileInfo;
112
- private _cleanParseTreeIfRequired;
113
119
  private _resolveImports;
114
120
  private _getPathForLogging;
115
121
  private _parseFile;
@@ -68,7 +68,6 @@ const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
68
68
  const binder_1 = require("./binder");
69
69
  const checker_1 = require("./checker");
70
70
  const CommentUtils = __importStar(require("./commentUtils"));
71
- const parseTreeCleaner_1 = require("./parseTreeCleaner");
72
71
  const testWalker_1 = require("./testWalker");
73
72
  // Limit the number of import cycles tracked per source file.
74
73
  const _maxImportCyclesPerFile = 4;
@@ -98,14 +97,11 @@ class WriteableData {
98
97
  // Number that is incremented every time semantic of the file
99
98
  // might have changed.
100
99
  this.semanticVersion = 0;
101
- // Length and hash of the file the last time it was read from disk.
100
+ // Length and fingerprint of the latest file contents supplied by disk or the client.
102
101
  this.lastFileContentLength = undefined;
103
102
  this.lastFileContentHash = undefined;
104
103
  // Version of file contents that have been analyzed.
105
104
  this.analyzedFileContentsVersion = -1;
106
- // Do we need to walk the parse tree and clean
107
- // the binder information hanging from it?
108
- this.parseTreeNeedsCleaning = false;
109
105
  // Reentrancy check for binding and checking.
110
106
  this.isBindingInProgress = false;
111
107
  this.isCheckingInProgress = false;
@@ -129,6 +125,7 @@ class WriteableData {
129
125
  this.isBindingNeeded = true;
130
126
  // Do we have valid diagnostic results from a checking pass?
131
127
  this.isCheckingNeeded = true;
128
+ this.importInfo = [];
132
129
  // True if the file appears to have been deleted.
133
130
  this.isFileDeleted = false;
134
131
  // Empty
@@ -143,12 +140,11 @@ class WriteableData {
143
140
  isCheckingNeeded=${this.isCheckingNeeded},
144
141
  isFileDeleted=${this.isFileDeleted},
145
142
  hitMaxImportDepth=${this.hitMaxImportDepth},
146
- parseTreeNeedsCleaning=${this.parseTreeNeedsCleaning},
147
143
  fileContentsVersion=${this.fileContentsVersion},
148
144
  analyzedFileContentsVersion=${this.analyzedFileContentsVersion},
149
145
  clientDocumentVersion=${this.clientDocumentVersion},
150
146
  lastFileContentLength=${this.lastFileContentLength},
151
- lastFileContentHash=${this.lastFileContentHash},
147
+ lastFileContentHash=${JSON.stringify(this.lastFileContentHash)},
152
148
  typeIgnoreAll=${this.typeIgnoreAll},
153
149
  imports=${this.imports?.length},
154
150
  builtinsImport=${this.builtinsImport?.importName},
@@ -307,7 +303,7 @@ class SourceFile {
307
303
  if (this._writableData.lastFileContentLength === undefined) {
308
304
  return true;
309
305
  }
310
- // Read in the latest file contents and see if the hash matches
306
+ // Read in the latest file contents and see if the fingerprint matches
311
307
  // that of the previous contents.
312
308
  try {
313
309
  // Read the file's contents.
@@ -316,7 +312,9 @@ class SourceFile {
316
312
  if (fileContents.length !== this._writableData.lastFileContentLength) {
317
313
  return true;
318
314
  }
319
- if (StringUtils.hashString(fileContents) !== this._writableData.lastFileContentHash) {
315
+ const contentHash = StringUtils.getStringFingerprint(fileContents);
316
+ if (!this._writableData.lastFileContentHash ||
317
+ !StringUtils.areStringFingerprintsEqual(contentHash, this._writableData.lastFileContentHash)) {
320
318
  return true;
321
319
  }
322
320
  }
@@ -337,16 +335,19 @@ class SourceFile {
337
335
  // If we are actively binding or checking this file, we can't
338
336
  // safely drop parse and binding info.
339
337
  if (this._writableData.isBindingInProgress || this._writableData.isCheckingInProgress) {
340
- return;
338
+ return undefined;
341
339
  }
342
340
  this._fireFileDirtyEvent();
341
+ const parseTree = this._writableData.parserOutput?.parseTree;
343
342
  this._writableData.parserOutput = undefined;
344
343
  this._writableData.tokenizerLines = undefined;
345
344
  this._writableData.tokenizerOutput = undefined;
346
345
  this._writableData.parsedFileContents = undefined;
346
+ this._writableData.parsedFileContentsHash = undefined;
347
347
  this._writableData.moduleSymbolTable = undefined;
348
348
  this._writableData.isBindingNeeded = true;
349
349
  this._writableData.imports = [];
350
+ return parseTree;
350
351
  }
351
352
  markDirty() {
352
353
  this._writableData.fileContentsVersion++;
@@ -358,7 +359,7 @@ class SourceFile {
358
359
  this._writableData.lineCount = undefined;
359
360
  this._fireFileDirtyEvent();
360
361
  }
361
- markReanalysisRequired(forceRebinding) {
362
+ markReanalysisRequired(forceRebinding, nodeInfoReader) {
362
363
  // Keep the parse info, but reset the analysis to the beginning.
363
364
  this._writableData.semanticVersion++;
364
365
  this._writableData.isCheckingNeeded = true;
@@ -367,12 +368,12 @@ class SourceFile {
367
368
  // we need to rebind because a dependent import may have changed.
368
369
  if (this._writableData.parserOutput) {
369
370
  if (this._writableData.parserOutput.containsWildcardImport ||
370
- AnalyzerNodeInfo.getDunderAllInfo(this._writableData.parserOutput.parseTree) !== undefined ||
371
+ AnalyzerNodeInfo.getDunderAllInfo(this._writableData.parserOutput.parseTree, nodeInfoReader) !==
372
+ undefined ||
371
373
  forceRebinding) {
372
374
  // We don't need to rebuild index data since wildcard
373
375
  // won't affect user file indices. User file indices
374
376
  // don't contain import alias info.
375
- this._writableData.parseTreeNeedsCleaning = true;
376
377
  this._writableData.isBindingNeeded = true;
377
378
  this._writableData.moduleSymbolTable = undefined;
378
379
  }
@@ -412,7 +413,7 @@ class SourceFile {
412
413
  `which exceeds the maximum supported file size of ${exports.maxSourceFileSize}`);
413
414
  throw new Error('File larger than max');
414
415
  }
415
- return this.fileSystem.readFileSync(this._uri, 'utf8');
416
+ return this.readFileContents();
416
417
  }
417
418
  catch (error) {
418
419
  return undefined;
@@ -431,10 +432,11 @@ class SourceFile {
431
432
  else {
432
433
  this._writableData.clientDocumentVersion = version;
433
434
  this._writableData.clientDocumentContents = contents;
434
- const contentsHash = StringUtils.hashString(contents);
435
+ const contentsHash = StringUtils.getStringFingerprint(contents);
435
436
  // Have the contents of the file changed?
436
437
  if (contents.length !== this._writableData.lastFileContentLength ||
437
- contentsHash !== this._writableData.lastFileContentHash) {
438
+ !this._writableData.lastFileContentHash ||
439
+ !StringUtils.areStringFingerprintsEqual(contentsHash, this._writableData.lastFileContentHash)) {
438
440
  this.markDirty();
439
441
  }
440
442
  this._writableData.lastFileContentLength = contents.length;
@@ -473,7 +475,8 @@ class SourceFile {
473
475
  // Otherwise re-tokenize the contents on demand.
474
476
  const tokenizeContents = this._tokenizeContents.bind(this);
475
477
  const parsedFileContents = this._writableData.parsedFileContents;
476
- const contentHash = this._writableData.lastFileContentHash || StringUtils.hashString(this._writableData.parsedFileContents);
478
+ const contentHash = this._writableData.parsedFileContentsHash ??
479
+ StringUtils.getStringFingerprint(this._writableData.parsedFileContents);
477
480
  let tokenizerOutput = this._writableData.tokenizerOutput;
478
481
  return {
479
482
  contentHash,
@@ -531,6 +534,7 @@ class SourceFile {
531
534
  }
532
535
  const diagSink = this.createDiagnosticSink();
533
536
  let fileContents = this.getOpenFileContents();
537
+ let contentHash = fileContents !== undefined ? this._writableData.lastFileContentHash : undefined;
534
538
  if (fileContents === undefined) {
535
539
  try {
536
540
  const startTime = timing_1.timingStats.readFileTime.totalTime;
@@ -540,27 +544,31 @@ class SourceFile {
540
544
  if (fileContents === undefined) {
541
545
  throw new Error("Can't get file content");
542
546
  }
543
- // Remember the length and hash for comparison purposes.
547
+ // Remember the length and fingerprint for comparison purposes.
544
548
  this._writableData.lastFileContentLength = fileContents.length;
545
- this._writableData.lastFileContentHash = StringUtils.hashString(fileContents);
549
+ contentHash = StringUtils.getStringFingerprint(fileContents);
550
+ this._writableData.lastFileContentHash = contentHash;
546
551
  });
547
552
  logState.add(`fs read ${timing_1.timingStats.readFileTime.totalTime - startTime}ms`);
548
553
  }
549
554
  catch (error) {
550
555
  diagSink.addError(`Source file could not be read`, (0, textRange_1.getEmptyRange)());
551
556
  fileContents = '';
557
+ contentHash = StringUtils.getStringFingerprint(fileContents);
552
558
  if (!this.fileSystem.existsSync(this._uri)) {
553
559
  this._writableData.isFileDeleted = true;
554
560
  }
555
561
  }
556
562
  }
557
563
  try {
564
+ contentHash ?? (contentHash = StringUtils.getStringFingerprint(fileContents));
558
565
  // Parse the token stream, building the abstract syntax tree.
559
- const parseFileResults = this._parseFile(configOptions, this._uri, fileContents, this._ipythonMode !== IPythonMode.None, diagSink);
566
+ const parseFileResults = this._parseFile(configOptions, this._uri, fileContents, this._ipythonMode !== IPythonMode.None, diagSink, contentHash);
560
567
  (0, debug_1.assert)(parseFileResults !== undefined && parseFileResults.tokenizerOutput !== undefined);
561
568
  this._writableData.parserOutput = parseFileResults.parserOutput;
562
569
  this._writableData.tokenizerLines = parseFileResults.tokenizerOutput.lines;
563
570
  this._writableData.parsedFileContents = fileContents;
571
+ this._writableData.parsedFileContentsHash = parseFileResults.contentHash;
564
572
  this._writableData.typeIgnoreLines = parseFileResults.tokenizerOutput.typeIgnoreLines;
565
573
  this._writableData.typeIgnoreAll = parseFileResults.tokenizerOutput.typeIgnoreAll;
566
574
  this._writableData.pyrightIgnoreLines = parseFileResults.tokenizerOutput.pyrightIgnoreLines;
@@ -575,6 +583,7 @@ class SourceFile {
575
583
  const importResult = this._resolveImports(importResolver, parseFileResults.parserOutput.importedModules, execEnvironment);
576
584
  this._writableData.imports = importResult.imports;
577
585
  this._writableData.builtinsImport = importResult.builtinsImportResult;
586
+ this._writableData.importInfo = importResult.importInfo;
578
587
  this._writableData.parseDiagnostics = diagSink.fetchAndClear();
579
588
  this._writableData.taskListDiagnostics = [];
580
589
  this._addTaskListDiagnostics(configOptions.taskListTokens, parseFileResults, this._writableData.taskListDiagnostics);
@@ -599,9 +608,12 @@ class SourceFile {
599
608
  }));
600
609
  // Create dummy parse results.
601
610
  this._writableData.parsedFileContents = '';
611
+ this._writableData.parsedFileContentsHash = StringUtils.getStringFingerprint('');
602
612
  this._writableData.tokenizerLines = new textRangeCollection_1.TextRangeCollection([]);
613
+ const parseTree = parseNodes_1.ModuleNode.create({ start: 0, length: 0 });
603
614
  this._writableData.parserOutput = {
604
- parseTree: parseNodes_1.ModuleNode.create({ start: 0, length: 0 }),
615
+ parseTree,
616
+ stringAnnotations: (0, parseNodes_1.getParserStringAnnotationInfo)(parseTree),
605
617
  importedModules: [],
606
618
  futureImports: new Set(),
607
619
  containsWildcardImport: false,
@@ -622,6 +634,7 @@ class SourceFile {
622
634
  };
623
635
  this._writableData.imports = undefined;
624
636
  this._writableData.builtinsImport = undefined;
637
+ this._writableData.importInfo = [];
625
638
  const diagSink = this.createDiagnosticSink();
626
639
  diagSink.addError(localize_1.LocMessage.internalParseError().format({
627
640
  file: this.getUri().toUserVisibleString(),
@@ -635,38 +648,44 @@ class SourceFile {
635
648
  this._writableData.analyzedFileContentsVersion = this._writableData.fileContentsVersion;
636
649
  this._writableData.isBindingNeeded = true;
637
650
  this._writableData.isCheckingNeeded = true;
638
- this._writableData.parseTreeNeedsCleaning = false;
639
651
  this._writableData.hitMaxImportDepth = undefined;
640
652
  this._recomputeDiagnostics(configOptions);
641
653
  return true;
642
654
  });
643
655
  }
644
- bind(configOptions, importLookup, builtinsScope, futureImports, cellChainIndex) {
656
+ bind(configOptions, importLookup, builtinsScope, futureImports, cellChainIndex, nodeInfoContext) {
645
657
  (0, debug_1.assert)(!this.isParseRequired(), 'Bind called before parsing');
646
658
  (0, debug_1.assert)(this.isBindingRequired(), 'Bind called unnecessarily');
647
659
  (0, debug_1.assert)(!this._writableData.isBindingInProgress, 'Bind called while binding in progress');
648
660
  (0, debug_1.assert)(this._writableData.parserOutput !== undefined, 'Parse results not available');
649
661
  return this._logTracker.log(`binding: ${this._getPathForLogging(this._uri)}`, () => {
662
+ let bound = false;
650
663
  try {
651
664
  // Perform name binding.
652
665
  timing_1.timingStats.bindTime.timeOperation(() => {
653
- this._cleanParseTreeIfRequired();
666
+ const parseTree = this._writableData.parserOutput.parseTree;
667
+ const bindingSession = nodeInfoContext.beginWrite(parseTree);
668
+ const nodeInfo = AnalyzerNodeInfo.createAnalyzerNodeInfoAccessor(bindingSession, bindingSession);
669
+ this._writableData.importInfo.forEach((record) => nodeInfo.setImportInfo(record.node, record.importResult));
654
670
  const fileInfo = this._buildFileInfo(configOptions, importLookup, builtinsScope, futureImports);
655
- AnalyzerNodeInfo.setFileInfo(this._writableData.parserOutput.parseTree, fileInfo);
656
- const binder = new binder_1.Binder(fileInfo, configOptions.indexGenerationMode, cellChainIndex);
671
+ nodeInfo.setFileInfo(parseTree, fileInfo);
672
+ const binder = new binder_1.Binder(fileInfo, configOptions.indexGenerationMode, cellChainIndex, nodeInfo);
657
673
  this._writableData.isBindingInProgress = true;
658
- binder.bindModule(this._writableData.parserOutput.parseTree);
674
+ binder.bindModule(parseTree);
675
+ const bindDiagnostics = fileInfo.diagnosticSink.fetchAndClear();
676
+ const moduleScope = nodeInfo.getScope(parseTree);
677
+ (0, debug_1.assert)(moduleScope !== undefined, 'Module scope not returned by binder');
678
+ nodeInfoContext.publish(bindingSession);
679
+ this._writableData.moduleSymbolTable = moduleScope.symbolTable;
680
+ this._writableData.bindDiagnostics = bindDiagnostics;
659
681
  // If we're in "test mode" (used for unit testing), run an additional
660
682
  // "test walker" over the parse tree to validate its internal consistency.
661
683
  if (configOptions.internalTestMode) {
662
684
  const testWalker = new testWalker_1.TestWalker();
663
685
  testWalker.walk(this._writableData.parserOutput.parseTree);
664
686
  }
665
- this._writableData.bindDiagnostics = fileInfo.diagnosticSink.fetchAndClear();
666
- const moduleScope = AnalyzerNodeInfo.getScope(this._writableData.parserOutput.parseTree);
667
- (0, debug_1.assert)(moduleScope !== undefined, 'Module scope not returned by binder');
668
- this._writableData.moduleSymbolTable = moduleScope.symbolTable;
669
687
  });
688
+ bound = true;
670
689
  }
671
690
  catch (e) {
672
691
  const message = (e.stack ? e.stack.toString() : undefined) ||
@@ -689,12 +708,13 @@ class SourceFile {
689
708
  this._writableData.isBindingInProgress = false;
690
709
  }
691
710
  // Prepare for the next stage of the analysis.
692
- this._writableData.isCheckingNeeded = true;
711
+ this._writableData.isCheckingNeeded = bound;
693
712
  this._writableData.isBindingNeeded = false;
694
713
  this._recomputeDiagnostics(configOptions);
714
+ return bound;
695
715
  });
696
716
  }
697
- check(configOptions, importLookup, importResolver, evaluator, dependentFiles) {
717
+ check(configOptions, importLookup, importResolver, evaluator, dependentFiles, nodeInfoReader) {
698
718
  (0, debug_1.assert)(!this.isParseRequired(), `Check called before parsing: state=${this._writableData.debugPrint()}`);
699
719
  (0, debug_1.assert)(!this.isBindingRequired(), `Check called before binding: state=${this._writableData.debugPrint()}`);
700
720
  (0, debug_1.assert)(!this._writableData.isBindingInProgress, 'Check called while binding in progress');
@@ -705,11 +725,12 @@ class SourceFile {
705
725
  try {
706
726
  timing_1.timingStats.typeCheckerTime.timeOperation(() => {
707
727
  const checkDuration = new timing_1.Duration();
708
- const checker = new checker_1.Checker(importResolver, evaluator, this._writableData.parserOutput, dependentFiles);
728
+ const nodeInfo = AnalyzerNodeInfo.createAnalyzerNodeInfoAccessor(nodeInfoReader);
729
+ const checker = new checker_1.Checker(importResolver, evaluator, this._writableData.parserOutput, dependentFiles, nodeInfo);
709
730
  this._writableData.isCheckingInProgress = true;
710
731
  checker.check();
711
732
  this._writableData.isCheckingNeeded = false;
712
- const fileInfo = AnalyzerNodeInfo.getFileInfo(this._writableData.parserOutput.parseTree);
733
+ const fileInfo = nodeInfo.getFileInfo(this._writableData.parserOutput.parseTree);
713
734
  this._writableData.checkerDiagnostics = fileInfo.diagnosticSink.fetchAndClear();
714
735
  this._writableData.checkTime = checkDuration.getDurationInMilliseconds();
715
736
  });
@@ -754,6 +775,12 @@ class SourceFile {
754
775
  createTextRangeDiagnosticSink(lines) {
755
776
  return new diagnosticSink_1.TextRangeDiagnosticSink(lines);
756
777
  }
778
+ readFileContents() {
779
+ return this.fileSystem.readFileSync(this._uri, 'utf8');
780
+ }
781
+ parseFileContents(fileContents, parseOptions, diagSink, contentHash) {
782
+ return new parser_1.Parser().parseSourceFile(fileContents, parseOptions, diagSink, contentHash);
783
+ }
757
784
  // Creates a short string that can be used to uniquely identify
758
785
  // this file from all other files. It is used in the type evaluator
759
786
  // to distinguish between types that are defined in different files
@@ -1072,17 +1099,9 @@ class SourceFile {
1072
1099
  };
1073
1100
  return fileInfo;
1074
1101
  }
1075
- _cleanParseTreeIfRequired() {
1076
- if (this._writableData.parserOutput) {
1077
- if (this._writableData.parseTreeNeedsCleaning) {
1078
- const cleanerWalker = new parseTreeCleaner_1.ParseTreeCleanerWalker(this._writableData.parserOutput.parseTree);
1079
- cleanerWalker.clean();
1080
- this._writableData.parseTreeNeedsCleaning = false;
1081
- }
1082
- }
1083
- }
1084
1102
  _resolveImports(importResolver, moduleImports, execEnv) {
1085
1103
  const imports = [];
1104
+ const importInfo = [];
1086
1105
  const resolveAndAddIfNotSelf = (nameParts, skipMissingImport = false) => {
1087
1106
  const importResult = importResolver.resolveImport(this._uri, execEnv, {
1088
1107
  leadingDots: 0,
@@ -1121,7 +1140,7 @@ class SourceFile {
1121
1140
  // name node in the parse tree so we can access it later
1122
1141
  // (for hover and definition support).
1123
1142
  if (moduleImport.nameParts.length === moduleImport.nameNode.d.nameParts.length) {
1124
- AnalyzerNodeInfo.setImportInfo(moduleImport.nameNode, importResult);
1143
+ importInfo.push({ node: moduleImport.nameNode, importResult });
1125
1144
  }
1126
1145
  else {
1127
1146
  // For implicit imports of higher-level modules within a multi-part
@@ -1130,18 +1149,22 @@ class SourceFile {
1130
1149
  // case, store the import info on the name part node.
1131
1150
  (0, debug_1.assert)(moduleImport.nameParts.length > 0);
1132
1151
  (0, debug_1.assert)(moduleImport.nameParts.length - 1 < moduleImport.nameNode.d.nameParts.length);
1133
- AnalyzerNodeInfo.setImportInfo(moduleImport.nameNode.d.nameParts[moduleImport.nameParts.length - 1], importResult);
1152
+ importInfo.push({
1153
+ node: moduleImport.nameNode.d.nameParts[moduleImport.nameParts.length - 1],
1154
+ importResult,
1155
+ });
1134
1156
  }
1135
1157
  }
1136
1158
  return {
1137
1159
  imports,
1138
1160
  builtinsImportResult,
1161
+ importInfo,
1139
1162
  };
1140
1163
  }
1141
1164
  _getPathForLogging(fileUri) {
1142
1165
  return (0, logTracker_1.getPathForLogging)(this.fileSystem, fileUri);
1143
1166
  }
1144
- _parseFile(configOptions, fileUri, fileContents, useNotebookMode, diagSink) {
1167
+ _parseFile(configOptions, fileUri, fileContents, useNotebookMode, diagSink, contentHash) {
1145
1168
  // Use the configuration options to determine the environment zin which
1146
1169
  // this source file will be executed.
1147
1170
  const execEnvironment = configOptions.findExecEnvironment(fileUri);
@@ -1153,8 +1176,7 @@ class SourceFile {
1153
1176
  parseOptions.pythonVersion = execEnvironment.pythonVersion;
1154
1177
  parseOptions.skipFunctionAndClassBody = configOptions.indexGenerationMode ?? false;
1155
1178
  // Parse the token stream, building the abstract syntax tree.
1156
- const parser = new parser_1.Parser();
1157
- return parser.parseSourceFile(fileContents, parseOptions, diagSink);
1179
+ return this.parseFileContents(fileContents, parseOptions, diagSink, contentHash);
1158
1180
  }
1159
1181
  _tokenizeContents(fileContents, contentHash) {
1160
1182
  const tokenizer = new tokenizer_1.Tokenizer();
@@ -1162,7 +1184,8 @@ class SourceFile {
1162
1184
  // When the file is open, cache the tokenizer results.
1163
1185
  // Because the tokenizer is lazy, ensure that the state remains unchanged before caching its output.
1164
1186
  if (this._writableData.clientDocumentContents !== undefined &&
1165
- this._writableData.lastFileContentHash === contentHash) {
1187
+ this._writableData.lastFileContentHash &&
1188
+ StringUtils.areStringFingerprintsEqual(this._writableData.lastFileContentHash, contentHash)) {
1166
1189
  this._writableData.tokenizerOutput = output;
1167
1190
  // Replace the existing tokenizerLines with the newly-returned
1168
1191
  // version. They should have the same contents, but we want to use
@@ -1 +1 @@
1
- {"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourceFile.js","sourceRoot":"","sources":["../../../../../src/analyzer/sourceFile.ts"],"names":[],"mappings":"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"}