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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/analyzer/analyzerNodeInfo.d.ts +119 -24
  2. package/dist/analyzer/analyzerNodeInfo.js +408 -89
  3. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +6 -3
  5. package/dist/analyzer/binder.js +157 -70
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/checker.d.ts +5 -2
  8. package/dist/analyzer/checker.js +92 -34
  9. package/dist/analyzer/checker.js.map +1 -1
  10. package/dist/analyzer/codeFlowEngine.d.ts +2 -1
  11. package/dist/analyzer/codeFlowEngine.js +12 -10
  12. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  13. package/dist/analyzer/codeFlowUtils.d.ts +2 -1
  14. package/dist/analyzer/codeFlowUtils.js +2 -3
  15. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  16. package/dist/analyzer/constraintSolver.js +47 -7
  17. package/dist/analyzer/constraintSolver.js.map +1 -1
  18. package/dist/analyzer/constructors.js +18 -8
  19. package/dist/analyzer/constructors.js.map +1 -1
  20. package/dist/analyzer/dataClasses.d.ts +6 -4
  21. package/dist/analyzer/dataClasses.js +119 -75
  22. package/dist/analyzer/dataClasses.js.map +1 -1
  23. package/dist/analyzer/declarationUtils.d.ts +2 -1
  24. package/dist/analyzer/declarationUtils.js +2 -2
  25. package/dist/analyzer/declarationUtils.js.map +1 -1
  26. package/dist/analyzer/decorators.d.ts +5 -4
  27. package/dist/analyzer/decorators.js +38 -21
  28. package/dist/analyzer/decorators.js.map +1 -1
  29. package/dist/analyzer/enums.d.ts +5 -4
  30. package/dist/analyzer/enums.js +11 -10
  31. package/dist/analyzer/enums.js.map +1 -1
  32. package/dist/analyzer/importResolver.d.ts +1 -1
  33. package/dist/analyzer/importResolver.js +5 -3
  34. package/dist/analyzer/importResolver.js.map +1 -1
  35. package/dist/analyzer/importStatementUtils.d.ts +3 -1
  36. package/dist/analyzer/importStatementUtils.js +14 -7
  37. package/dist/analyzer/importStatementUtils.js.map +1 -1
  38. package/dist/analyzer/namedTuples.d.ts +2 -1
  39. package/dist/analyzer/namedTuples.js +3 -4
  40. package/dist/analyzer/namedTuples.js.map +1 -1
  41. package/dist/analyzer/operations.d.ts +3 -2
  42. package/dist/analyzer/operations.js +8 -8
  43. package/dist/analyzer/operations.js.map +1 -1
  44. package/dist/analyzer/packageTypeVerifier.js +2 -2
  45. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  46. package/dist/analyzer/parseTreeUtils.d.ts +13 -11
  47. package/dist/analyzer/parseTreeUtils.js +62 -36
  48. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  49. package/dist/analyzer/parseTreeWalker.d.ts +7 -2
  50. package/dist/analyzer/parseTreeWalker.js +29 -175
  51. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  52. package/dist/analyzer/patternMatching.d.ts +4 -3
  53. package/dist/analyzer/patternMatching.js +47 -43
  54. package/dist/analyzer/patternMatching.js.map +1 -1
  55. package/dist/analyzer/program.d.ts +12 -0
  56. package/dist/analyzer/program.js +235 -29
  57. package/dist/analyzer/program.js.map +1 -1
  58. package/dist/analyzer/properties.d.ts +4 -3
  59. package/dist/analyzer/properties.js +7 -8
  60. package/dist/analyzer/properties.js.map +1 -1
  61. package/dist/analyzer/protocols.js +14 -2
  62. package/dist/analyzer/protocols.js.map +1 -1
  63. package/dist/analyzer/scope.d.ts +3 -0
  64. package/dist/analyzer/scope.js +10 -0
  65. package/dist/analyzer/scope.js.map +1 -1
  66. package/dist/analyzer/scopeUtils.d.ts +4 -3
  67. package/dist/analyzer/scopeUtils.js +8 -8
  68. package/dist/analyzer/scopeUtils.js.map +1 -1
  69. package/dist/analyzer/sentinel.d.ts +2 -1
  70. package/dist/analyzer/sentinel.js +2 -3
  71. package/dist/analyzer/sentinel.js.map +1 -1
  72. package/dist/analyzer/service.js +28 -10
  73. package/dist/analyzer/service.js.map +1 -1
  74. package/dist/analyzer/sourceEnumerator.d.ts +5 -0
  75. package/dist/analyzer/sourceEnumerator.js +57 -3
  76. package/dist/analyzer/sourceEnumerator.js.map +1 -1
  77. package/dist/analyzer/sourceFile.d.ts +12 -6
  78. package/dist/analyzer/sourceFile.js +73 -50
  79. package/dist/analyzer/sourceFile.js.map +1 -1
  80. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -0
  81. package/dist/analyzer/sourceFileInfoUtils.js +8 -0
  82. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  83. package/dist/analyzer/sourceMapper.d.ts +4 -1
  84. package/dist/analyzer/sourceMapper.js +14 -8
  85. package/dist/analyzer/sourceMapper.js.map +1 -1
  86. package/dist/analyzer/symbol.d.ts +4 -1
  87. package/dist/analyzer/symbol.js +8 -0
  88. package/dist/analyzer/symbol.js.map +1 -1
  89. package/dist/analyzer/testWalker.js +2 -1
  90. package/dist/analyzer/testWalker.js.map +1 -1
  91. package/dist/analyzer/tracePrinter.d.ts +2 -1
  92. package/dist/analyzer/tracePrinter.js +2 -2
  93. package/dist/analyzer/tracePrinter.js.map +1 -1
  94. package/dist/analyzer/tuples.d.ts +3 -2
  95. package/dist/analyzer/tuples.js +5 -5
  96. package/dist/analyzer/tuples.js.map +1 -1
  97. package/dist/analyzer/typeCacheUtils.d.ts +6 -2
  98. package/dist/analyzer/typeCacheUtils.js +16 -37
  99. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  100. package/dist/analyzer/typeDocStringUtils.d.ts +5 -7
  101. package/dist/analyzer/typeDocStringUtils.js +229 -132
  102. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  103. package/dist/analyzer/typeEvaluator.d.ts +2 -0
  104. package/dist/analyzer/typeEvaluator.js +1280 -302
  105. package/dist/analyzer/typeEvaluator.js.map +1 -1
  106. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
  107. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  108. package/dist/analyzer/typeGuards.d.ts +3 -2
  109. package/dist/analyzer/typeGuards.js +37 -33
  110. package/dist/analyzer/typeGuards.js.map +1 -1
  111. package/dist/analyzer/typeStubWriter.js +12 -9
  112. package/dist/analyzer/typeStubWriter.js.map +1 -1
  113. package/dist/analyzer/typeUtils.js +3 -1
  114. package/dist/analyzer/typeUtils.js.map +1 -1
  115. package/dist/analyzer/typedDicts.d.ts +4 -3
  116. package/dist/analyzer/typedDicts.js +15 -14
  117. package/dist/analyzer/typedDicts.js.map +1 -1
  118. package/dist/analyzer/types.d.ts +11 -1
  119. package/dist/analyzer/types.js +48 -0
  120. package/dist/analyzer/types.js.map +1 -1
  121. package/dist/commands/dumpFileDebugInfoCommand.js +1 -1
  122. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  123. package/dist/common/collectionUtils.js +15 -6
  124. package/dist/common/collectionUtils.js.map +1 -1
  125. package/dist/common/commandLineOptions.d.ts +1 -0
  126. package/dist/common/commandLineOptions.js.map +1 -1
  127. package/dist/common/configOptions.d.ts +4 -1
  128. package/dist/common/configOptions.js +68 -12
  129. package/dist/common/configOptions.js.map +1 -1
  130. package/dist/common/envVarUtils.d.ts +1 -0
  131. package/dist/common/envVarUtils.js +41 -10
  132. package/dist/common/envVarUtils.js.map +1 -1
  133. package/dist/common/extensibility.d.ts +3 -1
  134. package/dist/common/extensibility.js.map +1 -1
  135. package/dist/common/extraPathGlob.d.ts +12 -0
  136. package/dist/common/extraPathGlob.js +315 -0
  137. package/dist/common/extraPathGlob.js.map +1 -0
  138. package/dist/common/host.d.ts +2 -0
  139. package/dist/common/host.js.map +1 -1
  140. package/dist/common/languageServerInterface.d.ts +2 -1
  141. package/dist/common/languageServerInterface.js.map +1 -1
  142. package/dist/common/pathConsts.d.ts +1 -0
  143. package/dist/common/pathConsts.js +11 -1
  144. package/dist/common/pathConsts.js.map +1 -1
  145. package/dist/common/processUtils.d.ts +4 -2
  146. package/dist/common/processUtils.js +3 -0
  147. package/dist/common/processUtils.js.map +1 -1
  148. package/dist/common/stringUtils.d.ts +6 -0
  149. package/dist/common/stringUtils.js +87 -5
  150. package/dist/common/stringUtils.js.map +1 -1
  151. package/dist/common/textEditTracker.d.ts +3 -1
  152. package/dist/common/textEditTracker.js +8 -6
  153. package/dist/common/textEditTracker.js.map +1 -1
  154. package/dist/common/textRangeCollection.d.ts +1 -0
  155. package/dist/common/textRangeCollection.js +32 -1
  156. package/dist/common/textRangeCollection.js.map +1 -1
  157. package/dist/common/uri/uriUtils.d.ts +3 -0
  158. package/dist/common/uri/uriUtils.js +65 -15
  159. package/dist/common/uri/uriUtils.js.map +1 -1
  160. package/dist/fileSystemMapping.d.ts +10 -0
  161. package/dist/fileSystemMapping.js +176 -0
  162. package/dist/fileSystemMapping.js.map +1 -0
  163. package/dist/languageService/analyzerServiceExecutor.js +2 -1
  164. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  165. package/dist/languageService/autoImporter.d.ts +1 -0
  166. package/dist/languageService/autoImporter.js +32 -5
  167. package/dist/languageService/autoImporter.js.map +1 -1
  168. package/dist/languageService/callHierarchyProvider.d.ts +7 -0
  169. package/dist/languageService/callHierarchyProvider.js +97 -11
  170. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  171. package/dist/languageService/completionProvider.d.ts +30 -8
  172. package/dist/languageService/completionProvider.js +298 -93
  173. package/dist/languageService/completionProvider.js.map +1 -1
  174. package/dist/languageService/definitionProvider.js +7 -6
  175. package/dist/languageService/definitionProvider.js.map +1 -1
  176. package/dist/languageService/documentHighlightProvider.js +2 -1
  177. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  178. package/dist/languageService/documentSymbolCollector.d.ts +3 -1
  179. package/dist/languageService/documentSymbolCollector.js +78 -14
  180. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  181. package/dist/languageService/documentSymbolProvider.js +3 -2
  182. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  183. package/dist/languageService/fileWatcherDynamicFeature.js +28 -1
  184. package/dist/languageService/fileWatcherDynamicFeature.js.map +1 -1
  185. package/dist/languageService/hoverProvider.d.ts +2 -1
  186. package/dist/languageService/hoverProvider.js +48 -16
  187. package/dist/languageService/hoverProvider.js.map +1 -1
  188. package/dist/languageService/importSorter.d.ts +3 -1
  189. package/dist/languageService/importSorter.js +4 -2
  190. package/dist/languageService/importSorter.js.map +1 -1
  191. package/dist/languageService/importStatementCandidates.js +4 -2
  192. package/dist/languageService/importStatementCandidates.js.map +1 -1
  193. package/dist/languageService/quickActions.js +2 -1
  194. package/dist/languageService/quickActions.js.map +1 -1
  195. package/dist/languageService/referencesProvider.js +12 -5
  196. package/dist/languageService/referencesProvider.js.map +1 -1
  197. package/dist/languageService/signatureHelpProvider.d.ts +3 -0
  198. package/dist/languageService/signatureHelpProvider.js +56 -18
  199. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  200. package/dist/languageService/symbolIndexer.d.ts +2 -1
  201. package/dist/languageService/symbolIndexer.js +7 -7
  202. package/dist/languageService/symbolIndexer.js.map +1 -1
  203. package/dist/languageService/tooltipUtils.d.ts +1 -1
  204. package/dist/languageService/tooltipUtils.js +103 -35
  205. package/dist/languageService/tooltipUtils.js.map +1 -1
  206. package/dist/languageService/workspaceSymbolProvider.js +3 -2
  207. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  208. package/dist/localization/localize.d.ts +12 -0
  209. package/dist/localization/localize.js +14 -0
  210. package/dist/localization/localize.js.map +1 -1
  211. package/dist/localization/package.nls.cs.json +11 -0
  212. package/dist/localization/package.nls.de.json +11 -0
  213. package/dist/localization/package.nls.en-us.json +18 -0
  214. package/dist/localization/package.nls.es.json +11 -0
  215. package/dist/localization/package.nls.fr.json +11 -0
  216. package/dist/localization/package.nls.it.json +11 -0
  217. package/dist/localization/package.nls.ja.json +11 -0
  218. package/dist/localization/package.nls.ko.json +11 -0
  219. package/dist/localization/package.nls.pl.json +11 -0
  220. package/dist/localization/package.nls.pt-br.json +11 -0
  221. package/dist/localization/package.nls.qps-ploc.json +11 -0
  222. package/dist/localization/package.nls.ru.json +11 -0
  223. package/dist/localization/package.nls.tr.json +11 -0
  224. package/dist/localization/package.nls.zh-cn.json +12 -1
  225. package/dist/localization/package.nls.zh-tw.json +13 -2
  226. package/dist/parser/parseNodes.d.ts +85 -80
  227. package/dist/parser/parseNodes.js +182 -159
  228. package/dist/parser/parseNodes.js.map +1 -1
  229. package/dist/parser/parseTreeUtils.d.ts +3 -0
  230. package/dist/parser/parseTreeUtils.js +209 -0
  231. package/dist/parser/parseTreeUtils.js.map +1 -0
  232. package/dist/parser/parser.d.ts +16 -6
  233. package/dist/parser/parser.js +210 -144
  234. package/dist/parser/parser.js.map +1 -1
  235. package/dist/parser/stringAnnotationInfo.d.ts +16 -0
  236. package/dist/parser/stringAnnotationInfo.js +26 -0
  237. package/dist/parser/stringAnnotationInfo.js.map +1 -0
  238. package/dist/readonlyAugmentedFileSystem.d.ts +2 -9
  239. package/dist/readonlyAugmentedFileSystem.js +17 -144
  240. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  241. package/dist/server.js +2 -2
  242. package/dist/server.js.map +1 -1
  243. package/dist/tests/analyzerNodeInfo.test.d.ts +1 -0
  244. package/dist/tests/analyzerNodeInfo.test.js +113 -0
  245. package/dist/tests/analyzerNodeInfo.test.js.map +1 -0
  246. package/dist/tests/collectionUtils.test.js +46 -0
  247. package/dist/tests/collectionUtils.test.js.map +1 -1
  248. package/dist/tests/completions.test.js +34 -0
  249. package/dist/tests/completions.test.js.map +1 -1
  250. package/dist/tests/config.test.js +131 -6
  251. package/dist/tests/config.test.js.map +1 -1
  252. package/dist/tests/extraPathGlob.test.d.ts +1 -0
  253. package/dist/tests/extraPathGlob.test.js +434 -0
  254. package/dist/tests/extraPathGlob.test.js.map +1 -0
  255. package/dist/tests/fileSystemMapping.test.d.ts +1 -0
  256. package/dist/tests/fileSystemMapping.test.js +458 -0
  257. package/dist/tests/fileSystemMapping.test.js.map +1 -0
  258. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js +23 -0
  259. package/dist/tests/fourslash/completions.call.typedDict.fourslash.js.map +1 -1
  260. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js +14 -0
  261. package/dist/tests/fourslash/completions.call.typedDict.list.fourslash.js.map +1 -1
  262. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js +7 -0
  263. package/dist/tests/fourslash/completions.call.typedDict.states.fourslash.js.map +1 -1
  264. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.d.ts +1 -0
  265. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js +41 -0
  266. package/dist/tests/fourslash/completions.callSite.isinstanceNarrowing.fourslash.js.map +1 -0
  267. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js +2 -0
  268. package/dist/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.js.map +1 -1
  269. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js +5 -0
  270. package/dist/tests/fourslash/completions.fstring.stringLiteral.fourslash.js.map +1 -1
  271. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js +4 -0
  272. package/dist/tests/fourslash/completions.stringLiteral.fourslash.js.map +1 -1
  273. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.d.ts +1 -0
  274. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js +48 -0
  275. package/dist/tests/fourslash/findallreferences.protocolMemberVariable.fourslash.js.map +1 -0
  276. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +8 -2
  277. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  278. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +5 -2
  279. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  280. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js +2 -2
  281. package/dist/tests/fourslash/signature.docstrings.overloaded.fourslash.js.map +1 -1
  282. package/dist/tests/harness/fourslash/testState.js +1 -1
  283. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  284. package/dist/tests/hoverProvider.test.js +38 -0
  285. package/dist/tests/hoverProvider.test.js.map +1 -1
  286. package/dist/tests/importStatementUtils.test.js +6 -3
  287. package/dist/tests/importStatementUtils.test.js.map +1 -1
  288. package/dist/tests/ipythonMode.test.js +38 -0
  289. package/dist/tests/ipythonMode.test.js.map +1 -1
  290. package/dist/tests/parseTreeUtils.test.js +88 -0
  291. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  292. package/dist/tests/parser.test.js +60 -3
  293. package/dist/tests/parser.test.js.map +1 -1
  294. package/dist/tests/positionUtils.test.js +23 -0
  295. package/dist/tests/positionUtils.test.js.map +1 -1
  296. package/dist/tests/pyrightFileSystem.test.js +41 -0
  297. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  298. package/dist/tests/service.test.js +77 -0
  299. package/dist/tests/service.test.js.map +1 -1
  300. package/dist/tests/sourceEnumeratorSymlink.test.d.ts +1 -0
  301. package/dist/tests/sourceEnumeratorSymlink.test.js +203 -0
  302. package/dist/tests/sourceEnumeratorSymlink.test.js.map +1 -0
  303. package/dist/tests/stringUtils.test.js +84 -0
  304. package/dist/tests/stringUtils.test.js.map +1 -1
  305. package/dist/tests/symlinkAliasInvalidation.test.d.ts +1 -0
  306. package/dist/tests/symlinkAliasInvalidation.test.js +471 -0
  307. package/dist/tests/symlinkAliasInvalidation.test.js.map +1 -0
  308. package/dist/tests/testUtils.d.ts +2 -0
  309. package/dist/tests/testUtils.js +7 -1
  310. package/dist/tests/testUtils.js.map +1 -1
  311. package/dist/tests/textEditUtil.test.js +2 -2
  312. package/dist/tests/textEditUtil.test.js.map +1 -1
  313. package/dist/tests/textRangeCollection.test.d.ts +1 -0
  314. package/dist/tests/textRangeCollection.test.js +137 -0
  315. package/dist/tests/textRangeCollection.test.js.map +1 -0
  316. package/dist/tests/typeCacheUtils.test.d.ts +1 -0
  317. package/dist/tests/typeCacheUtils.test.js +69 -0
  318. package/dist/tests/typeCacheUtils.test.js.map +1 -0
  319. package/dist/tests/typeEvaluator1.test.js +24 -3
  320. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  321. package/dist/tests/typeEvaluator3.test.js +8 -0
  322. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  323. package/dist/tests/typeEvaluator4.test.js +4 -0
  324. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  325. package/dist/tests/typeEvaluator5.test.js +12 -0
  326. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  327. package/dist/tests/typeEvaluator6.test.js +33 -1
  328. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  329. package/dist/tests/typeEvaluator7.test.js +29 -0
  330. package/dist/tests/typeEvaluator7.test.js.map +1 -1
  331. package/dist/tests/typeEvaluator8.test.js +318 -4
  332. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  333. package/dist/tests/typeServer/typeCache.test.d.ts +1 -0
  334. package/dist/tests/typeServer/typeCache.test.js +69 -0
  335. package/dist/tests/typeServer/typeCache.test.js.map +1 -0
  336. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js +18 -0
  337. package/dist/tests/typeServer/typeServer.virtualFileRedirect.test.js.map +1 -1
  338. package/dist/tests/types.test.d.ts +1 -0
  339. package/dist/{analyzer/parseTreeCleaner.js → tests/types.test.js} +23 -25
  340. package/dist/tests/types.test.js.map +1 -0
  341. package/dist/tests/uri.test.js +51 -0
  342. package/dist/tests/uri.test.js.map +1 -1
  343. package/dist/typeServer/notebookDocumentHandler.d.ts +9 -2
  344. package/dist/typeServer/notebookDocumentHandler.js +16 -6
  345. package/dist/typeServer/notebookDocumentHandler.js.map +1 -1
  346. package/dist/typeServer/programWrapper.d.ts +1 -0
  347. package/dist/typeServer/programWrapper.js +28 -15
  348. package/dist/typeServer/programWrapper.js.map +1 -1
  349. package/dist/typeServer/protocol/tspSupplemental.d.ts +1 -1
  350. package/dist/typeServer/protocol/tspSupplemental.js +2 -2
  351. package/dist/typeServer/server.d.ts +13 -2
  352. package/dist/typeServer/server.js +36 -23
  353. package/dist/typeServer/server.js.map +1 -1
  354. package/dist/typeServer/typeCache.d.ts +8 -4
  355. package/dist/typeServer/typeCache.js +33 -5
  356. package/dist/typeServer/typeCache.js.map +1 -1
  357. package/dist/typeServer/typeEvalUtils.d.ts +2 -1
  358. package/dist/typeServer/typeEvalUtils.js +7 -3
  359. package/dist/typeServer/typeEvalUtils.js.map +1 -1
  360. package/dist/typeServer/typeServerFileSystem.d.ts +10 -9
  361. package/dist/typeServer/typeServerFileSystem.js +16 -12
  362. package/dist/typeServer/typeServerFileSystem.js.map +1 -1
  363. package/package.json +7 -5
  364. package/dist/analyzer/parseTreeCleaner.d.ts +0 -8
  365. package/dist/analyzer/parseTreeCleaner.js.map +0 -1
