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

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 (398) hide show
  1. package/dist/analyzer/analyzerNodeInfo.d.ts +123 -24
  2. package/dist/analyzer/analyzerNodeInfo.js +429 -89
  3. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  4. package/dist/analyzer/backgroundAnalysisProgram.d.ts +2 -1
  5. package/dist/analyzer/backgroundAnalysisProgram.js +4 -8
  6. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  7. package/dist/analyzer/binder.d.ts +6 -3
  8. package/dist/analyzer/binder.js +70 -69
  9. package/dist/analyzer/binder.js.map +1 -1
  10. package/dist/analyzer/checker.d.ts +4 -2
  11. package/dist/analyzer/checker.js +86 -59
  12. package/dist/analyzer/checker.js.map +1 -1
  13. package/dist/analyzer/codeFlowEngine.d.ts +2 -1
  14. package/dist/analyzer/codeFlowEngine.js +12 -10
  15. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  16. package/dist/analyzer/codeFlowUtils.d.ts +2 -1
  17. package/dist/analyzer/codeFlowUtils.js +2 -3
  18. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  19. package/dist/analyzer/constructorTransform.js +8 -0
  20. package/dist/analyzer/constructorTransform.js.map +1 -1
  21. package/dist/analyzer/dataClasses.d.ts +5 -4
  22. package/dist/analyzer/dataClasses.js +30 -59
  23. package/dist/analyzer/dataClasses.js.map +1 -1
  24. package/dist/analyzer/declarationUtils.d.ts +2 -1
  25. package/dist/analyzer/declarationUtils.js +2 -2
  26. package/dist/analyzer/declarationUtils.js.map +1 -1
  27. package/dist/analyzer/decorators.d.ts +5 -4
  28. package/dist/analyzer/decorators.js +20 -21
  29. package/dist/analyzer/decorators.js.map +1 -1
  30. package/dist/analyzer/enums.d.ts +5 -4
  31. package/dist/analyzer/enums.js +11 -10
  32. package/dist/analyzer/enums.js.map +1 -1
  33. package/dist/analyzer/importResolver.d.ts +1 -1
  34. package/dist/analyzer/importResolver.js +5 -3
  35. package/dist/analyzer/importResolver.js.map +1 -1
  36. package/dist/analyzer/importStatementUtils.d.ts +3 -1
  37. package/dist/analyzer/importStatementUtils.js +14 -7
  38. package/dist/analyzer/importStatementUtils.js.map +1 -1
  39. package/dist/analyzer/namedTuples.d.ts +2 -1
  40. package/dist/analyzer/namedTuples.js +3 -4
  41. package/dist/analyzer/namedTuples.js.map +1 -1
  42. package/dist/analyzer/operations.d.ts +3 -2
  43. package/dist/analyzer/operations.js +8 -8
  44. package/dist/analyzer/operations.js.map +1 -1
  45. package/dist/analyzer/packageTypeVerifier.js +2 -2
  46. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  47. package/dist/analyzer/parseTreeUtils.d.ts +13 -11
  48. package/dist/analyzer/parseTreeUtils.js +62 -36
  49. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  50. package/dist/analyzer/parseTreeWalker.d.ts +7 -2
  51. package/dist/analyzer/parseTreeWalker.js +29 -175
  52. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  53. package/dist/analyzer/patternMatching.d.ts +4 -3
  54. package/dist/analyzer/patternMatching.js +47 -43
  55. package/dist/analyzer/patternMatching.js.map +1 -1
  56. package/dist/analyzer/program.d.ts +12 -0
  57. package/dist/analyzer/program.js +238 -29
  58. package/dist/analyzer/program.js.map +1 -1
  59. package/dist/analyzer/properties.d.ts +4 -3
  60. package/dist/analyzer/properties.js +7 -8
  61. package/dist/analyzer/properties.js.map +1 -1
  62. package/dist/analyzer/protocols.js +14 -2
  63. package/dist/analyzer/protocols.js.map +1 -1
  64. package/dist/analyzer/scopeUtils.d.ts +4 -3
  65. package/dist/analyzer/scopeUtils.js +8 -8
  66. package/dist/analyzer/scopeUtils.js.map +1 -1
  67. package/dist/analyzer/sentinel.d.ts +3 -2
  68. package/dist/analyzer/sentinel.js +4 -5
  69. package/dist/analyzer/sentinel.js.map +1 -1
  70. package/dist/analyzer/service.d.ts +5 -10
  71. package/dist/analyzer/service.js +36 -96
  72. package/dist/analyzer/service.js.map +1 -1
  73. package/dist/analyzer/sourceEnumerator.d.ts +5 -0
  74. package/dist/analyzer/sourceEnumerator.js +57 -3
  75. package/dist/analyzer/sourceEnumerator.js.map +1 -1
  76. package/dist/analyzer/sourceFile.d.ts +12 -6
  77. package/dist/analyzer/sourceFile.js +74 -50
  78. package/dist/analyzer/sourceFile.js.map +1 -1
  79. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
  80. package/dist/analyzer/sourceFileInfoUtils.js +8 -0
  81. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  82. package/dist/analyzer/sourceMapper.d.ts +4 -1
  83. package/dist/analyzer/sourceMapper.js +14 -8
  84. package/dist/analyzer/sourceMapper.js.map +1 -1
  85. package/dist/analyzer/testWalker.js +2 -1
  86. package/dist/analyzer/testWalker.js.map +1 -1
  87. package/dist/analyzer/tracePrinter.d.ts +2 -1
  88. package/dist/analyzer/tracePrinter.js +2 -2
  89. package/dist/analyzer/tracePrinter.js.map +1 -1
  90. package/dist/analyzer/tuples.d.ts +3 -2
  91. package/dist/analyzer/tuples.js +5 -5
  92. package/dist/analyzer/tuples.js.map +1 -1
  93. package/dist/analyzer/typeDocStringUtils.d.ts +5 -7
  94. package/dist/analyzer/typeDocStringUtils.js +229 -132
  95. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  96. package/dist/analyzer/typeEvaluator.d.ts +2 -0
  97. package/dist/analyzer/typeEvaluator.js +418 -229
  98. package/dist/analyzer/typeEvaluator.js.map +1 -1
  99. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
  100. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  101. package/dist/analyzer/typeGuards.d.ts +3 -2
  102. package/dist/analyzer/typeGuards.js +159 -35
  103. package/dist/analyzer/typeGuards.js.map +1 -1
  104. package/dist/analyzer/typeStubGeneration.d.ts +64 -0
  105. package/dist/analyzer/typeStubGeneration.js +226 -0
  106. package/dist/analyzer/typeStubGeneration.js.map +1 -0
  107. package/dist/analyzer/typeStubMessages.d.ts +4 -0
  108. package/dist/analyzer/typeStubMessages.js +25 -0
  109. package/dist/analyzer/typeStubMessages.js.map +1 -0
  110. package/dist/analyzer/typeStubOutput.d.ts +9 -0
  111. package/dist/analyzer/typeStubOutput.js +52 -0
  112. package/dist/analyzer/typeStubOutput.js.map +1 -0
  113. package/dist/analyzer/typeStubRenderer.d.ts +5 -0
  114. package/dist/analyzer/{typeStubWriter.js → typeStubRenderer.js} +20 -99
  115. package/dist/analyzer/typeStubRenderer.js.map +1 -0
  116. package/dist/analyzer/typeUtils.d.ts +1 -0
  117. package/dist/analyzer/typeUtils.js +115 -1
  118. package/dist/analyzer/typeUtils.js.map +1 -1
  119. package/dist/analyzer/typedDicts.d.ts +4 -3
  120. package/dist/analyzer/typedDicts.js +15 -14
  121. package/dist/analyzer/typedDicts.js.map +1 -1
  122. package/dist/analyzer/types.d.ts +2 -0
  123. package/dist/analyzer/types.js +84 -58
  124. package/dist/analyzer/types.js.map +1 -1
  125. package/dist/backgroundAnalysisBase.d.ts +5 -4
  126. package/dist/backgroundAnalysisBase.js +11 -19
  127. package/dist/backgroundAnalysisBase.js.map +1 -1
  128. package/dist/commands/createTypeStub.d.ts +2 -6
  129. package/dist/commands/createTypeStub.js +14 -27
  130. package/dist/commands/createTypeStub.js.map +1 -1
  131. package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
  132. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  133. package/dist/common/collectionUtils.js +15 -6
  134. package/dist/common/collectionUtils.js.map +1 -1
  135. package/dist/common/commandLineOptions.d.ts +1 -1
  136. package/dist/common/commandLineOptions.js.map +1 -1
  137. package/dist/common/configOptions.d.ts +4 -1
  138. package/dist/common/configOptions.js +68 -12
  139. package/dist/common/configOptions.js.map +1 -1
  140. package/dist/common/envVarUtils.d.ts +1 -0
  141. package/dist/common/envVarUtils.js +41 -10
  142. package/dist/common/envVarUtils.js.map +1 -1
  143. package/dist/common/extensibility.d.ts +3 -1
  144. package/dist/common/extensibility.js.map +1 -1
  145. package/dist/common/extraPathGlob.d.ts +12 -0
  146. package/dist/common/extraPathGlob.js +315 -0
  147. package/dist/common/extraPathGlob.js.map +1 -0
  148. package/dist/common/host.d.ts +2 -0
  149. package/dist/common/host.js.map +1 -1
  150. package/dist/common/languageServerInterface.d.ts +2 -1
  151. package/dist/common/languageServerInterface.js.map +1 -1
  152. package/dist/common/pathConsts.d.ts +1 -0
  153. package/dist/common/pathConsts.js +11 -1
  154. package/dist/common/pathConsts.js.map +1 -1
  155. package/dist/common/processUtils.d.ts +4 -2
  156. package/dist/common/processUtils.js +3 -0
  157. package/dist/common/processUtils.js.map +1 -1
  158. package/dist/common/stringUtils.d.ts +6 -0
  159. package/dist/common/stringUtils.js +87 -5
  160. package/dist/common/stringUtils.js.map +1 -1
  161. package/dist/common/textEditTracker.d.ts +3 -1
  162. package/dist/common/textEditTracker.js +8 -6
  163. package/dist/common/textEditTracker.js.map +1 -1
  164. package/dist/common/textRangeCollection.d.ts +1 -0
  165. package/dist/common/textRangeCollection.js +32 -1
  166. package/dist/common/textRangeCollection.js.map +1 -1
  167. package/dist/common/uri/uriUtils.d.ts +3 -0
  168. package/dist/common/uri/uriUtils.js +65 -15
  169. package/dist/common/uri/uriUtils.js.map +1 -1
  170. package/dist/fileSystemMapping.d.ts +10 -0
  171. package/dist/fileSystemMapping.js +176 -0
  172. package/dist/fileSystemMapping.js.map +1 -0
  173. package/dist/languageServerBase.d.ts +1 -1
  174. package/dist/languageServerBase.js +2 -2
  175. package/dist/languageServerBase.js.map +1 -1
  176. package/dist/languageService/analyzerServiceExecutor.d.ts +1 -3
  177. package/dist/languageService/analyzerServiceExecutor.js +10 -29
  178. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  179. package/dist/languageService/autoImporter.d.ts +1 -0
  180. package/dist/languageService/autoImporter.js +32 -5
  181. package/dist/languageService/autoImporter.js.map +1 -1
  182. package/dist/languageService/callHierarchyProvider.d.ts +7 -0
  183. package/dist/languageService/callHierarchyProvider.js +97 -11
  184. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  185. package/dist/languageService/completionProvider.d.ts +30 -8
  186. package/dist/languageService/completionProvider.js +298 -93
  187. package/dist/languageService/completionProvider.js.map +1 -1
  188. package/dist/languageService/definitionProvider.js +7 -6
  189. package/dist/languageService/definitionProvider.js.map +1 -1
  190. package/dist/languageService/documentHighlightProvider.js +2 -1
  191. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  192. package/dist/languageService/documentSymbolCollector.d.ts +3 -1
  193. package/dist/languageService/documentSymbolCollector.js +78 -14
  194. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  195. package/dist/languageService/documentSymbolProvider.js +3 -2
  196. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  197. package/dist/languageService/fileWatcherDynamicFeature.js +28 -1
  198. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  199. package/dist/languageService/hoverProvider.d.ts +2 -1
  200. package/dist/languageService/hoverProvider.js +48 -16
  201. package/dist/languageService/hoverProvider.js.map +1 -1
  202. package/dist/languageService/importSorter.d.ts +3 -1
  203. package/dist/languageService/importSorter.js +4 -2
  204. package/dist/languageService/importSorter.js.map +1 -1
  205. package/dist/languageService/importStatementCandidates.js +4 -2
  206. package/dist/languageService/importStatementCandidates.js.map +1 -1
  207. package/dist/languageService/quickActions.js +2 -1
  208. package/dist/languageService/quickActions.js.map +1 -1
  209. package/dist/languageService/referencesProvider.js +12 -5
  210. package/dist/languageService/referencesProvider.js.map +1 -1
  211. package/dist/languageService/signatureHelpProvider.d.ts +3 -0
  212. package/dist/languageService/signatureHelpProvider.js +56 -18
  213. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  214. package/dist/languageService/symbolIndexer.d.ts +2 -1
  215. package/dist/languageService/symbolIndexer.js +7 -7
  216. package/dist/languageService/symbolIndexer.js.map +1 -1
  217. package/dist/languageService/tooltipUtils.d.ts +1 -1
  218. package/dist/languageService/tooltipUtils.js +103 -35
  219. package/dist/languageService/tooltipUtils.js.map +1 -1
  220. package/dist/languageService/workspaceSymbolProvider.js +3 -2
  221. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  222. package/dist/localization/localize.d.ts +6 -0
  223. package/dist/localization/localize.js +10 -0
  224. package/dist/localization/localize.js.map +1 -1
  225. package/dist/localization/package.nls.cs.json +15 -0
  226. package/dist/localization/package.nls.de.json +15 -0
  227. package/dist/localization/package.nls.en-us.json +5 -0
  228. package/dist/localization/package.nls.es.json +15 -0
  229. package/dist/localization/package.nls.fr.json +15 -0
  230. package/dist/localization/package.nls.it.json +15 -0
  231. package/dist/localization/package.nls.ja.json +15 -0
  232. package/dist/localization/package.nls.ko.json +15 -0
  233. package/dist/localization/package.nls.pl.json +15 -0
  234. package/dist/localization/package.nls.pt-br.json +15 -0
  235. package/dist/localization/package.nls.qps-ploc.json +15 -0
  236. package/dist/localization/package.nls.ru.json +15 -0
  237. package/dist/localization/package.nls.tr.json +15 -0
  238. package/dist/localization/package.nls.zh-cn.json +16 -1
  239. package/dist/localization/package.nls.zh-tw.json +17 -2
  240. package/dist/parser/parseNodes.d.ts +85 -80
  241. package/dist/parser/parseNodes.js +182 -159
  242. package/dist/parser/parseNodes.js.map +1 -1
  243. package/dist/parser/parseTreeUtils.d.ts +3 -0
  244. package/dist/parser/parseTreeUtils.js +209 -0
  245. package/dist/parser/parseTreeUtils.js.map +1 -0
  246. package/dist/parser/parser.d.ts +16 -6
  247. package/dist/parser/parser.js +210 -144
  248. package/dist/parser/parser.js.map +1 -1
  249. package/dist/parser/stringAnnotationInfo.d.ts +16 -0
  250. package/dist/parser/stringAnnotationInfo.js +26 -0
  251. package/dist/parser/stringAnnotationInfo.js.map +1 -0
  252. package/dist/pyright.js +30 -17
  253. package/dist/pyright.js.map +1 -1
  254. package/dist/readonlyAugmentedFileSystem.d.ts +2 -9
  255. package/dist/readonlyAugmentedFileSystem.js +17 -144
  256. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  257. package/dist/server.js +2 -2
  258. package/dist/server.js.map +1 -1
  259. package/dist/tests/analyzerNodeInfo.test.d.ts +1 -0
  260. package/dist/tests/analyzerNodeInfo.test.js +145 -0
  261. package/dist/tests/analyzerNodeInfo.test.js.map +1 -0
  262. package/dist/tests/collectionUtils.test.js +46 -0
  263. package/dist/tests/collectionUtils.test.js.map +1 -1
  264. package/dist/tests/completions.test.js +34 -0
  265. package/dist/tests/completions.test.js.map +1 -1
  266. package/dist/tests/config.test.js +131 -7
  267. package/dist/tests/config.test.js.map +1 -1
  268. package/dist/tests/extraPathGlob.test.d.ts +1 -0
  269. package/dist/tests/extraPathGlob.test.js +434 -0
  270. package/dist/tests/extraPathGlob.test.js.map +1 -0
  271. package/dist/tests/fileSystemMapping.test.d.ts +1 -0
  272. package/dist/tests/fileSystemMapping.test.js +458 -0
  273. package/dist/tests/fileSystemMapping.test.js.map +1 -0
  274. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js +23 -0
  275. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js.map +1 -1
  276. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js +14 -0
  277. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js.map +1 -1
  278. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js +7 -0
  279. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js.map +1 -1
  280. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.d.ts +1 -0
  281. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js +41 -0
  282. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js.map +1 -0
  283. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js +2 -0
  284. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js.map +1 -1
  285. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js +5 -0
  286. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js.map +1 -1
  287. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js +4 -0
  288. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js.map +1 -1
  289. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.d.ts +1 -0
  290. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js +48 -0
  291. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js.map +1 -0
  292. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js +0 -1
  293. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js.map +1 -1
  294. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +8 -2
  295. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  296. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +5 -2
  297. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  298. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js +2 -2
  299. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js.map +1 -1
  300. package/dist/tests/harness/fourslash/testState.js +1 -1
  301. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  302. package/dist/tests/hoverProvider.test.js +38 -0
  303. package/dist/tests/hoverProvider.test.js.map +1 -1
  304. package/dist/tests/importStatementUtils.test.js +6 -3
  305. package/dist/tests/importStatementUtils.test.js.map +1 -1
  306. package/dist/tests/ipythonMode.test.js +38 -0
  307. package/dist/tests/ipythonMode.test.js.map +1 -1
  308. package/dist/tests/parseTreeUtils.test.js +88 -0
  309. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  310. package/dist/tests/parser.test.js +60 -3
  311. package/dist/tests/parser.test.js.map +1 -1
  312. package/dist/tests/positionUtils.test.js +23 -0
  313. package/dist/tests/positionUtils.test.js.map +1 -1
  314. package/dist/tests/pyrightCli.test.d.ts +1 -0
  315. package/dist/tests/pyrightCli.test.js +205 -0
  316. package/dist/tests/pyrightCli.test.js.map +1 -0
  317. package/dist/tests/pyrightFileSystem.test.js +41 -0
  318. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  319. package/dist/tests/service.test.js +183 -0
  320. package/dist/tests/service.test.js.map +1 -1
  321. package/dist/tests/sourceEnumeratorSymlink.test.d.ts +1 -0
  322. package/dist/tests/sourceEnumeratorSymlink.test.js +203 -0
  323. package/dist/tests/sourceEnumeratorSymlink.test.js.map +1 -0
  324. package/dist/tests/stringUtils.test.js +84 -0
  325. package/dist/tests/stringUtils.test.js.map +1 -1
  326. package/dist/tests/symlinkAliasInvalidation.test.d.ts +1 -0
  327. package/dist/tests/symlinkAliasInvalidation.test.js +471 -0
  328. package/dist/tests/symlinkAliasInvalidation.test.js.map +1 -0
  329. package/dist/tests/testUtils.d.ts +2 -0
  330. package/dist/tests/testUtils.js +7 -1
  331. package/dist/tests/testUtils.js.map +1 -1
  332. package/dist/tests/textEditUtil.test.js +2 -2
  333. package/dist/tests/textEditUtil.test.js.map +1 -1
  334. package/dist/tests/textRangeCollection.test.d.ts +1 -0
  335. package/dist/tests/textRangeCollection.test.js +137 -0
  336. package/dist/tests/textRangeCollection.test.js.map +1 -0
  337. package/dist/tests/typeEquality.test.d.ts +1 -0
  338. package/dist/tests/typeEquality.test.js +95 -0
  339. package/dist/tests/typeEquality.test.js.map +1 -0
  340. package/dist/tests/typeEvaluator1.test.js +24 -3
  341. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  342. package/dist/tests/typeEvaluator2.test.js +4 -0
  343. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  344. package/dist/tests/typeEvaluator3.test.js +8 -0
  345. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  346. package/dist/tests/typeEvaluator4.test.js +8 -0
  347. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  348. package/dist/tests/typeEvaluator5.test.js +1 -1
  349. package/dist/tests/typeEvaluator6.test.js +5 -1
  350. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  351. package/dist/tests/typeEvaluator7.test.js +4 -0
  352. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  353. package/dist/tests/typeEvaluator8.test.js +4 -0
  354. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  355. package/dist/tests/typeServer/typeCache.test.d.ts +1 -0
  356. package/dist/tests/typeServer/typeCache.test.js +69 -0
  357. package/dist/tests/typeServer/typeCache.test.js.map +1 -0
  358. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +18 -0
  359. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
  360. package/dist/tests/typeStubGeneration.test.d.ts +1 -0
  361. package/dist/tests/typeStubGeneration.test.js +397 -0
  362. package/dist/tests/typeStubGeneration.test.js.map +1 -0
  363. package/dist/tests/typeStubOutput.test.d.ts +1 -0
  364. package/dist/tests/typeStubOutput.test.js +136 -0
  365. package/dist/tests/typeStubOutput.test.js.map +1 -0
  366. package/dist/tests/typeUtils.test.d.ts +1 -0
  367. package/dist/tests/typeUtils.test.js +133 -0
  368. package/dist/tests/typeUtils.test.js.map +1 -0
  369. package/dist/tests/uri.test.js +51 -0
  370. package/dist/tests/uri.test.js.map +1 -1
  371. package/dist/typeServer/notebookDocumentHandler.d.ts +9 -2
  372. package/dist/typeServer/notebookDocumentHandler.js +16 -6
  373. package/dist/typeServer/notebookDocumentHandler.js.map +1 -1
  374. package/dist/typeServer/programWrapper.d.ts +1 -0
  375. package/dist/typeServer/programWrapper.js +28 -15
  376. package/dist/typeServer/programWrapper.js.map +1 -1
  377. package/dist/typeServer/protocol/tspSupplemental.d.ts +1 -1
  378. package/dist/typeServer/protocol/tspSupplemental.js +2 -2
  379. package/dist/typeServer/server.d.ts +13 -2
  380. package/dist/typeServer/server.js +36 -23
  381. package/dist/typeServer/server.js.map +1 -1
  382. package/dist/typeServer/typeCache.d.ts +8 -4
  383. package/dist/typeServer/typeCache.js +33 -5
  384. package/dist/typeServer/typeCache.js.map +1 -1
  385. package/dist/typeServer/typeEvalUtils.d.ts +2 -1
  386. package/dist/typeServer/typeEvalUtils.js +7 -3
  387. package/dist/typeServer/typeEvalUtils.js.map +1 -1
  388. package/dist/typeServer/typeGuards.js +3 -4
  389. package/dist/typeServer/typeGuards.js.map +1 -1
  390. package/dist/typeServer/typeServerFileSystem.d.ts +10 -9
  391. package/dist/typeServer/typeServerFileSystem.js +16 -12
  392. package/dist/typeServer/typeServerFileSystem.js.map +1 -1
  393. package/package.json +7 -5
  394. package/dist/analyzer/parseTreeCleaner.d.ts +0 -8
  395. package/dist/analyzer/parseTreeCleaner.js +0 -65
  396. package/dist/analyzer/parseTreeCleaner.js.map +0 -1
  397. package/dist/analyzer/typeStubWriter.d.ts +0 -17
  398. package/dist/analyzer/typeStubWriter.js.map +0 -1
