@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
@@ -1 +1 @@
1
- {"version":3,"file":"documentHighlightProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/documentHighlightProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iEAAoG;AAEpG,2EAA6D;AAC7D,mEAA2E;AAC3E,2DAAwE;AACxE,2DAAyF;AACzF,mDAA0D;AAI1D,uEAAoE;AAEpE,MAAa,yBAAyB;IAGlC,YACY,QAAqB,EACrB,QAAa,EACb,SAAmB,EACnB,MAAyB;QAHzB,aAAQ,GAAR,QAAQ,CAAa;QACrB,aAAQ,GAAR,QAAQ,CAAK;QACb,cAAS,GAAT,SAAS,CAAU;QACnB,WAAM,GAAN,MAAM,CAAmB;QAEjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,oBAAoB;QAChB,IAAA,gDAA4B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACjG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAChG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,gCAAuB,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,iDAAuB,CAAC,eAAe,CACnD,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EACzC;YACI,oCAAoC,EAAE,IAAI;YAC1C,OAAO,EAAE,gCAAgB,CAAC,UAAU;SACvC,CACJ,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI,EACA,CAAC,CAAC,IAAI,CAAC,QAAQ,gCAAuB,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1E,CAAC,CAAC,6CAAqB,CAAC,KAAK;gBAC7B,CAAC,CAAC,6CAAqB,CAAC,IAAI;YACpC,KAAK,EAAE,IAAA,qCAAqB,EAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;SAChF,CAAC,CAAC,CAAC;IACR,CAAC;CACJ;AApDD,8DAoDC"}
1
+ {"version":3,"file":"documentHighlightProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/documentHighlightProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,iEAAoG;AAEpG,mEAA6D;AAC7D,2EAA6D;AAC7D,mEAA2E;AAC3E,2DAAwE;AACxE,2DAAyF;AACzF,mDAA0D;AAI1D,uEAAoE;AAEpE,MAAa,yBAAyB;IAGlC,YACY,QAAqB,EACrB,QAAa,EACb,SAAmB,EACnB,MAAyB;QAHzB,aAAQ,GAAR,QAAQ,CAAa;QACrB,aAAQ,GAAR,QAAQ,CAAK;QACb,cAAS,GAAT,SAAS,CAAU;QACnB,WAAM,GAAN,MAAM,CAAmB;QAEjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,oBAAoB;QAChB,IAAA,gDAA4B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,uCAAuB,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACjG,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CACxC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EACzC,MAAM,EACN,IAAA,gCAAa,EAAC,IAAI,CAAC,QAAQ,CAAC,CAC/B,CAAC;QACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,gCAAuB,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,OAAO,GAAG,iDAAuB,CAAC,eAAe,CACnD,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EACzC;YACI,oCAAoC,EAAE,IAAI;YAC1C,OAAO,EAAE,gCAAgB,CAAC,UAAU;SACvC,CACJ,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI,EACA,CAAC,CAAC,IAAI,CAAC,QAAQ,gCAAuB,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1E,CAAC,CAAC,6CAAqB,CAAC,KAAK;gBAC7B,CAAC,CAAC,6CAAqB,CAAC,IAAI;YACpC,KAAK,EAAE,IAAA,qCAAqB,EAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;SAChF,CAAC,CAAC,CAAC;IACR,CAAC;CACJ;AAxDD,8DAwDC"}
@@ -1,4 +1,5 @@
1
1
  import { CancellationToken } from 'vscode-languageserver';
2
+ import * as AnalyzerNodeInfo from '../analyzer/analyzerNodeInfo';
2
3
  import { Declaration } from '../analyzer/declaration';
3
4
  import { ParseTreeWalker } from '../analyzer/parseTreeWalker';
4
5
  import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes';