@@ -1,5 +1,7 @@
1
1
  import { ArgumentNode, AssertNode, AssignmentExpressionNode, AssignmentNode, AugmentedAssignmentNode, AwaitNode, BinaryOperationNode, BreakNode, CallNode, CaseNode, ClassNode, ComprehensionForNode, ComprehensionIfNode, ComprehensionNode, ConstantNode, ContinueNode, DecoratorNode, DelNode, DictionaryExpandEntryNode, DictionaryKeyEntryNode, DictionaryNode, EllipsisNode, ErrorNode, ExceptNode, ForNode, FormatStringNode, FunctionAnnotationNode, FunctionNode, GlobalNode, IfNode, ImportAsNode, ImportFromAsNode, ImportFromNode, ImportNode, IndexNode, LambdaNode, ListNode, MatchNode, MemberAccessNode, ModuleNameNode, ModuleNode, NameNode, NonlocalNode, NumberNode, ParameterNode, ParseNode, ParseNodeArray, PassNode, PatternAsNode, PatternCaptureNode, PatternClassArgumentNode, PatternClassNode, PatternLiteralNode, PatternMappingExpandEntryNode, PatternMappingKeyEntryNode, PatternMappingNode, PatternSequenceNode, PatternValueNode, RaiseNode, ReturnNode, SetNode, SliceNode, StatementListNode, StringListNode, StringNode, SuiteNode, TernaryNode, TryNode, TupleNode, TypeAliasNode, TypeAnnotationNode, TypeParameterListNode, TypeParameterNode, UnaryOperationNode, UnpackNode, WhileNode, WithItemNode, WithNode, YieldFromNode, YieldNode } from '../parser/parseNodes';