@@ -12,7 +12,7 @@ exports.BackgroundAnalysisProgram = exports.InvalidatedReason = void 0;
12
12
  require("../common/serviceProviderExtensions");
13
13
  const analysis_1 = require("./analysis");
14
14
  const program_1 = require("./program");
15
- const typeStubWriter_1 = require("./typeStubWriter");
15
+ const typeStubGeneration_1 = require("./typeStubGeneration");
16
16
  var InvalidatedReason;
17
17
  (function (InvalidatedReason) {
18
18
  InvalidatedReason[InvalidatedReason["Reanalyzed"] = 0] = "Reanalyzed";
@@ -141,15 +141,11 @@ class BackgroundAnalysisProgram {
141
141
  }
142
142
  return this._program.getDiagnosticsForRange(fileUri, range);
143
143
  }
144
- async writeTypeStub(targetImportUri, targetIsSingleFile, stubUri, token) {
144
+ async generateTypeStubFiles(plan, token) {
145
145
  if (this._backgroundAnalysis) {
146
- return this._backgroundAnalysis.writeTypeStub(targetImportUri, targetIsSingleFile, stubUri, token);
146
+ return this._backgroundAnalysis.generateTypeStubFiles(plan, token);
147
147
  }
148
- return new typeStubWriter_1.TypeStubWriter(this._program).writeTypeStub({
149
- targetImportPath: targetImportUri,
150
- targetIsSingleFile,
151
- outputPath: stubUri,
152
- }, token);
148
+ return (0, typeStubGeneration_1.generateTypeStubFiles)(this._program, plan, token);
153
149
  }
154
150
  invalidateAndForceReanalysis(reason, refreshOptions) {
155
151
  this._backgroundAnalysis?.invalidateAndForceReanalysis(reason);
@@ -1 +1 @@
1
- {"version":3,"file":"backgroundAnalysisProgram.js","sourceRoot":"","sources":["../../../../../src/analyzer/backgroundAnalysisProgram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backgroundAnalysisProgram.js","sourceRoot":"","sources":["../../../../../src/analyzer/backgroundAnalysisProgram.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import { AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, BreakNode, CallNode, ClassNode, ComprehensionNode, ContinueNode, DelNode, ExceptNode, ForNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromNode, IndexNode, LambdaNode, MatchNode, MemberAccessNode, ModuleNameNode, ModuleNode, NameNode, NonlocalNode, ParseNode, PatternAsNode, PatternCaptureNode, PatternMappingExpandEntryNode, RaiseNode, ReturnNode, SuiteNode, TernaryNode, TryNode, TypeAliasNode, TypeAnnotationNode, TypeParameterListNode, UnaryOperationNode, WhileNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
2
2
  import { AnalyzerFileInfo } from './analyzerFileInfo';
3
+ import * as AnalyzerNodeInfo from './analyzerNodeInfo';
3
4
  import { ParseTreeWalker } from './parseTreeWalker';
4
5
  import { CellChainIndexProvider } from './cellChainIndex';
5
6
  import { Scope } from './scope';
6
7
  export declare class Binder extends ParseTreeWalker {
7
8
  private _moduleSymbolOnly;
8
- private readonly _cellChainIndex?;
9
+ private readonly _cellChainIndex;
9
10
  private readonly _fileInfo;
11
+ private readonly _nodeInfo;
10
12
  private _deferredBindingTasks;
11
13
  private _currentScope;
12
14
  private _currentFlowNode;
@@ -37,7 +39,7 @@ export declare class Binder extends ParseTreeWalker {
37
39
  private _potentialWildcardReexportSymbols;
38
40
  private _potentialPrivateSymbols;
39
41
  private _codeFlowComplexity;
40
- constructor(fileInfo: AnalyzerFileInfo, _moduleSymbolOnly?: boolean, _cellChainIndex?: CellChainIndexProvider | undefined);
42
+ constructor(fileInfo: AnalyzerFileInfo, _moduleSymbolOnly: boolean | undefined, _cellChainIndex: CellChainIndexProvider | undefined, nodeInfo: AnalyzerNodeInfo.AnalyzerNodeInfoAccessor);
41
43
  bindModule(node: ModuleNode): void;
42
44
  visitModule(node: ModuleNode): boolean;
43
45
  visitSuite(node: SuiteNode): boolean;
@@ -161,8 +163,9 @@ export declare class ReturnFinder extends ParseTreeWalker {
161
163
  visitReturn(node: ReturnNode): boolean;
162
164
  }
163
165
  export declare class DummyScopeGenerator extends ParseTreeWalker {
166
+ private readonly _nodeInfo;
164
167
  private _currentScope;
165
- constructor(currentScope: Scope | undefined);
168
+ constructor(currentScope: Scope | undefined, _nodeInfo: AnalyzerNodeInfo.AnalyzerNodeInfoAccessor);
166
169
  visitClass(node: ClassNode): boolean;
167
170
  visitFunction(node: FunctionNode): boolean;
168
171
  private _createNewScope;
@@ -58,7 +58,6 @@ const positionUtils_1 = require("../common/positionUtils");
58
58
  const textRange_1 = require("../common/textRange");
59
59
  const uri_1 = require("../common/uri/uri");
60
60
  const localize_1 = require("../localization/localize");
61
- const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
62
61
  const codeFlowTypes_1 = require("./codeFlowTypes");
63
62
  const declaration_1 = require("./declaration");
64
63
  const importStatementUtils_1 = require("./importStatementUtils");
@@ -131,7 +130,7 @@ function doesCallExposeClassNamespace(scope, node) {
131
130
  // flow nodes. This number is somewhat arbitrary and is tuned empirically.
132
131
  const flowNodeComplexityContribution = 0.025;
133
132
  class Binder extends parseTreeWalker_1.ParseTreeWalker {
134
- constructor(fileInfo, _moduleSymbolOnly = false, _cellChainIndex) {
133
+ constructor(fileInfo, _moduleSymbolOnly, _cellChainIndex, nodeInfo) {
135
134
  super();
136
135
  this._moduleSymbolOnly = _moduleSymbolOnly;
137
136
  this._cellChainIndex = _cellChainIndex;
@@ -176,6 +175,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
176
175
  // the current function.
177
176
  this._codeFlowComplexity = 0;
178
177
  this._fileInfo = fileInfo;
178
+ this._nodeInfo = nodeInfo;
179
179
  }
180
180
  bindModule(node) {
181
181
  // We'll assume that if there is no builtins scope provided, we must be
@@ -185,8 +185,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
185
185
  this._addTypingImportAliasesFromBuiltinsScope();
186
186
  this._createNewScope(isBuiltInModule ? 5 /* ScopeType.Builtin */ : 4 /* ScopeType.Module */, this._fileInfo.builtinsScope,
187
187
  /* proxyScope */ undefined, chainedModuleLevelScopeLookup, () => {
188
- AnalyzerNodeInfo.setScope(node, this._currentScope);
189
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
188
+ this._nodeInfo.setScope(node, this._currentScope);
189
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
190
190
  // Bind implicit names.
191
191
  // List taken from https://docs.python.org/3/reference/import.html#__name__
192
192
  this._addImplicitSymbolToCurrentScope('__name__', node, 'str');
@@ -204,9 +204,9 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
204
204
  this._currentFlowNode = this._createStartFlowNode();
205
205
  this._walkStatementsAndReportUnreachable(node.d.statements);
206
206
  // Associate the code flow node at the end of the module with the module.
207
- AnalyzerNodeInfo.setAfterFlowNode(node, this._currentFlowNode);
208
- AnalyzerNodeInfo.setCodeFlowExpressions(node, this._currentScopeCodeFlowExpressions);
209
- AnalyzerNodeInfo.setCodeFlowComplexity(node, this._codeFlowComplexity);
207
+ this._nodeInfo.setAfterFlowNode(node, this._currentFlowNode);
208
+ this._nodeInfo.setCodeFlowExpressions(node, this._currentScopeCodeFlowExpressions);
209
+ this._nodeInfo.setCodeFlowComplexity(node, this._codeFlowComplexity);
210
210
  });
211
211
  // Perform all analysis that was deferred during the first pass.
212
212
  this._bindDeferred();
@@ -248,17 +248,17 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
248
248
  }
249
249
  });
250
250
  if (this._dunderAllNames) {
251
- AnalyzerNodeInfo.setDunderAllInfo(node, {
251
+ this._nodeInfo.setDunderAllInfo(node, {
252
252
  names: this._dunderAllNames,
253
253
  stringNodes: this._dunderAllStringNodes,
254
254
  usesUnsupportedDunderAllForm: this._usesUnsupportedDunderAllForm,
255
255
  });
256
256
  }
257
257
  else {
258
- AnalyzerNodeInfo.setDunderAllInfo(node, /* names */ undefined);
258
+ this._nodeInfo.setDunderAllInfo(node, /* names */ undefined);
259
259
  }
260
260
  // Set __all__ flags on the module symbols.
261
- const scope = AnalyzerNodeInfo.getScope(node);
261
+ const scope = this._nodeInfo.getScope(node);
262
262
  if (scope && this._dunderAllNames) {
263
263
  for (const name of this._dunderAllNames) {
264
264
  scope.symbolTable.get(name)?.setIsInDunderAll();
@@ -276,7 +276,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
276
276
  return false;
277
277
  }
278
278
  visitModuleName(node) {
279
- const importResult = AnalyzerNodeInfo.getImportInfo(node);
279
+ const importResult = this._nodeInfo.getImportInfo(node);
280
280
  (0, debug_1.assert)(importResult !== undefined);
281
281
  if (importResult.isNativeLib) {
282
282
  return true;
@@ -335,17 +335,17 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
335
335
  symbol.addDeclaration(classDeclaration);
336
336
  }
337
337
  // Stash the declaration in the parse node for later access.
338
- AnalyzerNodeInfo.setDeclaration(node, classDeclaration);
338
+ this._nodeInfo.setDeclaration(node, classDeclaration);
339
339
  let typeParamScope;
340
340
  if (node.d.typeParams) {
341
341
  this.walk(node.d.typeParams);
342
- typeParamScope = AnalyzerNodeInfo.getScope(node.d.typeParams);
342
+ typeParamScope = this._nodeInfo.getScope(node.d.typeParams);
343
343
  }
344
344
  this.walkMultiple(node.d.arguments);
345
345
  this._createNewScope(3 /* ScopeType.Class */, typeParamScope ?? this._getNonClassParentScope(),
346
346
  /* proxyScope */ undefined,
347
347
  /* chainedModuleLevelScopeLookup */ undefined, () => {
348
- AnalyzerNodeInfo.setScope(node, this._currentScope);
348
+ this._nodeInfo.setScope(node, this._currentScope);
349
349
  this._addImplicitSymbolToCurrentScope('__doc__', node, 'str | None');
350
350
  this._addImplicitSymbolToCurrentScope('__module__', node, 'str');
351
351
  this._dunderSlotsEntries = undefined;
@@ -387,7 +387,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
387
387
  }
388
388
  visitFunction(node) {
389
389
  this._createVariableAnnotationFlowNode();
390
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
390
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
391
391
  const symbol = this._bindNameToScope(this._currentScope, node.d.name);
392
392
  const containingClassNode = ParseTreeUtils.getEnclosingClass(node, /* stopAtFunction */ true);
393
393
  const functionDeclaration = {
@@ -404,7 +404,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
404
404
  symbol.addDeclaration(functionDeclaration);
405
405
  }
406
406
  // Stash the declaration in the parse node for later access.
407
- AnalyzerNodeInfo.setDeclaration(node, functionDeclaration);
407
+ this._nodeInfo.setDeclaration(node, functionDeclaration);
408
408
  // Walk the default values prior to the type parameters.
409
409
  node.d.params.forEach((param) => {
410
410
  if (param.d.defaultValue) {
@@ -414,7 +414,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
414
414
  let typeParamScope;
415
415
  if (node.d.typeParams) {
416
416
  this.walk(node.d.typeParams);
417
- typeParamScope = AnalyzerNodeInfo.getScope(node.d.typeParams);
417
+ typeParamScope = this._nodeInfo.getScope(node.d.typeParams);
418
418
  }
419
419
  this.walkMultiple(node.d.decorators);
420
420
  node.d.params.forEach((param) => {
@@ -436,7 +436,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
436
436
  this._createNewScope(2 /* ScopeType.Function */, typeParamScope ?? this._getNonClassParentScope(),
437
437
  /* proxyScope */ undefined,
438
438
  /* chainedModuleLevelScopeLookup */ undefined, () => {
439
- AnalyzerNodeInfo.setScope(node, this._currentScope);
439
+ this._nodeInfo.setScope(node, this._currentScope);
440
440
  const enclosingClass = ParseTreeUtils.getEnclosingClass(node);
441
441
  if (enclosingClass) {
442
442
  // Add the implicit "__class__" symbol described in PEP 3135.
@@ -459,7 +459,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
459
459
  isInExceptSuite: this._isInExceptSuite,
460
460
  };
461
461
  symbol.addDeclaration(paramDeclaration);
462
- AnalyzerNodeInfo.setDeclaration(paramNode.d.name, paramDeclaration);
462
+ this._nodeInfo.setDeclaration(paramNode.d.name, paramDeclaration);
463
463
  }
464
464
  this._createFlowAssignment(paramNode.d.name);
465
465
  }
@@ -471,15 +471,15 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
471
471
  this._targetFunctionDeclaration = undefined;
472
472
  // Associate the code flow node at the end of the suite with
473
473
  // the suite.
474
- AnalyzerNodeInfo.setAfterFlowNode(node.d.suite, this._currentFlowNode);
474
+ this._nodeInfo.setAfterFlowNode(node.d.suite, this._currentFlowNode);
475
475
  // Compute the final return flow node and associate it with
476
476
  // the function's parse node. If this node is unreachable, then
477
477
  // the function never returns.
478
478
  this._addAntecedent(this._currentReturnTarget, this._currentFlowNode);
479
479
  const returnFlowNode = this._finishFlowLabel(this._currentReturnTarget);
480
- AnalyzerNodeInfo.setAfterFlowNode(node, returnFlowNode);
481
- AnalyzerNodeInfo.setCodeFlowExpressions(node, this._currentScopeCodeFlowExpressions);
482
- AnalyzerNodeInfo.setCodeFlowComplexity(node, this._codeFlowComplexity);
480
+ this._nodeInfo.setAfterFlowNode(node, returnFlowNode);
481
+ this._nodeInfo.setCodeFlowExpressions(node, this._currentScopeCodeFlowExpressions);
482
+ this._nodeInfo.setCodeFlowComplexity(node, this._codeFlowComplexity);
483
483
  });
484
484
  });
485
485
  this._createAssignmentTargetFlowNodes(node.d.name, /* walkTargets */ false, /* unbound */ false);
@@ -488,7 +488,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
488
488
  }
489
489
  visitLambda(node) {
490
490
  this._createVariableAnnotationFlowNode();
491
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
491
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
492
492
  // Analyze the parameter defaults in the context of the parent's scope
493
493
  // before we add any names from the function's scope.
494
494
  node.d.params.forEach((param) => {
@@ -499,7 +499,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
499
499
  this._createNewScope(2 /* ScopeType.Function */, this._getNonClassParentScope(),
500
500
  /* proxyScope */ undefined,
501
501
  /* chainedModuleLevelScopeLookup */ undefined, () => {
502
- AnalyzerNodeInfo.setScope(node, this._currentScope);
502
+ this._nodeInfo.setScope(node, this._currentScope);
503
503
  const enclosingClass = ParseTreeUtils.getEnclosingClass(node);
504
504
  if (enclosingClass) {
505
505
  // Lambdas create the same implicit __class__ closure as named functions.
@@ -521,16 +521,16 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
521
521
  isInExceptSuite: this._isInExceptSuite,
522
522
  };
523
523
  symbol.addDeclaration(paramDeclaration);
524
- AnalyzerNodeInfo.setDeclaration(paramNode.d.name, paramDeclaration);
524
+ this._nodeInfo.setDeclaration(paramNode.d.name, paramDeclaration);
525
525
  }
526
526
  this._createFlowAssignment(paramNode.d.name);
527
527
  this.walk(paramNode.d.name);
528
- AnalyzerNodeInfo.setFlowNode(paramNode, this._currentFlowNode);
528
+ this._nodeInfo.setFlowNode(paramNode, this._currentFlowNode);
529
529
  }
530
530
  });
531
531
  // Walk the expression that make up the lambda body.
532
532
  this.walk(node.d.expr);
533
- AnalyzerNodeInfo.setCodeFlowExpressions(node, this._currentScopeCodeFlowExpressions);
533
+ this._nodeInfo.setCodeFlowExpressions(node, this._currentScopeCodeFlowExpressions);
534
534
  });
535
535
  });
536
536
  // We'll walk the child nodes in a deferred manner.
@@ -545,7 +545,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
545
545
  const sortedArgs = ParseTreeUtils.getArgsByRuntimeOrder(node);
546
546
  sortedArgs.forEach((argNode) => {
547
547
  if (this._currentFlowNode) {
548
- AnalyzerNodeInfo.setFlowNode(argNode, this._currentFlowNode);
548
+ this._nodeInfo.setFlowNode(argNode, this._currentFlowNode);
549
549
  }
550
550
  this.walk(argNode);
551
551
  });
@@ -650,7 +650,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
650
650
  isInExceptSuite: this._isInExceptSuite,
651
651
  };
652
652
  symbol.addDeclaration(paramDeclaration);
653
- AnalyzerNodeInfo.setDeclaration(name, paramDeclaration);
653
+ this._nodeInfo.setDeclaration(name, paramDeclaration);
654
654
  if (typeParamsSeen.has(name.d.value)) {
655
655
  this._addSyntaxError(localize_1.LocMessage.typeParameterExistingTypeParameter().format({ name: name.d.value }), name);
656
656
  }
@@ -663,7 +663,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
663
663
  this.walk(param.d.defaultExpr);
664
664
  }
665
665
  });
666
- AnalyzerNodeInfo.setScope(node, typeParamScope);
666
+ this._nodeInfo.setScope(node, typeParamScope);
667
667
  return false;
668
668
  }
669
669
  visitTypeAlias(node) {
@@ -672,7 +672,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
672
672
  let typeParamScope;
673
673
  if (node.d.typeParams) {
674
674
  this.walk(node.d.typeParams);
675
- typeParamScope = AnalyzerNodeInfo.getScope(node.d.typeParams);
675
+ typeParamScope = this._nodeInfo.getScope(node.d.typeParams);
676
676
  }
677
677
  const typeAliasDeclaration = {
678
678
  type: 4 /* DeclarationType.TypeAlias */,
@@ -688,7 +688,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
688
688
  symbol.addDeclaration(typeAliasDeclaration);
689
689
  }
690
690
  // Stash the declaration in the parse node for later access.
691
- AnalyzerNodeInfo.setDeclaration(node, typeAliasDeclaration);
691
+ this._nodeInfo.setDeclaration(node, typeAliasDeclaration);
692
692
  this._createAssignmentTargetFlowNodes(node.d.name, /* walkTargets */ true, /* unbound */ false);
693
693
  const prevScope = this._currentScope;
694
694
  this._currentScope = typeParamScope ?? this._currentScope;
@@ -857,7 +857,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
857
857
  // Evaluate the operand expression.
858
858
  this.walk(node.d.rightExpr);
859
859
  });
860
- const evaluationNode = ParseTreeUtils.getEvaluationNodeForAssignmentExpression(node);
860
+ const evaluationNode = ParseTreeUtils.getEvaluationNodeForAssignmentExpression(node, this._nodeInfo);
861
861
  if (!evaluationNode) {
862
862
  this._addSyntaxError(localize_1.LocMessage.assignmentExprContext(), node);
863
863
  this.walk(node.d.name);
@@ -867,7 +867,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
867
867
  // because of the behavior defined in PEP 572. Targets of assignment
868
868
  // expressions don't bind to a list comprehension's scope but instead
869
869
  // bind to its containing scope.
870
- const containerScope = AnalyzerNodeInfo.getScope(evaluationNode);
870
+ const containerScope = this._nodeInfo.getScope(evaluationNode);
871
871
  // If we're in a list comprehension (possibly nested), make sure that
872
872
  // local for targets don't collide with the target of the assignment
873
873
  // expression.
@@ -1071,10 +1071,10 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1071
1071
  this._targetFunctionDeclaration.returnStatements.push(node);
1072
1072
  }
1073
1073
  if (node.d.expr) {
1074
- AnalyzerNodeInfo.setFlowNode(node.d.expr, this._currentFlowNode);
1074
+ this._nodeInfo.setFlowNode(node.d.expr, this._currentFlowNode);
1075
1075
  this.walk(node.d.expr);
1076
1076
  }
1077
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
1077
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
1078
1078
  if (this._currentReturnTarget) {
1079
1079
  this._addAntecedent(this._currentReturnTarget, this._currentFlowNode);
1080
1080
  }
@@ -1100,15 +1100,15 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1100
1100
  }
1101
1101
  visitMemberAccess(node) {
1102
1102
  this.walk(node.d.leftExpr);
1103
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
1103
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
1104
1104
  return false;
1105
1105
  }
1106
1106
  visitName(node) {
1107
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
1107
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
1108
1108
  return false;
1109
1109
  }
1110
1110
  visitIndex(node) {
1111
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
1111
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
1112
1112
  this.walk(node.d.leftExpr);
1113
1113
  // If we're within an 'Annotated' type annotation, set the flag.
1114
1114
  const wasInAnnotatedAnnotation = this._isInAnnotatedAnnotation;
@@ -1130,7 +1130,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1130
1130
  // Determine if the test condition is always true or always false. If so,
1131
1131
  // we can treat either the then or the else clause as unconditional.
1132
1132
  const constExprValue = StaticExpressions.evaluateStaticBoolLikeExpression(node.d.testExpr, this._fileInfo.executionEnvironment, this._fileInfo.definedConstants, this._typingImportAliases, this._sysImportAliases);
1133
- AnalyzerNodeInfo.setStaticConditionValue(node, constExprValue);
1133
+ this._nodeInfo.setStaticConditionValue(node, constExprValue);
1134
1134
  this._bindConditional(node.d.testExpr, thenLabel, elseLabel);
1135
1135
  // Handle the if clause.
1136
1136
  this._currentFlowNode =
@@ -1369,7 +1369,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1369
1369
  }
1370
1370
  visitAwait(node) {
1371
1371
  // Make sure this is within an async lambda or function.
1372
- const execScopeNode = ParseTreeUtils.getExecutionScopeNode(node);
1372
+ const execScopeNode = ParseTreeUtils.getExecutionScopeNode(node, this._nodeInfo);
1373
1373
  if (execScopeNode?.nodeType !== 31 /* ParseNodeType.Function */ || !execScopeNode.d.isAsync) {
1374
1374
  if (this._fileInfo.ipythonMode && execScopeNode?.nodeType === 36 /* ParseNodeType.Module */) {
1375
1375
  // Top level await is allowed in ipython mode.
@@ -1466,7 +1466,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1466
1466
  this._potentialHiddenSymbols.set(symbolName, symbol);
1467
1467
  }
1468
1468
  }
1469
- const importInfo = AnalyzerNodeInfo.getImportInfo(node.d.module);
1469
+ const importInfo = this._nodeInfo.getImportInfo(node.d.module);
1470
1470
  (0, debug_1.assert)(importInfo !== undefined);
1471
1471
  if (symbol) {
1472
1472
  this._createAliasDeclarationForMultipartImportName(node, node.d.alias, importInfo, symbol);
@@ -1489,8 +1489,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1489
1489
  visitImportFrom(node) {
1490
1490
  const typingSymbolsOfInterest = ['Final', 'ClassVar', 'Annotated'];
1491
1491
  const dataclassesSymbolsOfInterest = ['InitVar', 'KW_ONLY'];
1492
- const importInfo = AnalyzerNodeInfo.getImportInfo(node.d.module);
1493
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
1492
+ const importInfo = this._nodeInfo.getImportInfo(node.d.module);
1493
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
1494
1494
  let resolvedPath = uri_1.Uri.empty();
1495
1495
  if (importInfo && importInfo.isImportFound && !importInfo.isNativeLib) {
1496
1496
  resolvedPath = importInfo.resolvedUris[importInfo.resolvedUris.length - 1];
@@ -1630,7 +1630,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1630
1630
  node.d.imports.forEach((importSymbolNode) => {
1631
1631
  const importedName = importSymbolNode.d.name.d.value;
1632
1632
  const nameNode = importSymbolNode.d.alias || importSymbolNode.d.name;
1633
- AnalyzerNodeInfo.setFlowNode(importSymbolNode, this._currentFlowNode);
1633
+ this._nodeInfo.setFlowNode(importSymbolNode, this._currentFlowNode);
1634
1634
  const symbol = this._bindNameToScope(this._currentScope, nameNode);
1635
1635
  if (symbol) {
1636
1636
  // All import statements of the form `from . import x` treat x
@@ -1859,7 +1859,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
1859
1859
  this._createNewScope(1 /* ScopeType.Comprehension */, this._getNonClassParentScope(),
1860
1860
  /* proxyScope */ undefined,
1861
1861
  /* chainedModuleLevelScopeLookup */ undefined, () => {
1862
- AnalyzerNodeInfo.setScope(node, this._currentScope);
1862
+ this._nodeInfo.setScope(node, this._currentScope);
1863
1863
  const falseLabel = this._createBranchLabel();
1864
1864
  // We'll walk the forIfNodes list twice. The first time we'll
1865
1865
  // bind targets of for statements. The second time we'll walk
@@ -2197,7 +2197,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2197
2197
  }
2198
2198
  _createAliasDeclarationForMultipartImportName(node, importAlias, importInfo, symbol) {
2199
2199
  const firstNamePartValue = node.d.module.d.nameParts[0].d.value;
2200
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
2200
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
2201
2201
  let uriOfFirstSubmodule;
2202
2202
  if (importInfo && importInfo.isImportFound && !importInfo.isNativeLib && importInfo.resolvedUris.length > 0) {
2203
2203
  uriOfFirstSubmodule = importInfo.resolvedUris[0];
@@ -2273,7 +2273,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2273
2273
  }
2274
2274
  // See if there is import info for this part of the path. This allows us
2275
2275
  // to implicitly import all of the modules in a multi-part module name.
2276
- const implicitImportInfo = AnalyzerNodeInfo.getImportInfo(node.d.module.d.nameParts[0]);
2276
+ const implicitImportInfo = this._nodeInfo.getImportInfo(node.d.module.d.nameParts[0]);
2277
2277
  if (implicitImportInfo && implicitImportInfo.resolvedUris.length) {
2278
2278
  newDecl.uri = implicitImportInfo.resolvedUris[0];
2279
2279
  newDecl.loadSymbolsFromPath = true;
@@ -2328,7 +2328,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2328
2328
  // is import info for this part of the path. This allows us to implicitly
2329
2329
  // import all of the modules in a multi-part module name (e.g. "import a.b.c"
2330
2330
  // imports "a" and "a.b" and "a.b.c").
2331
- const implicitImportInfo = AnalyzerNodeInfo.getImportInfo(node.d.module.d.nameParts[i]);
2331
+ const implicitImportInfo = this._nodeInfo.getImportInfo(node.d.module.d.nameParts[i]);
2332
2332
  if (implicitImportInfo && implicitImportInfo.resolvedUris.length) {
2333
2333
  loaderActions.uri = implicitImportInfo.resolvedUris[i];
2334
2334
  loaderActions.loadSymbolsFromPath = true;
@@ -2345,7 +2345,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2345
2345
  _walkStatementsAndReportUnreachable(statements) {
2346
2346
  let foundUnreachableStatement = false;
2347
2347
  for (const statement of statements) {
2348
- AnalyzerNodeInfo.setFlowNode(statement, this._currentFlowNode);
2348
+ this._nodeInfo.setFlowNode(statement, this._currentFlowNode);
2349
2349
  if (!foundUnreachableStatement) {
2350
2350
  foundUnreachableStatement = this._isCodeUnreachable();
2351
2351
  }
@@ -2366,7 +2366,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2366
2366
  // subtree, we need to create dummy scopes for them. The type analyzer
2367
2367
  // depends on scopes being present.
2368
2368
  if (!this._moduleSymbolOnly) {
2369
- const dummyScopeGenerator = new DummyScopeGenerator(this._currentScope);
2369
+ const dummyScopeGenerator = new DummyScopeGenerator(this._currentScope, this._nodeInfo);
2370
2370
  dummyScopeGenerator.walk(statement);
2371
2371
  }
2372
2372
  }
@@ -2842,8 +2842,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2842
2842
  // introduced in except clauses. If there is no use the previous flow node
2843
2843
  // associated, use the previous flow node (applies in the del case).
2844
2844
  // Otherwise, the node will be evaluated as unbound at this point in the flow.
2845
- if (!unbound || AnalyzerNodeInfo.getFlowNode(node) === undefined) {
2846
- AnalyzerNodeInfo.setFlowNode(node, unbound ? prevFlowNode : this._currentFlowNode);
2845
+ if (!unbound || this._nodeInfo.getFlowNode(node) === undefined) {
2846
+ this._nodeInfo.setFlowNode(node, unbound ? prevFlowNode : this._currentFlowNode);
2847
2847
  }
2848
2848
  }
2849
2849
  _createFlowWildcardImport(node, names) {
@@ -2858,7 +2858,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2858
2858
  this._addExceptTargets(flowNode);
2859
2859
  this._currentFlowNode = flowNode;
2860
2860
  }
2861
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
2861
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
2862
2862
  }
2863
2863
  _createFlowExhaustedMatch(node) {
2864
2864
  if (!this._isCodeUnreachable()) {
@@ -2871,7 +2871,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
2871
2871
  };
2872
2872
  this._currentFlowNode = flowNode;
2873
2873
  }
2874
- AnalyzerNodeInfo.setAfterFlowNode(node, this._currentFlowNode);
2874
+ this._nodeInfo.setAfterFlowNode(node, this._currentFlowNode);
2875
2875
  }
2876
2876
  _isCodeUnreachable() {
2877
2877
  return !!(this._currentFlowNode.flags &
@@ -3063,7 +3063,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3063
3063
  // state so that hits from later cells are correctly marked.
3064
3064
  return (name, context) => {
3065
3065
  for (const moduleNode of cellChainIndex.getLaterModuleNodes(fileUri) ?? []) {
3066
- const moduleScope = AnalyzerNodeInfo.getScope(moduleNode);
3066
+ const moduleScope = this._nodeInfo.getScope(moduleNode);
3067
3067
  if (!moduleScope) {
3068
3068
  continue;
3069
3069
  }
@@ -3335,8 +3335,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3335
3335
  _isKnownAnnotation(typeAnnotation, name, importAliases, symbolAliases) {
3336
3336
  let annotationNode = typeAnnotation;
3337
3337
  // Is this a quoted annotation?
3338
- if (annotationNode.nodeType === 48 /* ParseNodeType.StringList */ && annotationNode.d.annotation) {
3339
- annotationNode = annotationNode.d.annotation;
3338
+ if (annotationNode.nodeType === 48 /* ParseNodeType.StringList */) {
3339
+ annotationNode = this._nodeInfo.getStringAnnotation(annotationNode) ?? annotationNode;
3340
3340
  }
3341
3341
  if (annotationNode.nodeType === 38 /* ParseNodeType.Name */) {
3342
3342
  const alias = symbolAliases.get(annotationNode.d.value);
@@ -3408,8 +3408,8 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3408
3408
  let classVarTypeNode;
3409
3409
  while (typeAnnotation) {
3410
3410
  // Is this a quoted annotation?
3411
- if (typeAnnotation.nodeType === 48 /* ParseNodeType.StringList */ && typeAnnotation.d.annotation) {
3412
- typeAnnotation = typeAnnotation.d.annotation;
3411
+ if (typeAnnotation.nodeType === 48 /* ParseNodeType.StringList */) {
3412
+ typeAnnotation = this._nodeInfo.getStringAnnotation(typeAnnotation) ?? typeAnnotation;
3413
3413
  }
3414
3414
  if (typeAnnotation.nodeType === 27 /* ParseNodeType.Index */ &&
3415
3415
  typeAnnotation.d.items.length > 0 &&
@@ -3508,7 +3508,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3508
3508
  }
3509
3509
  }
3510
3510
  }
3511
- const classScope = AnalyzerNodeInfo.getScope(classNode);
3511
+ const classScope = this._nodeInfo.getScope(classNode);
3512
3512
  (0, debug_1.assert)(classScope !== undefined);
3513
3513
  return {
3514
3514
  classNode,
@@ -3715,7 +3715,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3715
3715
  if (symbol) {
3716
3716
  symbol.addDeclaration(specialBuiltInClassDeclaration);
3717
3717
  }
3718
- AnalyzerNodeInfo.setDeclaration(node, specialBuiltInClassDeclaration);
3718
+ this._nodeInfo.setDeclaration(node, specialBuiltInClassDeclaration);
3719
3719
  return true;
3720
3720
  }
3721
3721
  _deferBinding(callback) {
@@ -3759,7 +3759,7 @@ class Binder extends parseTreeWalker_1.ParseTreeWalker {
3759
3759
  if (node.d.expr) {
3760
3760
  this.walk(node.d.expr);
3761
3761
  }
3762
- AnalyzerNodeInfo.setFlowNode(node, this._currentFlowNode);
3762
+ this._nodeInfo.setFlowNode(node, this._currentFlowNode);
3763
3763
  }
3764
3764
  _getUniqueFlowNodeId() {
3765
3765
  this._codeFlowComplexity += flowNodeComplexityContribution;
@@ -3838,16 +3838,17 @@ exports.ReturnFinder = ReturnFinder;
3838
3838
  // will still evaluate these types, and it depends on the presence
3839
3839
  // of a scope.
3840
3840
  class DummyScopeGenerator extends parseTreeWalker_1.ParseTreeWalker {
3841
- constructor(currentScope) {
3841
+ constructor(currentScope, _nodeInfo) {
3842
3842
  super();
3843
+ this._nodeInfo = _nodeInfo;
3843
3844
  this._currentScope = currentScope;
3844
3845
  }
3845
3846
  visitClass(node) {
3846
3847
  const newScope = this._createNewScope(3 /* ScopeType.Class */, () => {
3847
3848
  this.walk(node.d.suite);
3848
3849
  });
3849
- if (!AnalyzerNodeInfo.getScope(node)) {
3850
- AnalyzerNodeInfo.setScope(node, newScope);
3850
+ if (!this._nodeInfo.getScope(node)) {
3851
+ this._nodeInfo.setScope(node, newScope);
3851
3852
  }
3852
3853
  return false;
3853
3854
  }
@@ -3855,8 +3856,8 @@ class DummyScopeGenerator extends parseTreeWalker_1.ParseTreeWalker {
3855
3856
  const newScope = this._createNewScope(2 /* ScopeType.Function */, () => {
3856
3857
  this.walk(node.d.suite);
3857
3858
  });
3858
- if (!AnalyzerNodeInfo.getScope(node)) {
3859
- AnalyzerNodeInfo.setScope(node, newScope);
3859
+ if (!this._nodeInfo.getScope(node)) {
3860
+ this._nodeInfo.setScope(node, newScope);
3860
3861
  }
3861
3862
  return false;
3862
3863
  }