@@ -53,6 +54,7 @@ export declare class DocumentSymbolCollector extends ParseTreeWalker {
53
54
  private readonly _treatModuleInImportAndFromImportSame;
54
55
  private readonly _skipUnreachableCode;
55
56
  private readonly _useCase;
57
+ private readonly _nodeInfo;
56
58
  private readonly _hasSeedProviders;
57
59
  private readonly _pendingSeedDeclarations;
58
60
  private readonly _previousResultRanges;
@@ -79,5 +81,5 @@ export declare class DocumentSymbolCollector extends ParseTreeWalker {
79
81
  private _getResolveAliasDeclaration;
80
82
  private _setDunderAllNodes;
81
83
  }
82
- export declare function getDeclarationsForNameNode(evaluator: TypeEvaluator, node: NameNode, skipUnreachableCode?: boolean): Declaration[];
84
+ export declare function getDeclarationsForNameNode(evaluator: TypeEvaluator, node: NameNode, skipUnreachableCode: boolean, nodeInfo: AnalyzerNodeInfo.AnalyzerNodeInfoReader): Declaration[];
83
85
  export declare function addDeclarationIfUnique(declarations: Declaration[], itemToAdd: Declaration): void;
@@ -47,6 +47,7 @@ exports.getResultRangeKey = getResultRangeKey;
47
47
  exports.getDeclarationsForNameNode = getDeclarationsForNameNode;
48
48
  exports.addDeclarationIfUnique = addDeclarationIfUnique;
49
49
  const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
50
+ const analyzerNodeInfo_1 = require("../analyzer/analyzerNodeInfo");
50
51
  const declaration_1 = require("../analyzer/declaration");
51
52
  const declarationUtils_1 = require("../analyzer/declarationUtils");
52
53
  const parseTreeUtils_1 = require("../analyzer/parseTreeUtils");
@@ -55,6 +56,8 @@ const ScopeUtils = __importStar(require("../analyzer/scopeUtils"));
55
56
  const sourceFile_1 = require("../analyzer/sourceFile");
56
57
  const sourceFileInfoUtils_1 = require("../analyzer/sourceFileInfoUtils");
57
58
  const sourceMapper_1 = require("../analyzer/sourceMapper");
59
+ const types_1 = require("../analyzer/types");
60
+ const typeUtils_1 = require("../analyzer/typeUtils");
58
61
  const cancellationUtils_1 = require("../common/cancellationUtils");
59
62
  const collectionUtils_1 = require("../common/collectionUtils");
60
63
  const core_1 = require("../common/core");
@@ -96,7 +99,7 @@ function getResultRangeKey(range) {
96
99
  // to the requested symbol.
97
100
  class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
98
101
  constructor(_program, symbolNames, declarations, _startingNode, _cancellationToken, options) {
99
- super();
102
+ super((0, analyzerNodeInfo_1.getInfoReader)(_program));
100
103
  this._program = _program;
101
104
  this._startingNode = _startingNode;
102
105
  this._cancellationToken = _cancellationToken;
@@ -105,6 +108,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
105
108
  this._symbolNames = new Set();
106
109
  this._declarations = [];
107
110
  this._pendingSeedDeclarations = [];
111
+ this._nodeInfo = (0, analyzerNodeInfo_1.getInfoReader)(this._program);
108
112
  this._aliasResolver = new AliasResolver(this._program.evaluator);
109
113
  // Start with the symbols passed in
110
114
  symbolNames.forEach((s) => this._symbolNames.add(s));
@@ -116,7 +120,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
116
120
  this._usageProviders =
117
121
  options?.providers ??
118
122
  (this._program.serviceProvider.tryGet(serviceKeys_1.ServiceKeys.symbolUsageProviderFactory) ?? [])
119
- .map((f) => f.tryCreateProvider(this._useCase, declarations, this._cancellationToken))
123
+ .map((f) => f.tryCreateProvider(this._useCase, declarations, this._nodeInfo, this._cancellationToken))
120
124
  .filter(core_1.isDefined);
121
125
  this._hasSeedProviders = this._usageProviders.some((p) => p.appendSeedDeclarationsAt !== undefined);
122
126
  if (options?.providers === undefined) {
@@ -145,8 +149,9 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
145
149
  if (!evaluator) {
146
150
  return [];
147
151
  }
148
- const declarations = getDeclarationsForNameNode(evaluator, node, /* skipUnreachableCode */ false);
149
- const fileInfo = AnalyzerNodeInfo.getFileInfo(node);
152
+ const nodeInfo = (0, analyzerNodeInfo_1.getInfoReader)(program);
153
+ const declarations = getDeclarationsForNameNode(evaluator, node, /* skipUnreachableCode */ false, nodeInfo);
154
+ const fileInfo = AnalyzerNodeInfo.getFileInfo(node, nodeInfo);
150
155
  const fileUri = fileInfo.fileUri;
151
156
  const resolveLocalNames = options?.resolveLocalNames ?? true;
152
157
  const findImplementations = options?.findImplementations ?? true;
@@ -186,7 +191,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
186
191
  implicitlyImportedBy.forEach((implicitImport) => {
187
192
  const parseTree = program.getParseResults(implicitImport.uri)?.parserOutput.parseTree;
188
193
  if (parseTree) {
189
- const scope = AnalyzerNodeInfo.getScope(parseTree);
194
+ const scope = AnalyzerNodeInfo.getScope(parseTree, nodeInfo);
190
195
  const symbol = scope?.lookUpSymbol(node.d.value);
191
196
  appendSymbolDeclarations(symbol, resolvedDeclarations);
192
197
  }
@@ -214,7 +219,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
214
219
  if (decl.type === 2 /* DeclarationType.Param */ || decl.type === 3 /* DeclarationType.TypeParam */ || !decl.node) {
215
220
  return false;
216
221
  }
217
- return (0, parseTreeUtils_1.getEvaluationScopeNode)(decl.node).node.nodeType === 36 /* ParseNodeType.Module */;
222
+ return (0, parseTreeUtils_1.getEvaluationScopeNode)(decl.node, nodeInfo).node.nodeType === 36 /* ParseNodeType.Module */;
218
223
  }
219
224
  }
220
225
  // Returns the seed declarations after collection (the original seed plus any declarations this
@@ -238,7 +243,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
238
243
  return this._results;
239
244
  }
240
245
  walk(node) {
241
- if (!this._skipUnreachableCode || !AnalyzerNodeInfo.isCodeUnreachable(node)) {
246
+ if (!this._skipUnreachableCode || !AnalyzerNodeInfo.isCodeUnreachable(node, this._nodeInfo)) {
242
247
  super.walk(node);
243
248
  }
244
249
  }
@@ -258,7 +263,7 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
258
263
  return false;
259
264
  }
260
265
  if (this._declarations.length > 0) {
261
- const declarations = getDeclarationsForNameNode(this._evaluator, node, this._skipUnreachableCode);
266
+ const declarations = getDeclarationsForNameNode(this._evaluator, node, this._skipUnreachableCode, this._nodeInfo);
262
267
  if (declarations && declarations.length > 0) {
263
268
  // Does this name share a declaration with the symbol of interest?
264
269
  if (this._resultsContainsDeclaration(node, declarations)) {
@@ -397,11 +402,11 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
397
402
  if (node.nodeType !== 36 /* ParseNodeType.Module */) {
398
403
  return;
399
404
  }
400
- const dunderAllInfo = AnalyzerNodeInfo.getDunderAllInfo(node);
405
+ const dunderAllInfo = AnalyzerNodeInfo.getDunderAllInfo(node, this._nodeInfo);
401
406
  if (!dunderAllInfo) {
402
407
  return;
403
408
  }
404
- const moduleScope = ScopeUtils.getScopeForNode(node);
409
+ const moduleScope = ScopeUtils.getScopeForNode(node, this._nodeInfo);
405
410
  if (!moduleScope) {
406
411
  return;
407
412
  }
@@ -421,13 +426,13 @@ class DocumentSymbolCollector extends parseTreeWalker_1.ParseTreeWalker {
421
426
  }
422
427
  }
423
428
  exports.DocumentSymbolCollector = DocumentSymbolCollector;
424
- function getDeclarationsForNameNode(evaluator, node, skipUnreachableCode = true) {
429
+ function getDeclarationsForNameNode(evaluator, node, skipUnreachableCode, nodeInfo) {
425
430
  // This can handle symbols brought in by wildcard (import *) as long as the declarations that the symbol collector
426
431
  // compares against point to the actual alias declaration, not one that uses local name (ex, import alias)
427
432
  if (node.parent?.nodeType !== 37 /* ParseNodeType.ModuleName */) {
428
433
  return _getDeclarationsForNonModuleNameNode(evaluator, node, skipUnreachableCode);
429
434
  }
430
- return _getDeclarationsForModuleNameNode(evaluator, node);
435
+ return _getDeclarationsForModuleNameNode(evaluator, node, nodeInfo);
431
436
  }
432
437
  function addDeclarationIfUnique(declarations, itemToAdd) {
433
438
  for (const def of declarations) {
@@ -470,9 +475,68 @@ function _getDeclarationsForNonModuleNameNode(evaluator, node, skipUnreachableCo
470
475
  }
471
476
  (0, collectionUtils_1.appendArray)(decls, evaluator.getDeclInfoForNameNode(importNode.d.module.d.nameParts[0], skipUnreachableCode)?.decls || []);
472
477
  }
478
+ for (const subclassDecl of _getSubclassMemberVariableDeclarations(evaluator, node, decls)) {
479
+ addDeclarationIfUnique(decls, subclassDecl);
480
+ }
473
481
  return decls;
474
482
  }
475
- function _getDeclarationsForModuleNameNode(evaluator, node) {
483
+ // Handles the specific case where a member-access name (e.g. `self.a`) resolves to a base *protocol*
484
+ // class's declared variable instead of the subclass's own member-access assignment of the same name.
485
+ // `getDeclInfoForNameNode` prefers the protocol's declared-type variable, so it returns only the protocol
486
+ // declaration and hides the subclass's own (regular) variable from reference collection. Only when the
487
+ // declarations we already resolved (`decls`) include such a protocol variable do we look up the subclass's
488
+ // own member-access variable and return it so both are matched.
489
+ function _getSubclassMemberVariableDeclarations(evaluator, node, decls) {
490
+ const memberAccess = node.parent;
491
+ if (memberAccess?.nodeType !== 35 /* ParseNodeType.MemberAccess */ || memberAccess.d.member !== node) {
492
+ return [];
493
+ }
494
+ // Bail out unless a resolved declaration is a protocol member variable. Every other member-access
495
+ // name already has the right declaration in `decls`, so it needs no extra work.
496
+ if (!decls.some((d) => _isVariableInProtocolClass(evaluator, d))) {
497
+ return [];
498
+ }
499
+ const leftType = evaluator.getType(memberAccess.d.leftExpr);
500
+ if (!leftType) {
501
+ return [];
502
+ }
503
+ const result = [];
504
+ (0, typeUtils_1.doForEachSubtype)(evaluator.makeTopLevelTypeVarsConcrete(leftType), (subtype) => {
505
+ subtype = evaluator.makeTopLevelTypeVarsConcrete(subtype);
506
+ const ownMember = (0, types_1.isInstantiableClass)(subtype)
507
+ ? (0, typeUtils_1.lookUpClassMember)(subtype, node.d.value, 2 /* MemberAccessFlags.SkipBaseClasses */)
508
+ : (0, types_1.isClassInstance)(subtype)
509
+ ? (0, typeUtils_1.lookUpObjectMember)(subtype, node.d.value, 2 /* MemberAccessFlags.SkipBaseClasses */)
510
+ : undefined;
511
+ if (!ownMember) {
512
+ return;
513
+ }
514
+ // The subclass's own member must be a regular member-access variable (e.g. `self.a = 3`),
515
+ // distinct from the inherited protocol annotation. This is why a directly-inherited class-body
516
+ // attribute (`class A: a = 1` -> `class B(A): ...`) is intentionally NOT linked here while an
517
+ // unrelated instance attribute (`self.a = ...`) is: a class-body variable lives in the class
518
+ // dict (one shared slot already reachable through normal inheritance), whereas a member-access
519
+ // variable lives in the instance `__dict__`, so the subclass's own `self.a` is a distinct
520
+ // declaration that reference collection would otherwise miss.
521
+ ownMember.symbol
522
+ .getDeclarations()
523
+ .filter((d) => (0, declaration_1.isVariableDeclaration)(d) && d.isDefinedByMemberAccess)
524
+ .forEach((d) => addDeclarationIfUnique(result, d));
525
+ });
526
+ return result;
527
+ }
528
+ // True when `decl` is a variable declared directly in a class that is *itself* a protocol: a
529
+ // class-body variable annotation (`a: int`, not assigned by member access) whose enclosing class is
530
+ // a protocol. Async twin: `isVariableInProtocolClassAsync` in asyncDocumentSymbolCollector.
531
+ function _isVariableInProtocolClass(evaluator, decl) {
532
+ if (!(0, declaration_1.isVariableDeclaration)(decl) || decl.isDefinedByMemberAccess) {
533
+ return false;
534
+ }
535
+ const enclosingClass = (0, parseTreeUtils_1.getEnclosingClass)(decl.node);
536
+ const classResults = enclosingClass ? evaluator.getTypeOfClass(enclosingClass) : undefined;
537
+ return !!classResults && types_1.ClassType.isProtocolClass(classResults.classType);
538
+ }
539
+ function _getDeclarationsForModuleNameNode(evaluator, node, nodeInfo) {
476
540
  (0, debug_1.assert)(node.parent?.nodeType === 37 /* ParseNodeType.ModuleName */);
477
541
  // We don't have symbols corresponding to ModuleName in our system since those
478
542
  // are not referenceable. but in "find all reference", we want to match those
@@ -508,7 +572,7 @@ function _getDeclarationsForModuleNameNode(evaluator, node) {
508
572
  // And we also need to re-use "decls for X" binder has created
509
573
  // so that it matches with decls type evaluator returns for "references for X".
510
574
  // ex) import X or from .X import ... in init file and etc.
511
- const symbolWithScope = ScopeUtils.getScopeForNode(node)?.lookUpSymbolRecursive(importName);
575
+ const symbolWithScope = ScopeUtils.getScopeForNode(node, nodeInfo)?.lookUpSymbolRecursive(importName);
512
576
  if (symbolWithScope && moduleName.d.nameParts.length === 1) {
513
577
  let declsFromSymbol = [];
514
578
  (0, collectionUtils_1.appendArray)(declsFromSymbol, symbolWithScope.symbol.getDeclarations().filter((d) => (0, declaration_1.isAliasDeclaration)(d)));
@@ -1 +1 @@
1
- {"version":3,"file":"documentSymbolCollector.js","sourceRoot":"","sources":["../../../../../src/languageService/documentSymbolCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"documentSymbolCollector.js","sourceRoot":"","sources":["../../../../../src/languageService/documentSymbolCollector.ts"],"names":[],"mappings":"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"}
@@ -48,11 +48,12 @@ class DocumentSymbolProvider {
48
48
  if (!parseResults) {
49
49
  return symbolList;
50
50
  }
51
- const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(parseResults.parserOutput.parseTree);
51
+ const nodeInfo = (0, analyzerNodeInfo_1.getInfoReader)(this.program);
52
+ const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(parseResults.parserOutput.parseTree, nodeInfo);
52
53
  if (!fileInfo) {
53
54
  return symbolList;
54
55
  }
55
- const indexSymbolData = symbolIndexer_1.SymbolIndexer.indexSymbols(fileInfo, parseResults, this._indexOptions, this._token);
56
+ const indexSymbolData = symbolIndexer_1.SymbolIndexer.indexSymbols(fileInfo, parseResults, this._indexOptions, nodeInfo, this._token);
56
57
  this.appendDocumentSymbolsRecursive(indexSymbolData, symbolList);
57
58
  return symbolList;
58
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"documentSymbolProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/documentSymbolProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAaH,oDAYC;AAvBD,iEAAuG;AAEvG,mEAA2D;AAC3D,mEAA2E;AAI3E,qDAAkE;AAElE,mDAA+E;AAE/E,SAAgB,oBAAoB,CAChC,OAAoB,EACpB,GAAQ,EACR,UAA4B;IAE5B,MAAM,WAAW,GAAwB,EAAE,CAAC;IAE5C,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAC9B,6BAA6B,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAa,sBAAsB;IAG/B,YACuB,OAAoB,EACpB,GAAQ,EACV,kCAA2C,EAC3C,aAA2B,EAC3B,MAAyB;QAJvB,YAAO,GAAP,OAAO,CAAa;QACpB,QAAG,GAAH,GAAG,CAAK;QACV,uCAAkC,GAAlC,kCAAkC,CAAS;QAC3C,kBAAa,GAAb,aAAa,CAAc;QAC3B,WAAM,GAAN,MAAM,CAAmB;QAE1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAC1C,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,OAAO,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IAES,sBAAsB;QAC5B,MAAM,UAAU,GAAqB,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,8BAAW,EAAC,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,UAAU,CAAC;QACtB,CAAC;QAED,MAAM,eAAe,GAAG,6BAAa,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5G,IAAI,CAAC,8BAA8B,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAEjE,OAAO,UAAU,CAAC;IACtB,CAAC;IAES,8BAA8B,CACpC,eAA8C,EAC9C,UAA4B;QAE5B,IAAA,gDAA4B,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,SAAS;YACb,CAAC;YAED,wDAAwD;YACxD,8DAA8D;YAC9D,aAAa;YACb,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACnB,SAAS;YACb,CAAC;YAED,MAAM,QAAQ,GAAqB,EAAE,CAAC;YACtC,IAAI,CAAC,8BAA8B,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEnE,MAAM,UAAU,GAAmB;gBAC/B,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAM;gBACxB,cAAc,EAAE,UAAU,CAAC,cAAe;gBAC1C,QAAQ,EAAE,QAAS;aACtB,CAAC;YAEF,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;CACJ;AAhFD,wDAgFC;AAED,SAAS,6BAA6B,CAClC,EAAsB,EACtB,WAAgC,EAChC,WAAgB,EAChB,MAAsB,EACtB,MAAuB;IAEvB,MAAM,UAAU,GAAsB;QAClC,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,QAAQ,EAAE,gCAAQ,CAAC,MAAM,CAAC,IAAA,mCAAwB,EAAC,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC;KACrF,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACT,UAAU,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE7B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClC,6BAA6B,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"documentSymbolProvider.js","sourceRoot":"","sources":["../../../../../src/languageService/documentSymbolProvider.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ exports.FileWatcherDynamicFeature = void 0;
9
9
  * implementation of file watcher feature dynamic registration
10
10
  */
11
11
  const vscode_languageserver_1 = require("vscode-languageserver");
12
+ const extraPathGlob_1 = require("../common/extraPathGlob");
13
+ const serviceKeys_1 = require("../common/serviceKeys");
12
14
  const uriUtils_1 = require("../common/uri/uriUtils");
13
15
  const dynamicFeature_1 = require("./dynamicFeature");
14
16
  const core_1 = require("../common/core");
@@ -45,12 +47,37 @@ class FileWatcherDynamicFeature extends dynamicFeature_1.DynamicFeature {
45
47
  .getNonDefaultWorkspaces()
46
48
  .map((w) => w.rootUri)
47
49
  .filter(core_1.isDefined));
48
- foldersToWatch.forEach((p) => {
50
+ // Wildcard `extraPaths` entries are watched by their original glob (below)
51
+ // rather than by their already-expanded leaf directories, so drop any
52
+ // deduped folder that one of those globs already covers. The glob specs are
53
+ // retained on each workspace's config options (`extraPathGlobFileSpecs`).
54
+ const extraPathGlobTargets = this._workspaceFactory
55
+ .getNonDefaultWorkspaces()
56
+ .flatMap((w) => (0, extraPathGlob_1.getExtraPathWatchTargets)(w.service.getConfigOptions().extraPathGlobFileSpecs, w.service.serviceProvider.get(serviceKeys_1.ServiceKeys.caseSensitivityDetector)));
57
+ foldersToWatch
58
+ .filter((p) => !extraPathGlobTargets.some((t) => (0, extraPathGlob_1.extraPathWatchTargetCovers)(t, p)))
59
+ .forEach((p) => {
49
60
  const globPattern = (0, uriUtils_1.isFile)(this._fs, p, /* treatZipDirectoryAsFile */ true)
50
61
  ? { baseUri: p.getDirectory().toString(), pattern: p.fileName }
51
62
  : { baseUri: p.toString(), pattern: '**' };
52
63
  watchers.push({ globPattern, kind: watchKind });
53
64
  });
65
+ // Watch the original wildcard `extraPaths` globs. The `dirPattern` matches the
66
+ // directories themselves; append `/**` so files *beneath* every matched directory are
67
+ // watched too (mirroring the `**` used for expanded folders). A pattern that already
68
+ // ends in `**` recurses on its own, so don't append a redundant second `/**` (e.g.
69
+ // `vendor/**`). This observes creations/deletions once a path matches the full pattern
70
+ // (e.g. a file appearing under an existing `*/src`). A brand-new intermediate directory
71
+ // that does not yet match the pattern (e.g. the `*` segment created before its `src`
72
+ // child exists) is instead picked up on the next configuration reload, which re-expands
73
+ // the globs.
74
+ extraPathGlobTargets.forEach((t) => {
75
+ const pattern = t.dirPattern.endsWith('**') ? t.dirPattern : `${t.dirPattern}/**`;
76
+ watchers.push({
77
+ globPattern: { baseUri: t.root.toString(), pattern },
78
+ kind: watchKind,
79
+ });
80
+ });
54
81
  }
55
82
  return this._connection.client.register(vscode_languageserver_1.DidChangeWatchedFilesNotification.type, { watchers });
56
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fileWatcherDynamicFeature.js","sourceRoot":"","sources":["../../../../../src/languageService/fileWatcherDynamicFeature.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,iEAM+B;AAE/B,qDAAoE;AACpE,qDAAkD;AAElD,yCAA2C;AAC3C,qDAAsD;AAEtD,MAAa,yBAA0B,SAAQ,+BAAc;IACzD,YACqB,WAAuB,EACvB,mCAA4C,EAC5C,GAAe,EACf,iBAAoC;QAErD,KAAK,CAAC,cAAc,CAAC,CAAC;QALL,gBAAW,GAAX,WAAW,CAAY;QACvB,wCAAmC,GAAnC,mCAAmC,CAAS;QAC5C,QAAG,GAAH,GAAG,CAAY;QACf,sBAAiB,GAAjB,iBAAiB,CAAmB;IAGzD,CAAC;IAEkB,eAAe;QAC9B,MAAM,SAAS,GAAG,iCAAS,CAAC,MAAM,GAAG,iCAAS,CAAC,MAAM,GAAG,iCAAS,CAAC,MAAM,CAAC;QAEzE,4DAA4D;QAC5D,MAAM,QAAQ,GAAwB;YAClC,EAAE,WAAW,EAAE,MAAM,2BAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACxD,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;SACzC,CAAC;QAEF,4CAA4C;QAC5C,IAAI,IAAI,CAAC,mCAAmC,EAAE,CAAC;YAC3C,0CAA0C;YAC1C,iFAAiF;YACjF,cAAc;YACd,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC5E,GAAG,CAAC,CAAC,kBAAkB;gBACvB,GAAG,CAAC,CAAC,OAAO;qBACP,gBAAgB,EAAE;qBAClB,wBAAwB,EAAE;qBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;qBACxB,IAAI,EAAE;aACd,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,IAAA,6BAAkB,EACrC,WAAW,EACX,IAAI,CAAC,iBAAiB;iBACjB,uBAAuB,EAAE;iBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;iBACrB,MAAM,CAAC,gBAAS,CAAC,CACzB,CAAC;YAEF,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACzB,MAAM,WAAW,GAAG,IAAA,iBAAM,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,6BAA6B,CAAC,IAAI,CAAC;oBACvE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;oBAC/D,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAE/C,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,yDAAiC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClG,CAAC;CACJ;AApDD,8DAoDC"}
1
+ {"version":3,"file":"fileWatcherDynamicFeature.js","sourceRoot":"","sources":["../../../../../src/languageService/fileWatcherDynamicFeature.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ export interface HoverResults {
19
19
  }
20
20
  export declare function convertHoverResults(hoverResults: HoverResults | null, format: MarkupKind): Hover | null;
21
21
  export declare function addParameterResultsPart(serviceProvider: ServiceProvider, paramNameNode: NameNode, resolvedDecl: Declaration | undefined, format: MarkupKind, parts: HoverTextPart[]): void;
22
- export declare function addDocumentationResultsPart(serviceProvider: ServiceProvider, docString: string | undefined, format: MarkupKind, parts: HoverTextPart[], resolvedDecl: Declaration | undefined, forceLiteralOverride?: boolean): void;
22
+ export declare function addDocumentationResultsPart(serviceProvider: ServiceProvider, docString: string | undefined, format: MarkupKind, parts: HoverTextPart[], resolvedDecl: Declaration | undefined, forceLiteralOverride?: boolean, sourceFileUri?: Uri): boolean;
23
23
  export declare function getVariableTypeText(evaluator: TypeEvaluator, declaration: VariableDeclaration | undefined, name: string, type: Type, typeNode: ExpressionNode, functionSignatureDisplay: SignatureDisplayType, sourceMapper?: SourceMapper): string;
24
24
  export declare class HoverProvider {
25
25
  private readonly _program;
@@ -37,6 +37,7 @@ export declare class HoverProvider {
37
37
  private _getHoverResult;
38
38
  private _addResultsForDeclaration;
39
39
  private _addResultsForSynthesizedType;
40
+ private _addDocumentationForSynthesizedTypes;
40
41
  private _tryAddPartsForTypedDictKey;
41
42
  private _addInitOrNewMethodInsteadIfCallNode;
42
43
  private _getType;
@@ -49,6 +49,7 @@ exports.addParameterResultsPart = addParameterResultsPart;
49
49
  exports.addDocumentationResultsPart = addDocumentationResultsPart;
50
50
  exports.getVariableTypeText = getVariableTypeText;
51
51
  const vscode_languageserver_1 = require("vscode-languageserver");
52
+ const AnalyzerNodeInfo = __importStar(require("../analyzer/analyzerNodeInfo"));
52
53
  const declaration_1 = require("../analyzer/declaration");
53
54
  const ParseTreeUtils = __importStar(require("../analyzer/parseTreeUtils"));
54
55
  const typeDocStringUtils_1 = require("../analyzer/typeDocStringUtils");
@@ -136,24 +137,34 @@ function addReturnResultsPart(serviceProvider, functionNode, format, parts) {
136
137
  text: returnDoc,
137
138
  });
138
139
  }
139
- function addDocumentationResultsPart(serviceProvider, docString, format, parts, resolvedDecl, forceLiteralOverride) {
140
+ // Returns true only when non-empty rendered documentation is appended to parts.
141
+ // A source docstring can still return false when rendering produces no content.
142
+ function addDocumentationResultsPart(serviceProvider, docString, format, parts, resolvedDecl, forceLiteralOverride, sourceFileUri) {
140
143
  if (!docString) {
141
- return;
144
+ return false;
142
145
  }
143
146
  if (format === vscode_languageserver_1.MarkupKind.Markdown) {
144
- const forceLiteral = forceLiteralOverride ?? (0, typeDocStringUtils_1.isBuiltInModule)(resolvedDecl?.uri);
147
+ const documentationUri = resolvedDecl?.uri ?? sourceFileUri;
148
+ const forceLiteral = forceLiteralOverride ?? (0, typeDocStringUtils_1.isBuiltInModule)(documentationUri);
145
149
  const markDown = serviceProvider
146
150
  .docStringService()
147
- .convertDocStringToMarkdown(docString, forceLiteral, resolvedDecl?.uri);
148
- if (parts.length > 0 && markDown.length > 0) {
151
+ .convertDocStringToMarkdown(docString, forceLiteral, documentationUri);
152
+ if (!markDown.trim()) {
153
+ return false;
154
+ }
155
+ if (parts.length > 0) {
149
156
  parts.push({ text: getDocumentationSeparator(parts[parts.length - 1]) });
150
157
  }
151
158
  parts.push({ text: markDown, python: false });
152
- return;
159
+ return true;
153
160
  }
154
161
  if (format === vscode_languageserver_1.MarkupKind.PlainText) {
155
- parts.push({ text: serviceProvider.docStringService().convertDocStringToPlainText(docString), python: false });
156
- return;
162
+ const plainText = serviceProvider.docStringService().convertDocStringToPlainText(docString);
163
+ if (!plainText.trim()) {
164
+ return false;
165
+ }
166
+ parts.push({ text: plainText, python: false });
167
+ return true;
157
168
  }
158
169
  (0, debug_1.fail)(`Unsupported markup type: ${format}`);
159
170
  }
@@ -237,7 +248,7 @@ class HoverProvider {
237
248
  if (offset === undefined) {
238
249
  return null;
239
250
  }
240
- const node = ParseTreeUtils.findNodeByOffset(this._parseResults.parserOutput.parseTree, offset);
251
+ const node = ParseTreeUtils.findNodeByOffset(this._parseResults.parserOutput.parseTree, offset, AnalyzerNodeInfo.getInfoReader(this._program));
241
252
  if (node === undefined) {
242
253
  return null;
243
254
  }
@@ -260,7 +271,11 @@ class HoverProvider {
260
271
  declInfo?.synthesizedTypes.forEach((type) => {
261
272
  this._addResultsForSynthesizedType(results.parts, type, nameNode);
262
273
  });
263
- this._addDocumentationPart(results.parts, node, /* resolvedDecl */ undefined);
274
+ const documentationAdded = this._addDocumentationPart(results.parts, node,
275
+ /* resolvedDecl */ undefined);
276
+ if (!documentationAdded) {
277
+ this._addDocumentationForSynthesizedTypes(results.parts, declInfo.synthesizedTypes);
278
+ }
264
279
  }
265
280
  else if (!node.parent || node.parent.nodeType !== 37 /* ParseNodeType.ModuleName */) {
266
281
  // If we had no declaration, see if we can provide a minimal tooltip. We'll skip
@@ -450,6 +465,22 @@ class HoverProvider {
450
465
  this._addResultsPart(parts, typeText, /* python */ true);
451
466
  }
452
467
  }
468
+ _addDocumentationForSynthesizedTypes(parts, synthesizedTypes) {
469
+ for (const typeInfo of synthesizedTypes) {
470
+ if (!typeInfo.node) {
471
+ continue;
472
+ }
473
+ const docNode = ParseTreeUtils.getVariableDocStringNode(typeInfo.node);
474
+ if (!docNode) {
475
+ continue;
476
+ }
477
+ const docString = docNode.d.strings.map((stringNode) => stringNode.d.value).join('');
478
+ const sourceFileUri = AnalyzerNodeInfo.getFileInfo(typeInfo.node, AnalyzerNodeInfo.getInfoReader(this._program))?.fileUri;
479
+ if (addDocumentationResultsPart(this._program.serviceProvider, docString, this._format, parts, undefined, undefined, sourceFileUri)) {
480
+ return;
481
+ }
482
+ }
483
+ }
453
484
  _tryAddPartsForTypedDictKey(node, type, parts) {
454
485
  // If the expected type is a TypedDict and the current node is a key entry then we can provide a tooltip
455
486
  // with the type of the TypedDict key and its docstring, if available.
@@ -499,9 +530,11 @@ class HoverProvider {
499
530
  if (result.methodType && (0, types_1.isFunctionOrOverloaded)(result.methodType)) {
500
531
  this._addResultsPart(parts, (0, tooltipUtils_1.getConstructorTooltip)(node.d.value, result.methodType, this._evaluator, this._functionSignatureDisplay),
501
532
  /* python */ true);
502
- const addedDoc = this._addDocumentationPartForType(parts, result.methodType, declaration);
503
- if (!addedDoc) {
504
- this._addDocumentationPartForType(parts, result.classType, declaration);
533
+ // Select the constructor docstring via the unified component (Phase 1 constructor-method
534
+ // docstrings across the MRO, then Phase 2 the class docstring).
535
+ const docInfo = (0, tooltipUtils_1.getConstructorDocInfo)(result.classType, result.methodType, declaration, this._sourceMapper, this._evaluator);
536
+ if (docInfo?.text) {
537
+ addDocumentationResultsPart(this._program.serviceProvider, docInfo.text, this._format, parts, docInfo.sourceDecl ?? declaration, docInfo.forceLiteral);
505
538
  }
506
539
  return true;
507
540
  }
@@ -518,14 +551,13 @@ class HoverProvider {
518
551
  }
519
552
  _addDocumentationPart(parts, node, resolvedDecl) {
520
553
  const type = this._getType(node);
521
- this._addDocumentationPartForType(parts, type, resolvedDecl, node.d.value);
554
+ return this._addDocumentationPartForType(parts, type, resolvedDecl, node.d.value);
522
555
  }
523
556
  _addDocumentationPartForType(parts, type, resolvedDecl, name) {
524
557
  const documentation = (0, tooltipUtils_1.getDocumentationPartsForTypeAndDeclWithSource)(this._sourceMapper, type, resolvedDecl, this._evaluator, {
525
558
  name,
526
559
  });
527
- addDocumentationResultsPart(this._program.serviceProvider, documentation?.text, this._format, parts, resolvedDecl, documentation?.forceLiteral);
528
- return !!documentation?.text;
560
+ return addDocumentationResultsPart(this._program.serviceProvider, documentation?.text, this._format, parts, resolvedDecl, documentation?.forceLiteral);
529
561
  }
530
562
  _addResultsPart(parts, text, python = false) {
531
563
  parts.push({