2
- export declare function getChildNodes(node: ParseNode): (ParseNode | undefined)[];
2
+ import { getChildNodes } from '../parser/parseTreeUtils';
3
+ import * as AnalyzerNodeInfo from './analyzerNodeInfo';
4
+ export { getChildNodes };
3
5
  export declare class ParseTreeVisitor<T> {
4
6
  private readonly _default;
5
7
  constructor(_default: T);
@@ -84,8 +86,11 @@ export declare class ParseTreeVisitor<T> {
84
86
  visitYieldFrom(node: YieldFromNode): T;
85
87
  }
86
88
  export declare class ParseTreeWalker extends ParseTreeVisitor<boolean> {
87
- constructor();
89
+ private readonly _annotationNodeInfo?;
90
+ private readonly _getStringAnnotation;
91
+ constructor(_annotationNodeInfo?: AnalyzerNodeInfo.AnalyzerNodeInfoReader | undefined);
88
92
  walk(node: ParseNode): void;
89
93
  walkMultiple(nodes: ParseNodeArray): void;
90
94
  visitNode(node: ParseNode): ParseNodeArray;
95
+ protected getStringAnnotation(node: StringListNode): import("../parser/parseNodes").ExpressionNode | undefined;
91
96
  }
@@ -41,180 +41,12 @@ var __importStar = (this && this.__importStar) || (function () {
41
41
  };
42
42
  })();
43
43
  Object.defineProperty(exports, "__esModule", { value: true });
44
- exports.ParseTreeWalker = exports.ParseTreeVisitor = void 0;
45
- exports.getChildNodes = getChildNodes;
44
+ exports.ParseTreeWalker = exports.ParseTreeVisitor = exports.getChildNodes = void 0;
46
45
  const debug = __importStar(require("../common/debug"));
47
- // Get child nodes of the given node.
48
- function getChildNodes(node) {
49
- switch (node.nodeType) {
50
- case 0 /* ParseNodeType.Error */:
51
- return [node.d.child, ...(node.d.decorators ?? [])];
52
- case 1 /* ParseNodeType.Argument */:
53
- return [node.d.name, node.d.valueExpr];
54
- case 2 /* ParseNodeType.Assert */:
55
- return [node.d.testExpr, node.d.exceptionExpr];
56
- case 4 /* ParseNodeType.AssignmentExpression */:
57
- return [node.d.name, node.d.rightExpr];
58
- case 3 /* ParseNodeType.Assignment */:
59
- return [node.d.leftExpr, node.d.rightExpr, node.d.annotationComment];
60
- case 5 /* ParseNodeType.AugmentedAssignment */:
61
- return [node.d.leftExpr, node.d.rightExpr];
62
- case 6 /* ParseNodeType.Await */:
63
- return [node.d.expr];
64
- case 7 /* ParseNodeType.BinaryOperation */:
65
- return [node.d.leftExpr, node.d.rightExpr];
66
- case 8 /* ParseNodeType.Break */:
67
- return [];
68
- case 9 /* ParseNodeType.Call */:
69
- return [node.d.leftExpr, ...node.d.args];
70
- case 64 /* ParseNodeType.Case */:
71
- return [node.d.pattern, node.d.guardExpr, node.d.suite];
72
- case 10 /* ParseNodeType.Class */:
73
- return [...node.d.decorators, node.d.name, node.d.typeParams, ...node.d.arguments, node.d.suite];
74
- case 11 /* ParseNodeType.Comprehension */:
75
- return [node.d.expr, ...node.d.forIfNodes];
76
- case 12 /* ParseNodeType.ComprehensionFor */:
77
- return [node.d.targetExpr, node.d.iterableExpr];
78
- case 13 /* ParseNodeType.ComprehensionIf */:
79
- return [node.d.testExpr];
80
- case 14 /* ParseNodeType.Constant */:
81
- return [];
82
- case 15 /* ParseNodeType.Continue */:
83
- return [];
84
- case 16 /* ParseNodeType.Decorator */:
85
- return [node.d.expr];
86
- case 17 /* ParseNodeType.Del */:
87
- return node.d.targets;
88
- case 18 /* ParseNodeType.Dictionary */:
89
- return node.d.items;
90
- case 19 /* ParseNodeType.DictionaryExpandEntry */:
91
- return [node.d.expr];
92
- case 20 /* ParseNodeType.DictionaryKeyEntry */:
93
- return [node.d.keyExpr, node.d.valueExpr];
94
- case 21 /* ParseNodeType.Ellipsis */:
95
- return [];
96
- case 22 /* ParseNodeType.If */:
97
- return [node.d.testExpr, node.d.ifSuite, node.d.elseSuite];
98
- case 23 /* ParseNodeType.Import */:
99
- return node.d.list;
100
- case 24 /* ParseNodeType.ImportAs */:
101
- return [node.d.module, node.d.alias];
102
- case 25 /* ParseNodeType.ImportFrom */:
103
- return [node.d.module, ...node.d.imports];
104
- case 26 /* ParseNodeType.ImportFromAs */:
105
- return [node.d.name, node.d.alias];
106
- case 27 /* ParseNodeType.Index */:
107
- return [node.d.leftExpr, ...node.d.items];
108
- case 28 /* ParseNodeType.Except */:
109
- return [node.d.typeExpr, node.d.name, node.d.exceptSuite];
110
- case 29 /* ParseNodeType.For */:
111
- return [node.d.targetExpr, node.d.iterableExpr, node.d.forSuite, node.d.elseSuite];
112
- case 30 /* ParseNodeType.FormatString */:
113
- return [...node.d.fieldExprs, ...(node.d.formatExprs ?? [])];
114
- case 31 /* ParseNodeType.Function */:
115
- return [
116
- ...node.d.decorators,
117
- node.d.name,
118
- node.d.typeParams,
119
- ...node.d.params,
120
- node.d.returnAnnotation,
121
- node.d.funcAnnotationComment,
122
- node.d.suite,
123
- ];
124
- case 62 /* ParseNodeType.FunctionAnnotation */:
125
- return [...node.d.paramAnnotations, node.d.returnAnnotation];
126
- case 32 /* ParseNodeType.Global */:
127
- return node.d.targets;
128
- case 33 /* ParseNodeType.Lambda */:
129
- return [...node.d.params, node.d.expr];
130
- case 34 /* ParseNodeType.List */:
131
- return node.d.items;
132
- case 63 /* ParseNodeType.Match */:
133
- return [node.d.expr, ...node.d.cases];
134
- case 35 /* ParseNodeType.MemberAccess */:
135
- return [node.d.leftExpr, node.d.member];
136
- case 37 /* ParseNodeType.ModuleName */:
137
- return node.d.nameParts;
138
- case 36 /* ParseNodeType.Module */:
139
- return [...node.d.statements];
140
- case 38 /* ParseNodeType.Name */:
141
- return [];
142
- case 39 /* ParseNodeType.Nonlocal */:
143
- return node.d.targets;
144
- case 40 /* ParseNodeType.Number */:
145
- return [];
146
- case 41 /* ParseNodeType.Parameter */:
147
- return [node.d.name, node.d.annotation, node.d.annotationComment, node.d.defaultValue];
148
- case 42 /* ParseNodeType.Pass */:
149
- return [];
150
- case 66 /* ParseNodeType.PatternAs */:
151
- return [...node.d.orPatterns, node.d.target];
152
- case 68 /* ParseNodeType.PatternClass */:
153
- return [node.d.className, ...node.d.args];
154
- case 74 /* ParseNodeType.PatternClassArgument */:
155
- return [node.d.name, node.d.pattern];
156
- case 69 /* ParseNodeType.PatternCapture */:
157
- return [node.d.target];
158
- case 67 /* ParseNodeType.PatternLiteral */:
159
- return [node.d.expr];
160
- case 72 /* ParseNodeType.PatternMappingExpandEntry */:
161
- return [node.d.target];
162
- case 71 /* ParseNodeType.PatternMappingKeyEntry */:
163
- return [node.d.keyPattern, node.d.valuePattern];
164
- case 70 /* ParseNodeType.PatternMapping */:
165
- return [...node.d.entries];
166
- case 65 /* ParseNodeType.PatternSequence */:
167
- return [...node.d.entries];
168
- case 73 /* ParseNodeType.PatternValue */:
169
- return [node.d.expr];
170
- case 43 /* ParseNodeType.Raise */:
171
- return [node.d.expr, node.d.fromExpr];
172
- case 44 /* ParseNodeType.Return */:
173
- return [node.d.expr];
174
- case 45 /* ParseNodeType.Set */:
175
- return node.d.items;
176
- case 46 /* ParseNodeType.Slice */:
177
- return [node.d.startValue, node.d.endValue, node.d.stepValue];
178
- case 47 /* ParseNodeType.StatementList */:
179
- return node.d.statements;
180
- case 48 /* ParseNodeType.StringList */:
181
- return [node.d.annotation, ...node.d.strings];
182
- case 49 /* ParseNodeType.String */:
183
- return [];
184
- case 50 /* ParseNodeType.Suite */:
185
- return [...node.d.statements];
186
- case 51 /* ParseNodeType.Ternary */:
187
- return [node.d.ifExpr, node.d.testExpr, node.d.elseExpr];
188
- case 52 /* ParseNodeType.Tuple */:
189
- return node.d.items;
190
- case 53 /* ParseNodeType.Try */:
191
- return [node.d.trySuite, ...node.d.exceptClauses, node.d.elseSuite, node.d.finallySuite];
192
- case 77 /* ParseNodeType.TypeAlias */:
193
- return [node.d.name, node.d.typeParams, node.d.expr];
194
- case 54 /* ParseNodeType.TypeAnnotation */:
195
- return [node.d.valueExpr, node.d.annotation];
196
- case 75 /* ParseNodeType.TypeParameter */:
197
- return [node.d.name, node.d.boundExpr, node.d.defaultExpr];
198
- case 76 /* ParseNodeType.TypeParameterList */:
199
- return [...node.d.params];
200
- case 55 /* ParseNodeType.UnaryOperation */:
201
- return [node.d.expr];
202
- case 56 /* ParseNodeType.Unpack */:
203
- return [node.d.expr];
204
- case 57 /* ParseNodeType.While */:
205
- return [node.d.testExpr, node.d.whileSuite, node.d.elseSuite];
206
- case 58 /* ParseNodeType.With */:
207
- return [...node.d.withItems, node.d.suite];
208
- case 59 /* ParseNodeType.WithItem */:
209
- return [node.d.expr, node.d.target];
210
- case 60 /* ParseNodeType.Yield */:
211
- return [node.d.expr];
212
- case 61 /* ParseNodeType.YieldFrom */:
213
- return [node.d.expr];
214
- default:
215
- debug.assertNever(node, `Unknown node type ${node}`);
216
- }
217
- }
46
+ const parseNodes_1 = require("../parser/parseNodes");
47
+ const parseTreeUtils_1 = require("../parser/parseTreeUtils");
48
+ Object.defineProperty(exports, "getChildNodes", { enumerable: true, get: function () { return parseTreeUtils_1.getChildNodes; } });
49
+ const AnalyzerNodeInfo = __importStar(require("./analyzerNodeInfo"));
218
50
  // To use this class, create a subclass and override the
219
51
  // visitXXX methods that you want to handle.
220
52
  class ParseTreeVisitor {
@@ -624,8 +456,10 @@ exports.ParseTreeVisitor = ParseTreeVisitor;
624
456
  // To use this class, create a subclass and override the
625
457
  // visitXXX methods that you want to handle.
626
458
  class ParseTreeWalker extends ParseTreeVisitor {
627
- constructor() {
459
+ constructor(_annotationNodeInfo) {
628
460
  super(/* default */ true);
461
+ this._annotationNodeInfo = _annotationNodeInfo;
462
+ this._getStringAnnotation = (node) => this.getStringAnnotation(node);
629
463
  }
630
464
  walk(node) {
631
465
  const childrenToWalk = this.visitNode(node);
@@ -644,7 +478,27 @@ class ParseTreeWalker extends ParseTreeVisitor {
644
478
  // If the method returns false, we assume that the handler has already handled the
645
479
  // child nodes, so an empty list is returned.
646
480
  visitNode(node) {
647
- return this.visit(node) ? getChildNodes(node) : [];
481
+ return this.visit(node) ? (0, parseTreeUtils_1.getChildNodes)(node, this._getStringAnnotation) : [];
482
+ }
483
+ // Resolves the effective string annotation used to expand child nodes during traversal.
484
+ //
485
+ // When an `AnalyzerNodeInfoReader` was supplied (Program-aware walkers that must observe
486
+ // evaluator-discovered annotations, such as the checker and the semantic-token/rename/
487
+ // references walkers), the combined accessor is used so both tier-1 parser annotations and
488
+ // tier-2 evaluator-discovered annotations (e.g. `cast("Data", v)`) are visited. When no reader
489
+ // was supplied, the walker is deliberately syntax-only and sees tier-1 parser annotations
490
+ // exclusively. The binder intentionally stays syntax-only: tier-2 annotations do not exist yet
491
+ // at bind time, so tier-1 descent is both sufficient and correct there.
492
+ //
493
+ // Footgun: this default is safe (tier-1 only) but silent. A future Program-aware walker that
494
+ // forgets to forward a reader would quietly miss tier-2 annotations rather than fail loudly.
495
+ // Any walker that must observe evaluator-discovered annotations MUST pass the reader through
496
+ // its constructor. See parseTreeBindingKey.test.ts for the cross-owner coverage that locks
497
+ // in the reader-forwarding contract.
498
+ getStringAnnotation(node) {
499
+ return this._annotationNodeInfo
500
+ ? AnalyzerNodeInfo.getStringAnnotation(node, this._annotationNodeInfo)
501
+ : (0, parseNodes_1.getParserStringAnnotation)(node);
648
502
  }
649
503
  }
650
504
  exports.ParseTreeWalker = ParseTreeWalker;
@@ -1 +1 @@
1
- {"version":3,"file":"parseTreeWalker.js","sourceRoot":"","sources":["../../../../../src/analyzer/parseTreeWalker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseTreeWalker.js","sourceRoot":"","sources":["../../../../../src/analyzer/parseTreeWalker.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { ExpressionNode, PatternAtomNode, PatternClassNode } from '../parser/parseNodes';
2
+ import { AnalyzerNodeInfoAccessor } from './analyzerNodeInfo';
2
3
  import { CodeFlowReferenceExpressionNode } from './codeFlowTypes';
3
4
  import { TypeEvaluator, TypeResult } from './typeEvaluatorTypes';
4
5
  import { Type } from './types';
5
6
  type PatternSubtypeNarrowingCallback = (type: Type) => TypeResult | undefined;
6
- export declare function narrowTypeBasedOnPattern(evaluator: TypeEvaluator, type: Type, pattern: PatternAtomNode, isPositiveTest: boolean): Type;
7
- export declare function checkForUnusedPattern(evaluator: TypeEvaluator, pattern: PatternAtomNode, subjectType: Type): void;
8
- export declare function assignTypeToPatternTargets(evaluator: TypeEvaluator, type: Type, isTypeIncomplete: boolean, pattern: PatternAtomNode): Type;
7
+ export declare function narrowTypeBasedOnPattern(evaluator: TypeEvaluator, type: Type, pattern: PatternAtomNode, isPositiveTest: boolean, nodeInfo: AnalyzerNodeInfoAccessor): Type;
8
+ export declare function checkForUnusedPattern(evaluator: TypeEvaluator, pattern: PatternAtomNode, subjectType: Type, nodeInfo: AnalyzerNodeInfoAccessor): void;
9
+ export declare function assignTypeToPatternTargets(evaluator: TypeEvaluator, type: Type, isTypeIncomplete: boolean, pattern: PatternAtomNode, nodeInfo: AnalyzerNodeInfoAccessor): Type;
9
10
  export declare function validateClassPattern(evaluator: TypeEvaluator, pattern: PatternClassNode): void;
10
11
  export declare function getPatternSubtypeNarrowingCallback(evaluator: TypeEvaluator, reference: CodeFlowReferenceExpressionNode, subjectExpression: ExpressionNode): PatternSubtypeNarrowingCallback | undefined;
11
12
  export {};
@@ -49,22 +49,22 @@ const classPatternSpecialCases = [
49
49
  // converted to Any. This is tuned empirically to provide a reasonable
50
50
  // performance cutoff.
51
51
  const maxSequencePatternTupleExpansionSubtypes = 128;
52
- function narrowTypeBasedOnPattern(evaluator, type, pattern, isPositiveTest) {
52
+ function narrowTypeBasedOnPattern(evaluator, type, pattern, isPositiveTest, nodeInfo) {
53
53
  switch (pattern.nodeType) {
54
54
  case 65 /* ParseNodeType.PatternSequence */: {
55
- return narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTest);
55
+ return narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTest, nodeInfo);
56
56
  }
57
57
  case 67 /* ParseNodeType.PatternLiteral */: {
58
58
  return narrowTypeBasedOnLiteralPattern(evaluator, type, pattern, isPositiveTest);
59
59
  }
60
60
  case 68 /* ParseNodeType.PatternClass */: {
61
- return narrowTypeBasedOnClassPattern(evaluator, type, pattern, isPositiveTest);
61
+ return narrowTypeBasedOnClassPattern(evaluator, type, pattern, isPositiveTest, nodeInfo);
62
62
  }
63
63
  case 66 /* ParseNodeType.PatternAs */: {
64
- return narrowTypeBasedOnAsPattern(evaluator, type, pattern, isPositiveTest);
64
+ return narrowTypeBasedOnAsPattern(evaluator, type, pattern, isPositiveTest, nodeInfo);
65
65
  }
66
66
  case 70 /* ParseNodeType.PatternMapping */: {
67
- return narrowTypeBasedOnMappingPattern(evaluator, type, pattern, isPositiveTest);
67
+ return narrowTypeBasedOnMappingPattern(evaluator, type, pattern, isPositiveTest, nodeInfo);
68
68
  }
69
69
  case 73 /* ParseNodeType.PatternValue */: {
70
70
  return narrowTypeBasedOnValuePattern(evaluator, type, pattern, isPositiveTest);
@@ -80,7 +80,7 @@ function narrowTypeBasedOnPattern(evaluator, type, pattern, isPositiveTest) {
80
80
  }
81
81
  // Determines whether this pattern (or part of the pattern) in
82
82
  // this case statement will never be matched.
83
- function checkForUnusedPattern(evaluator, pattern, subjectType) {
83
+ function checkForUnusedPattern(evaluator, pattern, subjectType, nodeInfo) {
84
84
  if ((0, types_1.isNever)(subjectType)) {
85
85
  reportUnnecessaryPattern(evaluator, pattern, subjectType);
86
86
  }
@@ -88,24 +88,26 @@ function checkForUnusedPattern(evaluator, pattern, subjectType) {
88
88
  // Check each of the or patterns separately.
89
89
  pattern.d.orPatterns.forEach((orPattern) => {
90
90
  const subjectTypeMatch = narrowTypeBasedOnPattern(evaluator, subjectType, orPattern,
91
- /* isPositiveTest */ true);
91
+ /* isPositiveTest */ true, nodeInfo);
92
92
  if ((0, types_1.isNever)(subjectTypeMatch)) {
93
93
  reportUnnecessaryPattern(evaluator, orPattern, subjectType);
94
94
  }
95
- subjectType = narrowTypeBasedOnPattern(evaluator, subjectType, orPattern, /* isPositiveTest */ false);
95
+ subjectType = narrowTypeBasedOnPattern(evaluator, subjectType, orPattern,
96
+ /* isPositiveTest */ false, nodeInfo);
96
97
  });
97
98
  }
98
99
  else {
99
- const subjectTypeMatch = narrowTypeBasedOnPattern(evaluator, subjectType, pattern, /* isPositiveTest */ true);
100
+ const subjectTypeMatch = narrowTypeBasedOnPattern(evaluator, subjectType, pattern,
101
+ /* isPositiveTest */ true, nodeInfo);
100
102
  if ((0, types_1.isNever)(subjectTypeMatch)) {
101
103
  reportUnnecessaryPattern(evaluator, pattern, subjectType);
102
104
  }
103
105
  }
104
106
  }
105
- function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTest) {
107
+ function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTest, nodeInfo) {
106
108
  let usingTupleExpansion = false;
107
109
  type = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(type);
108
- let sequenceInfo = getSequencePatternInfo(evaluator, pattern, type);
110
+ let sequenceInfo = getSequencePatternInfo(evaluator, pattern, type, nodeInfo);
109
111
  // Further narrow based on pattern entry types.
110
112
  sequenceInfo = sequenceInfo.filter((entry) => {
111
113
  if (entry.isDefiniteNoMatch) {
@@ -153,7 +155,7 @@ function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTe
153
155
  const entryType = getTypeOfPatternSequenceEntry(evaluator, pattern, entry, index, pattern.d.entries.length, pattern.d.starEntryIndex,
154
156
  /* unpackStarEntry */ true);
155
157
  unnarrowedEntryTypes.push(entryType);
156
- const narrowedEntryType = narrowTypeBasedOnPattern(evaluator, entryType, sequenceEntry, isPositiveTest);
158
+ const narrowedEntryType = narrowTypeBasedOnPattern(evaluator, entryType, sequenceEntry, isPositiveTest, nodeInfo);
157
159
  if (isPositiveTest) {
158
160
  if (index === pattern.d.starEntryIndex) {
159
161
  if ((0, types_1.isClassInstance)(narrowedEntryType) &&
@@ -262,23 +264,25 @@ function narrowTypeBasedOnSequencePattern(evaluator, type, pattern, isPositiveTe
262
264
  });
263
265
  return (0, types_1.combineTypes)(sequenceInfo.map((entry) => entry.subtype), { maxSubtypeCount: usingTupleExpansion ? maxSequencePatternTupleExpansionSubtypes : undefined });
264
266
  }
265
- function narrowTypeBasedOnAsPattern(evaluator, type, pattern, isPositiveTest) {
267
+ function narrowTypeBasedOnAsPattern(evaluator, type, pattern, isPositiveTest, nodeInfo) {
266
268
  let remainingType = type;
267
269
  if (!isPositiveTest) {
268
270
  pattern.d.orPatterns.forEach((subpattern) => {
269
- remainingType = narrowTypeBasedOnPattern(evaluator, remainingType, subpattern, /* isPositiveTest */ false);
271
+ remainingType = narrowTypeBasedOnPattern(evaluator, remainingType, subpattern,
272
+ /* isPositiveTest */ false, nodeInfo);
270
273
  });
271
274
  return remainingType;
272
275
  }
273
276
  const narrowedTypes = pattern.d.orPatterns.map((subpattern) => {
274
277
  const narrowedSubtype = narrowTypeBasedOnPattern(evaluator, remainingType, subpattern,
275
- /* isPositiveTest */ true);
276
- remainingType = narrowTypeBasedOnPattern(evaluator, remainingType, subpattern, /* isPositiveTest */ false);
278
+ /* isPositiveTest */ true, nodeInfo);
279
+ remainingType = narrowTypeBasedOnPattern(evaluator, remainingType, subpattern,
280
+ /* isPositiveTest */ false, nodeInfo);
277
281
  return narrowedSubtype;
278
282
  });
279
283
  return (0, types_1.combineTypes)(narrowedTypes);
280
284
  }
281
- function narrowTypeBasedOnMappingPattern(evaluator, type, pattern, isPositiveTest) {
285
+ function narrowTypeBasedOnMappingPattern(evaluator, type, pattern, isPositiveTest, nodeInfo) {
282
286
  type = (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(type);
283
287
  if (!isPositiveTest) {
284
288
  // Handle the case where the pattern consists only of a "**x" entry.
@@ -336,7 +340,7 @@ function narrowTypeBasedOnMappingPattern(evaluator, type, pattern, isPositiveTes
336
340
  pattern.d.entries.forEach((mappingEntry) => {
337
341
  if (mappingSubtypeInfo.typedDict) {
338
342
  if (mappingEntry.nodeType === 71 /* ParseNodeType.PatternMappingKeyEntry */) {
339
- const narrowedKeyType = narrowTypeBasedOnPattern(evaluator, evaluator.getBuiltInObject(pattern, 'str'), mappingEntry.d.keyPattern, isPositiveTest);
343
+ const narrowedKeyType = narrowTypeBasedOnPattern(evaluator, evaluator.getBuiltInObject(pattern, 'str'), mappingEntry.d.keyPattern, isPositiveTest, nodeInfo);
340
344
  if ((0, types_1.isNever)(narrowedKeyType)) {
341
345
  isPlausibleMatch = false;
342
346
  }
@@ -352,7 +356,7 @@ function narrowTypeBasedOnMappingPattern(evaluator, type, pattern, isPositiveTes
352
356
  const valueEntry = tdEntries.knownItems.get(keySubtype.priv.literalValue);
353
357
  if (valueEntry) {
354
358
  const narrowedValueType = narrowTypeBasedOnPattern(evaluator, valueEntry.valueType, mappingEntry.d.valuePattern,
355
- /* isPositiveTest */ true);
359
+ /* isPositiveTest */ true, nodeInfo);
356
360
  if (!(0, types_1.isNever)(narrowedValueType)) {
357
361
  // If this is a "NotRequired" entry that has not yet been demonstrated
358
362
  // to be present, we can mark it as "provided" at this point.
@@ -383,8 +387,8 @@ function narrowTypeBasedOnMappingPattern(evaluator, type, pattern, isPositiveTes
383
387
  }
384
388
  else if (mappingSubtypeInfo.dictTypeArgs) {
385
389
  if (mappingEntry.nodeType === 71 /* ParseNodeType.PatternMappingKeyEntry */) {
386
- const narrowedKeyType = narrowTypeBasedOnPattern(evaluator, mappingSubtypeInfo.dictTypeArgs.key, mappingEntry.d.keyPattern, isPositiveTest);
387
- const narrowedValueType = narrowTypeBasedOnPattern(evaluator, mappingSubtypeInfo.dictTypeArgs.value, mappingEntry.d.valuePattern, isPositiveTest);
390
+ const narrowedKeyType = narrowTypeBasedOnPattern(evaluator, mappingSubtypeInfo.dictTypeArgs.key, mappingEntry.d.keyPattern, isPositiveTest, nodeInfo);
391
+ const narrowedValueType = narrowTypeBasedOnPattern(evaluator, mappingSubtypeInfo.dictTypeArgs.value, mappingEntry.d.valuePattern, isPositiveTest, nodeInfo);
388
392
  if ((0, types_1.isNever)(narrowedKeyType) || (0, types_1.isNever)(narrowedValueType)) {
389
393
  isPlausibleMatch = false;
390
394
  }
@@ -523,7 +527,7 @@ function specializeBoundedMatchTypeParams(evaluator, matchType, solvedTypeArgs,
523
527
  });
524
528
  return (0, typeUtils_1.addConditionToType)((0, typeUtils_1.convertToInstance)(types_1.ClassType.specialize(matchType, typeArgs)), condition);
525
529
  }
526
- function narrowTypeBasedOnClassPattern(evaluator, type, pattern, isPositiveTest) {
530
+ function narrowTypeBasedOnClassPattern(evaluator, type, pattern, isPositiveTest, nodeInfo) {
527
531
  let exprType = evaluator.getTypeOfExpression(pattern.d.className, 2 /* EvalFlags.CallBaseDefaults */).type;
528
532
  // If this is a class (but not a type alias that refers to a class),
529
533
  // specialize it with Unknown type arguments.
@@ -604,7 +608,7 @@ function narrowTypeBasedOnClassPattern(evaluator, type, pattern, isPositiveTest)
604
608
  }
605
609
  }
606
610
  for (let index = 0; index < pattern.d.args.length; index++) {
607
- const narrowedArgType = narrowTypeOfClassPatternArg(evaluator, pattern.d.args[index], index, positionalArgNames, subjectSubtypeExpanded, isPositiveTest);
611
+ const narrowedArgType = narrowTypeOfClassPatternArg(evaluator, pattern.d.args[index], index, positionalArgNames, subjectSubtypeExpanded, isPositiveTest, nodeInfo);
608
612
  if (!(0, types_1.isNever)(narrowedArgType)) {
609
613
  return subjectSubtypeUnexpanded;
610
614
  }
@@ -729,7 +733,7 @@ function narrowTypeBasedOnClassPattern(evaluator, type, pattern, isPositiveTest)
729
733
  // Narrow the arg pattern. It's possible that the actual type of the object
730
734
  // being matched is a subtype of the resultType, so it might contain additional
731
735
  // attributes that we don't know about.
732
- const narrowedArgType = narrowTypeOfClassPatternArg(evaluator, arg, index, positionalArgNames, resultType, isPositiveTest);
736
+ const narrowedArgType = narrowTypeOfClassPatternArg(evaluator, arg, index, positionalArgNames, resultType, isPositiveTest, nodeInfo);
733
737
  if ((0, types_1.isNever)(narrowedArgType)) {
734
738
  isMatchValid = false;
735
739
  }
@@ -764,7 +768,7 @@ function isClassSpecialCaseForClassPattern(classType) {
764
768
  return false;
765
769
  }
766
770
  // Narrows the pattern provided for a class pattern argument.
767
- function narrowTypeOfClassPatternArg(evaluator, arg, argIndex, positionalArgNames, matchType, isPositiveTest) {
771
+ function narrowTypeOfClassPatternArg(evaluator, arg, argIndex, positionalArgNames, matchType, isPositiveTest, nodeInfo) {
768
772
  let argName;
769
773
  if (arg.d.name) {
770
774
  argName = arg.d.name.d.value;
@@ -821,7 +825,7 @@ function narrowTypeOfClassPatternArg(evaluator, arg, argIndex, positionalArgName
821
825
  argType = types_1.UnknownType.create();
822
826
  }
823
827
  }
824
- return narrowTypeBasedOnPattern(evaluator, argType, arg.d.pattern, isPositiveTest);
828
+ return narrowTypeBasedOnPattern(evaluator, argType, arg.d.pattern, isPositiveTest, nodeInfo);
825
829
  }
826
830
  function narrowTypeBasedOnValuePattern(evaluator, subjectType, pattern, isPositiveTest) {
827
831
  const valueType = evaluator.getTypeOfExpression(pattern.d.expr).type;
@@ -952,7 +956,7 @@ function getMappingPatternInfo(evaluator, type, node) {
952
956
  // Returns information about all subtypes that match the definition of a "sequence" as
953
957
  // specified in PEP 634. For types that are not sequences or sequences that are not of
954
958
  // sufficient length, it sets definiteNoMatch to true.
955
- function getSequencePatternInfo(evaluator, pattern, type) {
959
+ function getSequencePatternInfo(evaluator, pattern, type, nodeInfo) {
956
960
  const patternEntryCount = pattern.d.entries.length;
957
961
  const patternStarEntryIndex = pattern.d.starEntryIndex;
958
962
  const sequenceInfo = [];
@@ -1061,7 +1065,7 @@ function getSequencePatternInfo(evaluator, pattern, type) {
1061
1065
  const subPattern = pattern.d.entries[i];
1062
1066
  const typeArg = typeArgs[i].type;
1063
1067
  const narrowedType = narrowTypeBasedOnPattern(evaluator, typeArg, subPattern,
1064
- /* isPositiveTest */ true);
1068
+ /* isPositiveTest */ true, nodeInfo);
1065
1069
  if ((0, types_1.isNever)(narrowedType)) {
1066
1070
  isDefiniteNoMatch = true;
1067
1071
  }
@@ -1102,7 +1106,7 @@ function getSequencePatternInfo(evaluator, pattern, type) {
1102
1106
  const subPattern = pattern.d.entries[i];
1103
1107
  const typeArg = typeArgs[i].type;
1104
1108
  const narrowedType = narrowTypeBasedOnPattern(evaluator, typeArg, subPattern,
1105
- /* isPositiveTest */ true);
1109
+ /* isPositiveTest */ true, nodeInfo);
1106
1110
  if ((0, types_1.isNever)(narrowedType)) {
1107
1111
  isDefiniteNoMatch = true;
1108
1112
  }
@@ -1155,7 +1159,7 @@ function getSequencePatternInfo(evaluator, pattern, type) {
1155
1159
  }
1156
1160
  // If it wasn't a subtype of Sequence, see if it's a supertype.
1157
1161
  const sequenceConstraints = new constraintTracker_1.ConstraintTracker();
1158
- if ((0, constraintSolver_1.addConstraintsForExpectedType)(evaluator, types_1.ClassType.cloneAsInstance(sequenceType), subtype, sequenceConstraints, (0, parseTreeUtils_1.getTypeVarScopesForNode)(pattern), pattern.start)) {
1162
+ if ((0, constraintSolver_1.addConstraintsForExpectedType)(evaluator, types_1.ClassType.cloneAsInstance(sequenceType), subtype, sequenceConstraints, (0, parseTreeUtils_1.getTypeVarScopesForNode)(pattern, nodeInfo), pattern.start)) {
1159
1163
  const specializedSequence = evaluator.solveAndApplyConstraints(types_1.ClassType.cloneAsInstantiable(sequenceType), sequenceConstraints);
1160
1164
  if (specializedSequence.priv.typeArgs && specializedSequence.priv.typeArgs.length > 0) {
1161
1165
  sequenceInfo.push({
@@ -1230,16 +1234,16 @@ function getTypeOfPatternSequenceEntry(evaluator, node, sequenceInfo, entryIndex
1230
1234
  }
1231
1235
  // Recursively assigns the specified type to the pattern and any capture
1232
1236
  // nodes within it. It returns the narrowed type, as dictated by the pattern.
1233
- function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern) {
1237
+ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern, nodeInfo) {
1234
1238
  // Further narrow the type based on this pattern.
1235
- const narrowedType = narrowTypeBasedOnPattern(evaluator, type, pattern, /* positiveTest */ true);
1239
+ const narrowedType = narrowTypeBasedOnPattern(evaluator, type, pattern, /* positiveTest */ true, nodeInfo);
1236
1240
  switch (pattern.nodeType) {
1237
1241
  case 65 /* ParseNodeType.PatternSequence */: {
1238
- const sequenceInfo = getSequencePatternInfo(evaluator, pattern, narrowedType).filter((seqInfo) => !seqInfo.isDefiniteNoMatch);
1242
+ const sequenceInfo = getSequencePatternInfo(evaluator, pattern, narrowedType, nodeInfo).filter((seqInfo) => !seqInfo.isDefiniteNoMatch);
1239
1243
  pattern.d.entries.forEach((entry, index) => {
1240
1244
  const entryType = (0, types_1.combineTypes)(sequenceInfo.map((info) => getTypeOfPatternSequenceEntry(evaluator, pattern, info, index, pattern.d.entries.length, pattern.d.starEntryIndex,
1241
1245
  /* unpackStarEntry */ false)));
1242
- assignTypeToPatternTargets(evaluator, entryType, isTypeIncomplete, entry);
1246
+ assignTypeToPatternTargets(evaluator, entryType, isTypeIncomplete, entry, nodeInfo);
1243
1247
  });
1244
1248
  break;
1245
1249
  }
@@ -1249,11 +1253,11 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern)
1249
1253
  }
1250
1254
  let runningNarrowedType = narrowedType;
1251
1255
  pattern.d.orPatterns.forEach((orPattern) => {
1252
- assignTypeToPatternTargets(evaluator, runningNarrowedType, isTypeIncomplete, orPattern);
1256
+ assignTypeToPatternTargets(evaluator, runningNarrowedType, isTypeIncomplete, orPattern, nodeInfo);
1253
1257
  // OR patterns are evaluated left to right, so we can narrow
1254
1258
  // the type as we go.
1255
1259
  runningNarrowedType = narrowTypeBasedOnPattern(evaluator, runningNarrowedType, orPattern,
1256
- /* positiveTest */ false);
1260
+ /* positiveTest */ false, nodeInfo);
1257
1261
  });
1258
1262
  break;
1259
1263
  }
@@ -1287,7 +1291,7 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern)
1287
1291
  if (mappingSubtypeInfo.typedDict) {
1288
1292
  if (mappingEntry.nodeType === 71 /* ParseNodeType.PatternMappingKeyEntry */) {
1289
1293
  const keyType = narrowTypeBasedOnPattern(evaluator, evaluator.getBuiltInObject(pattern, 'str'), mappingEntry.d.keyPattern,
1290
- /* isPositiveTest */ true);
1294
+ /* isPositiveTest */ true, nodeInfo);
1291
1295
  keyTypes.push(keyType);
1292
1296
  (0, typeUtils_1.doForEachSubtype)(keyType, (keySubtype) => {
1293
1297
  if ((0, types_1.isClassInstance)(keySubtype) &&
@@ -1310,10 +1314,10 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern)
1310
1314
  else if (mappingSubtypeInfo.dictTypeArgs) {
1311
1315
  if (mappingEntry.nodeType === 71 /* ParseNodeType.PatternMappingKeyEntry */) {
1312
1316
  const keyType = narrowTypeBasedOnPattern(evaluator, mappingSubtypeInfo.dictTypeArgs.key, mappingEntry.d.keyPattern,
1313
- /* isPositiveTest */ true);
1317
+ /* isPositiveTest */ true, nodeInfo);
1314
1318
  keyTypes.push(keyType);
1315
1319
  valueTypes.push(narrowTypeBasedOnPattern(evaluator, mappingSubtypeInfo.dictTypeArgs.value, mappingEntry.d.valuePattern,
1316
- /* isPositiveTest */ true));
1320
+ /* isPositiveTest */ true, nodeInfo));
1317
1321
  }
1318
1322
  else if (mappingEntry.nodeType === 72 /* ParseNodeType.PatternMappingExpandEntry */) {
1319
1323
  keyTypes.push(mappingSubtypeInfo.dictTypeArgs.key);
@@ -1324,8 +1328,8 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern)
1324
1328
  const keyType = (0, types_1.combineTypes)(keyTypes);
1325
1329
  const valueType = (0, types_1.combineTypes)(valueTypes);
1326
1330
  if (mappingEntry.nodeType === 71 /* ParseNodeType.PatternMappingKeyEntry */) {
1327
- assignTypeToPatternTargets(evaluator, keyType, isTypeIncomplete, mappingEntry.d.keyPattern);
1328
- assignTypeToPatternTargets(evaluator, valueType, isTypeIncomplete, mappingEntry.d.valuePattern);
1331
+ assignTypeToPatternTargets(evaluator, keyType, isTypeIncomplete, mappingEntry.d.keyPattern, nodeInfo);
1332
+ assignTypeToPatternTargets(evaluator, valueType, isTypeIncomplete, mappingEntry.d.valuePattern, nodeInfo);
1329
1333
  }
1330
1334
  else if (mappingEntry.nodeType === 72 /* ParseNodeType.PatternMappingExpandEntry */) {
1331
1335
  const dictClass = evaluator.getBuiltInType(pattern, 'dict');
@@ -1358,7 +1362,7 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern)
1358
1362
  }
1359
1363
  pattern.d.args.forEach((arg, index) => {
1360
1364
  const narrowedArgType = narrowTypeOfClassPatternArg(evaluator, arg, index, positionalArgNames, types_1.ClassType.cloneAsInstantiable(expandedSubtype),
1361
- /* isPositiveTest */ true);
1365
+ /* isPositiveTest */ true, nodeInfo);
1362
1366
  argTypes[index].push(narrowedArgType);
1363
1367
  });
1364
1368
  }
@@ -1372,7 +1376,7 @@ function assignTypeToPatternTargets(evaluator, type, isTypeIncomplete, pattern)
1372
1376
  return undefined;
1373
1377
  });
1374
1378
  pattern.d.args.forEach((arg, index) => {
1375
- assignTypeToPatternTargets(evaluator, (0, types_1.combineTypes)(argTypes[index]), isTypeIncomplete, arg.d.pattern);
1379
+ assignTypeToPatternTargets(evaluator, (0, types_1.combineTypes)(argTypes[index]), isTypeIncomplete, arg.d.pattern, nodeInfo);
1376
1380
  });
1377
1381
  break;
1378
1382
  }