@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
@@ -11,10 +11,15 @@
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.StringListNode = exports.FormatStringNode = exports.StringNode = exports.NumberNode = exports.EllipsisNode = exports.ConstantNode = exports.NameNode = exports.LambdaNode = exports.MemberAccessNode = exports.YieldFromNode = exports.YieldNode = exports.SliceNode = exports.IndexNode = exports.ComprehensionNode = exports.CallNode = exports.TupleNode = exports.UnpackNode = exports.TernaryNode = exports.AwaitNode = exports.AugmentedAssignmentNode = exports.FunctionAnnotationNode = exports.TypeAnnotationNode = exports.TypeAliasNode = exports.TypeParameterListNode = exports.TypeParameterNode = exports.TypeParamKind = exports.AssignmentNode = exports.AssignmentExpressionNode = exports.BinaryOperationNode = exports.UnaryOperationNode = exports.ErrorNode = exports.StatementListNode = exports.DecoratorNode = exports.WithItemNode = exports.WithNode = exports.ClassNode = exports.ParameterNode = exports.ParamCategory = exports.FunctionNode = exports.ExceptNode = exports.TryNode = exports.ComprehensionIfNode = exports.ComprehensionForNode = exports.ForNode = exports.WhileNode = exports.IfNode = exports.SuiteNode = exports.ModuleNode = exports.ErrorExpressionCategory = exports.ParseNodeType = void 0;
13
13
  exports.PatternValueNode = exports.PatternMappingExpandEntryNode = exports.PatternMappingKeyEntryNode = exports.PatternMappingNode = exports.PatternCaptureNode = exports.PatternClassArgumentNode = exports.PatternClassNode = exports.PatternLiteralNode = exports.PatternAsNode = exports.PatternSequenceNode = exports.CaseNode = exports.MatchNode = exports.RaiseNode = exports.ReturnNode = exports.ContinueNode = exports.BreakNode = exports.AssertNode = exports.NonlocalNode = exports.GlobalNode = exports.ImportFromAsNode = exports.ImportFromNode = exports.ImportAsNode = exports.ModuleNameNode = exports.ImportNode = exports.PassNode = exports.DelNode = exports.ArgumentNode = exports.ArgCategory = exports.ListNode = exports.SetNode = exports.DictionaryExpandEntryNode = exports.DictionaryKeyEntryNode = exports.DictionaryNode = void 0;
14
+ exports.setParserStringAnnotationInfo = setParserStringAnnotationInfo;
15
+ exports.getParseTreeRoot = getParseTreeRoot;
16
+ exports.getParserStringAnnotation = getParserStringAnnotation;
17
+ exports.getParserStringAnnotationInfo = getParserStringAnnotationInfo;
14
18
  exports.getNextNodeId = getNextNodeId;
15
19
  exports.extendRange = extendRange;
16
20
  exports.isExpressionNode = isExpressionNode;
17
21
  const textRange_1 = require("../common/textRange");
22
+ const stringAnnotationInfo_1 = require("./stringAnnotationInfo");
18
23
  var ParseNodeType;
19
24
  (function (ParseNodeType) {
20
25
  ParseNodeType[ParseNodeType["Error"] = 0] = "Error";
@@ -115,6 +120,22 @@ var ErrorExpressionCategory;
115
120
  ErrorExpressionCategory[ErrorExpressionCategory["MissingKeywordArgValue"] = 14] = "MissingKeywordArgValue";
116
121
  ErrorExpressionCategory[ErrorExpressionCategory["MaxDepthExceeded"] = 15] = "MaxDepthExceeded";
117
122
  })(ErrorExpressionCategory || (exports.ErrorExpressionCategory = ErrorExpressionCategory = {}));
123
+ function setParserStringAnnotationInfo(key, stringAnnotations) {
124
+ key.stringAnnotations = stringAnnotations;
125
+ }
126
+ function getParseTreeRoot(node) {
127
+ // The owner key is the module node itself for file parses (so its nodeType is
128
+ // Module), or a plain standalone key object for detached expression parses
129
+ // (nodeType is undefined). Only the former has a real parse-tree root.
130
+ const key = node.a;
131
+ return key.nodeType === 36 /* ParseNodeType.Module */ ? key : undefined;
132
+ }
133
+ function getParserStringAnnotation(node) {
134
+ return node.a.stringAnnotations?.get(node);
135
+ }
136
+ function getParserStringAnnotationInfo(node) {
137
+ return node.a.stringAnnotations ?? stringAnnotationInfo_1.emptyStringAnnotationInfo;
138
+ }
118
139
  let _nextNodeId = 1;
119
140
  function getNextNodeId() {
120
141
  return _nextNodeId++;
@@ -137,20 +158,23 @@ var ModuleNode;
137
158
  a: undefined,
138
159
  d: { statements: [] },
139
160
  };
161
+ // The module node is its own owner key; every structural node in a file
162
+ // parse shares this reference via its `a` field.
163
+ node.a = node;
140
164
  return node;
141
165
  }
142
166
  ModuleNode.create = create;
143
167
  })(ModuleNode || (exports.ModuleNode = ModuleNode = {}));
144
168
  var SuiteNode;
145
169
  (function (SuiteNode) {
146
- function create(range) {
170
+ function create(key, range) {
147
171
  const node = {
148
172
  start: range.start,
149
173
  length: range.length,
150
174
  nodeType: 50 /* ParseNodeType.Suite */,
151
175
  id: _nextNodeId++,
152
176
  parent: undefined,
153
- a: undefined,
177
+ a: key,
154
178
  d: {
155
179
  statements: [],
156
180
  typeComment: undefined,
@@ -162,14 +186,14 @@ var SuiteNode;
162
186
  })(SuiteNode || (exports.SuiteNode = SuiteNode = {}));
163
187
  var IfNode;
164
188
  (function (IfNode) {
165
- function create(ifOrElifToken, testExpr, ifSuite, elseSuite) {
189
+ function create(key, ifOrElifToken, testExpr, ifSuite, elseSuite) {
166
190
  const node = {
167
191
  start: ifOrElifToken.start,
168
192
  length: ifOrElifToken.length,
169
193
  nodeType: 22 /* ParseNodeType.If */,
170
194
  id: _nextNodeId++,
171
195
  parent: undefined,
172
- a: undefined,
196
+ a: key,
173
197
  d: {
174
198
  firstToken: ifOrElifToken,
175
199
  testExpr,
@@ -191,14 +215,14 @@ var IfNode;
191
215
  })(IfNode || (exports.IfNode = IfNode = {}));
192
216
  var WhileNode;
193
217
  (function (WhileNode) {
194
- function create(whileToken, testExpr, whileSuite) {
218
+ function create(key, whileToken, testExpr, whileSuite) {
195
219
  const node = {
196
220
  start: whileToken.start,
197
221
  length: whileToken.length,
198
222
  nodeType: 57 /* ParseNodeType.While */,
199
223
  id: _nextNodeId++,
200
224
  parent: undefined,
201
- a: undefined,
225
+ a: key,
202
226
  d: {
203
227
  firstToken: whileToken,
204
228
  testExpr,
@@ -214,14 +238,14 @@ var WhileNode;
214
238
  })(WhileNode || (exports.WhileNode = WhileNode = {}));
215
239
  var ForNode;
216
240
  (function (ForNode) {
217
- function create(forToken, targetExpr, iterableExpr, forSuite) {
241
+ function create(key, forToken, targetExpr, iterableExpr, forSuite) {
218
242
  const node = {
219
243
  start: forToken.start,
220
244
  length: forToken.length,
221
245
  nodeType: 29 /* ParseNodeType.For */,
222
246
  id: _nextNodeId++,
223
247
  parent: undefined,
224
- a: undefined,
248
+ a: key,
225
249
  d: {
226
250
  firstToken: forToken,
227
251
  targetExpr,
@@ -239,14 +263,14 @@ var ForNode;
239
263
  })(ForNode || (exports.ForNode = ForNode = {}));
240
264
  var ComprehensionForNode;
241
265
  (function (ComprehensionForNode) {
242
- function create(startToken, targetExpr, iterableExpr) {
266
+ function create(key, startToken, targetExpr, iterableExpr) {
243
267
  const node = {
244
268
  start: startToken.start,
245
269
  length: startToken.length,
246
270
  nodeType: 12 /* ParseNodeType.ComprehensionFor */,
247
271
  id: _nextNodeId++,
248
272
  parent: undefined,
249
- a: undefined,
273
+ a: key,
250
274
  d: {
251
275
  targetExpr,
252
276
  iterableExpr,
@@ -262,14 +286,14 @@ var ComprehensionForNode;
262
286
  })(ComprehensionForNode || (exports.ComprehensionForNode = ComprehensionForNode = {}));
263
287
  var ComprehensionIfNode;
264
288
  (function (ComprehensionIfNode) {
265
- function create(ifToken, testExpr) {
289
+ function create(key, ifToken, testExpr) {
266
290
  const node = {
267
291
  start: ifToken.start,
268
292
  length: ifToken.length,
269
293
  nodeType: 13 /* ParseNodeType.ComprehensionIf */,
270
294
  id: _nextNodeId++,
271
295
  parent: undefined,
272
- a: undefined,
296
+ a: key,
273
297
  d: { testExpr },
274
298
  };
275
299
  testExpr.parent = node;
@@ -280,14 +304,14 @@ var ComprehensionIfNode;
280
304
  })(ComprehensionIfNode || (exports.ComprehensionIfNode = ComprehensionIfNode = {}));
281
305
  var TryNode;
282
306
  (function (TryNode) {
283
- function create(tryToken, trySuite) {
307
+ function create(key, tryToken, trySuite) {
284
308
  const node = {
285
309
  start: tryToken.start,
286
310
  length: tryToken.length,
287
311
  nodeType: 53 /* ParseNodeType.Try */,
288
312
  id: _nextNodeId++,
289
313
  parent: undefined,
290
- a: undefined,
314
+ a: key,
291
315
  d: {
292
316
  firstToken: tryToken,
293
317
  trySuite: trySuite,
@@ -302,14 +326,14 @@ var TryNode;
302
326
  })(TryNode || (exports.TryNode = TryNode = {}));
303
327
  var ExceptNode;
304
328
  (function (ExceptNode) {
305
- function create(exceptToken, exceptSuite, isExceptGroup) {
329
+ function create(key, exceptToken, exceptSuite, isExceptGroup) {
306
330
  const node = {
307
331
  start: exceptToken.start,
308
332
  length: exceptToken.length,
309
333
  nodeType: 28 /* ParseNodeType.Except */,
310
334
  id: _nextNodeId++,
311
335
  parent: undefined,
312
- a: undefined,
336
+ a: key,
313
337
  d: {
314
338
  exceptSuite: exceptSuite,
315
339
  isExceptGroup: isExceptGroup,
@@ -324,14 +348,14 @@ var ExceptNode;
324
348
  })(ExceptNode || (exports.ExceptNode = ExceptNode = {}));
325
349
  var FunctionNode;
326
350
  (function (FunctionNode) {
327
- function create(defToken, name, suite, typeParams) {
351
+ function create(key, defToken, name, suite, typeParams) {
328
352
  const node = {
329
353
  start: defToken.start,
330
354
  length: defToken.length,
331
355
  nodeType: 31 /* ParseNodeType.Function */,
332
356
  id: _nextNodeId++,
333
357
  parent: undefined,
334
- a: undefined,
358
+ a: key,
335
359
  d: {
336
360
  firstToken: defToken,
337
361
  decorators: [],
@@ -362,14 +386,14 @@ var ParamCategory;
362
386
  })(ParamCategory || (exports.ParamCategory = ParamCategory = {}));
363
387
  var ParameterNode;
364
388
  (function (ParameterNode) {
365
- function create(startToken, paramCategory) {
389
+ function create(key, startToken, paramCategory) {
366
390
  const node = {
367
391
  start: startToken.start,
368
392
  length: startToken.length,
369
393
  nodeType: 41 /* ParseNodeType.Parameter */,
370
394
  id: _nextNodeId++,
371
395
  parent: undefined,
372
- a: undefined,
396
+ a: key,
373
397
  d: {
374
398
  category: paramCategory,
375
399
  name: undefined,
@@ -384,14 +408,14 @@ var ParameterNode;
384
408
  })(ParameterNode || (exports.ParameterNode = ParameterNode = {}));
385
409
  var ClassNode;
386
410
  (function (ClassNode) {
387
- function create(classToken, name, suite, typeParams) {
411
+ function create(key, classToken, name, suite, typeParams) {
388
412
  const node = {
389
413
  start: classToken.start,
390
414
  length: classToken.length,
391
415
  nodeType: 10 /* ParseNodeType.Class */,
392
416
  id: _nextNodeId++,
393
417
  parent: undefined,
394
- a: undefined,
418
+ a: key,
395
419
  d: {
396
420
  firstToken: classToken,
397
421
  decorators: [],
@@ -413,14 +437,14 @@ var ClassNode;
413
437
  // This variant is used to create a dummy class
414
438
  // when the parser encounters decorators with no
415
439
  // function or class declaration.
416
- function createDummyForDecorators(decorators) {
440
+ function createDummyForDecorators(key, decorators) {
417
441
  const node = {
418
442
  start: decorators[0].start,
419
443
  length: 0,
420
444
  nodeType: 10 /* ParseNodeType.Class */,
421
445
  id: _nextNodeId++,
422
446
  parent: undefined,
423
- a: undefined,
447
+ a: key,
424
448
  d: {
425
449
  firstToken: {
426
450
  type: 8 /* TokenType.Keyword */,
@@ -435,7 +459,7 @@ var ClassNode;
435
459
  nodeType: 38 /* ParseNodeType.Name */,
436
460
  id: 0,
437
461
  parent: undefined,
438
- a: undefined,
462
+ a: key,
439
463
  d: {
440
464
  token: {
441
465
  type: 7 /* TokenType.Identifier */,
@@ -455,7 +479,7 @@ var ClassNode;
455
479
  nodeType: 50 /* ParseNodeType.Suite */,
456
480
  id: 0,
457
481
  parent: undefined,
458
- a: undefined,
482
+ a: key,
459
483
  d: { statements: [], typeComment: undefined },
460
484
  },
461
485
  },
@@ -472,14 +496,14 @@ var ClassNode;
472
496
  })(ClassNode || (exports.ClassNode = ClassNode = {}));
473
497
  var WithNode;
474
498
  (function (WithNode) {
475
- function create(withToken, suite) {
499
+ function create(key, withToken, suite) {
476
500
  const node = {
477
501
  start: withToken.start,
478
502
  length: withToken.length,
479
503
  nodeType: 58 /* ParseNodeType.With */,
480
504
  id: _nextNodeId++,
481
505
  parent: undefined,
482
- a: undefined,
506
+ a: key,
483
507
  d: {
484
508
  firstToken: withToken,
485
509
  withItems: [],
@@ -494,14 +518,14 @@ var WithNode;
494
518
  })(WithNode || (exports.WithNode = WithNode = {}));
495
519
  var WithItemNode;
496
520
  (function (WithItemNode) {
497
- function create(expr) {
521
+ function create(key, expr) {
498
522
  const node = {
499
523
  start: expr.start,
500
524
  length: expr.length,
501
525
  nodeType: 59 /* ParseNodeType.WithItem */,
502
526
  id: _nextNodeId++,
503
527
  parent: undefined,
504
- a: undefined,
528
+ a: key,
505
529
  d: { expr },
506
530
  };
507
531
  expr.parent = node;
@@ -511,14 +535,14 @@ var WithItemNode;
511
535
  })(WithItemNode || (exports.WithItemNode = WithItemNode = {}));
512
536
  var DecoratorNode;
513
537
  (function (DecoratorNode) {
514
- function create(atToken, expr) {
538
+ function create(key, atToken, expr) {
515
539
  const node = {
516
540
  start: atToken.start,
517
541
  length: atToken.length,
518
542
  nodeType: 16 /* ParseNodeType.Decorator */,
519
543
  id: _nextNodeId++,
520
544
  parent: undefined,
521
- a: undefined,
545
+ a: key,
522
546
  d: { expr },
523
547
  };
524
548
  expr.parent = node;
@@ -529,14 +553,14 @@ var DecoratorNode;
529
553
  })(DecoratorNode || (exports.DecoratorNode = DecoratorNode = {}));
530
554
  var StatementListNode;
531
555
  (function (StatementListNode) {
532
- function create(atToken) {
556
+ function create(key, atToken) {
533
557
  const node = {
534
558
  start: atToken.start,
535
559
  length: atToken.length,
536
560
  nodeType: 47 /* ParseNodeType.StatementList */,
537
561
  id: _nextNodeId++,
538
562
  parent: undefined,
539
- a: undefined,
563
+ a: key,
540
564
  d: { firstToken: atToken, statements: [] },
541
565
  };
542
566
  return node;
@@ -579,14 +603,14 @@ function isExpressionNode(node) {
579
603
  }
580
604
  var ErrorNode;
581
605
  (function (ErrorNode) {
582
- function create(initialRange, category, child, decorators) {
606
+ function create(key, initialRange, category, child, decorators) {
583
607
  const node = {
584
608
  start: initialRange.start,
585
609
  length: initialRange.length,
586
610
  nodeType: 0 /* ParseNodeType.Error */,
587
611
  id: _nextNodeId++,
588
612
  parent: undefined,
589
- a: undefined,
613
+ a: key,
590
614
  d: {
591
615
  category,
592
616
  child,
@@ -611,14 +635,14 @@ var ErrorNode;
611
635
  })(ErrorNode || (exports.ErrorNode = ErrorNode = {}));
612
636
  var UnaryOperationNode;
613
637
  (function (UnaryOperationNode) {
614
- function create(operatorToken, expr, operator) {
638
+ function create(key, operatorToken, expr, operator) {
615
639
  const node = {
616
640
  start: operatorToken.start,
617
641
  length: operatorToken.length,
618
642
  nodeType: 55 /* ParseNodeType.UnaryOperation */,
619
643
  id: _nextNodeId++,
620
644
  parent: undefined,
621
- a: undefined,
645
+ a: key,
622
646
  d: {
623
647
  operator,
624
648
  operatorToken,
@@ -634,14 +658,14 @@ var UnaryOperationNode;
634
658
  })(UnaryOperationNode || (exports.UnaryOperationNode = UnaryOperationNode = {}));
635
659
  var BinaryOperationNode;
636
660
  (function (BinaryOperationNode) {
637
- function create(leftExpr, rightExpr, operatorToken, operator) {
661
+ function create(key, leftExpr, rightExpr, operatorToken, operator) {
638
662
  const node = {
639
663
  start: leftExpr.start,
640
664
  length: leftExpr.length,
641
665
  nodeType: 7 /* ParseNodeType.BinaryOperation */,
642
666
  id: _nextNodeId++,
643
667
  parent: undefined,
644
- a: undefined,
668
+ a: key,
645
669
  d: {
646
670
  leftExpr,
647
671
  operatorToken,
@@ -659,14 +683,14 @@ var BinaryOperationNode;
659
683
  })(BinaryOperationNode || (exports.BinaryOperationNode = BinaryOperationNode = {}));
660
684
  var AssignmentExpressionNode;
661
685
  (function (AssignmentExpressionNode) {
662
- function create(name, walrusToken, rightExpr) {
686
+ function create(key, name, walrusToken, rightExpr) {
663
687
  const node = {
664
688
  start: name.start,
665
689
  length: name.length,
666
690
  nodeType: 4 /* ParseNodeType.AssignmentExpression */,
667
691
  id: _nextNodeId++,
668
692
  parent: undefined,
669
- a: undefined,
693
+ a: key,
670
694
  d: {
671
695
  name,
672
696
  walrusToken,
@@ -683,14 +707,14 @@ var AssignmentExpressionNode;
683
707
  })(AssignmentExpressionNode || (exports.AssignmentExpressionNode = AssignmentExpressionNode = {}));
684
708
  var AssignmentNode;
685
709
  (function (AssignmentNode) {
686
- function create(leftExpr, rightExpr) {
710
+ function create(key, leftExpr, rightExpr) {
687
711
  const node = {
688
712
  start: leftExpr.start,
689
713
  length: leftExpr.length,
690
714
  nodeType: 3 /* ParseNodeType.Assignment */,
691
715
  id: _nextNodeId++,
692
716
  parent: undefined,
693
- a: undefined,
717
+ a: key,
694
718
  d: {
695
719
  leftExpr,
696
720
  rightExpr,
@@ -711,14 +735,14 @@ var TypeParamKind;
711
735
  })(TypeParamKind || (exports.TypeParamKind = TypeParamKind = {}));
712
736
  var TypeParameterNode;
713
737
  (function (TypeParameterNode) {
714
- function create(name, typeParamKind, boundExpr, defaultExpr) {
738
+ function create(key, name, typeParamKind, boundExpr, defaultExpr) {
715
739
  const node = {
716
740
  start: name.start,
717
741
  length: name.length,
718
742
  nodeType: 75 /* ParseNodeType.TypeParameter */,
719
743
  id: _nextNodeId++,
720
744
  parent: undefined,
721
- a: undefined,
745
+ a: key,
722
746
  d: {
723
747
  name,
724
748
  typeParamKind,
@@ -741,14 +765,14 @@ var TypeParameterNode;
741
765
  })(TypeParameterNode || (exports.TypeParameterNode = TypeParameterNode = {}));
742
766
  var TypeParameterListNode;
743
767
  (function (TypeParameterListNode) {
744
- function create(startToken, endToken, params) {
768
+ function create(key, startToken, endToken, params) {
745
769
  const node = {
746
770
  start: startToken.start,
747
771
  length: startToken.length,
748
772
  nodeType: 76 /* ParseNodeType.TypeParameterList */,
749
773
  id: _nextNodeId++,
750
774
  parent: undefined,
751
- a: undefined,
775
+ a: key,
752
776
  d: { params },
753
777
  };
754
778
  extendRange(node, endToken);
@@ -762,14 +786,14 @@ var TypeParameterListNode;
762
786
  })(TypeParameterListNode || (exports.TypeParameterListNode = TypeParameterListNode = {}));
763
787
  var TypeAliasNode;
764
788
  (function (TypeAliasNode) {
765
- function create(typeToken, name, expr, typeParams) {
789
+ function create(key, typeToken, name, expr, typeParams) {
766
790
  const node = {
767
791
  start: typeToken.start,
768
792
  length: typeToken.length,
769
793
  nodeType: 77 /* ParseNodeType.TypeAlias */,
770
794
  id: _nextNodeId++,
771
795
  parent: undefined,
772
- a: undefined,
796
+ a: key,
773
797
  d: {
774
798
  firstToken: typeToken,
775
799
  name,
@@ -789,14 +813,14 @@ var TypeAliasNode;
789
813
  })(TypeAliasNode || (exports.TypeAliasNode = TypeAliasNode = {}));
790
814
  var TypeAnnotationNode;
791
815
  (function (TypeAnnotationNode) {
792
- function create(valueExpr, annotation) {
816
+ function create(key, valueExpr, annotation) {
793
817
  const node = {
794
818
  start: valueExpr.start,
795
819
  length: valueExpr.length,
796
820
  nodeType: 54 /* ParseNodeType.TypeAnnotation */,
797
821
  id: _nextNodeId++,
798
822
  parent: undefined,
799
- a: undefined,
823
+ a: key,
800
824
  d: {
801
825
  valueExpr,
802
826
  annotation,
@@ -811,14 +835,14 @@ var TypeAnnotationNode;
811
835
  })(TypeAnnotationNode || (exports.TypeAnnotationNode = TypeAnnotationNode = {}));
812
836
  var FunctionAnnotationNode;
813
837
  (function (FunctionAnnotationNode) {
814
- function create(openParenToken, isEllipsis, paramAnnotations, returnAnnotation) {
838
+ function create(key, openParenToken, isEllipsis, paramAnnotations, returnAnnotation) {
815
839
  const node = {
816
840
  start: openParenToken.start,
817
841
  length: openParenToken.length,
818
842
  nodeType: 62 /* ParseNodeType.FunctionAnnotation */,
819
843
  id: _nextNodeId++,
820
844
  parent: undefined,
821
- a: undefined,
845
+ a: key,
822
846
  d: {
823
847
  isEllipsis,
824
848
  paramAnnotations,
@@ -836,14 +860,14 @@ var FunctionAnnotationNode;
836
860
  })(FunctionAnnotationNode || (exports.FunctionAnnotationNode = FunctionAnnotationNode = {}));
837
861
  var AugmentedAssignmentNode;
838
862
  (function (AugmentedAssignmentNode) {
839
- function create(leftExpr, rightExpr, operator, destExpr) {
863
+ function create(key, leftExpr, rightExpr, operator, destExpr) {
840
864
  const node = {
841
865
  start: leftExpr.start,
842
866
  length: leftExpr.length,
843
867
  nodeType: 5 /* ParseNodeType.AugmentedAssignment */,
844
868
  id: _nextNodeId++,
845
869
  parent: undefined,
846
- a: undefined,
870
+ a: key,
847
871
  d: {
848
872
  leftExpr,
849
873
  operator,
@@ -861,14 +885,14 @@ var AugmentedAssignmentNode;
861
885
  })(AugmentedAssignmentNode || (exports.AugmentedAssignmentNode = AugmentedAssignmentNode = {}));
862
886
  var AwaitNode;
863
887
  (function (AwaitNode) {
864
- function create(awaitToken, expr) {
888
+ function create(key, awaitToken, expr) {
865
889
  const node = {
866
890
  start: awaitToken.start,
867
891
  length: awaitToken.length,
868
892
  nodeType: 6 /* ParseNodeType.Await */,
869
893
  id: _nextNodeId++,
870
894
  parent: undefined,
871
- a: undefined,
895
+ a: key,
872
896
  d: { expr, awaitToken, hasParens: false },
873
897
  };
874
898
  expr.parent = node;
@@ -879,14 +903,14 @@ var AwaitNode;
879
903
  })(AwaitNode || (exports.AwaitNode = AwaitNode = {}));
880
904
  var TernaryNode;
881
905
  (function (TernaryNode) {
882
- function create(ifExpr, testExpr, elseExpr) {
906
+ function create(key, ifExpr, testExpr, elseExpr) {
883
907
  const node = {
884
908
  start: ifExpr.start,
885
909
  length: ifExpr.length,
886
910
  nodeType: 51 /* ParseNodeType.Ternary */,
887
911
  id: _nextNodeId++,
888
912
  parent: undefined,
889
- a: undefined,
913
+ a: key,
890
914
  d: {
891
915
  ifExpr,
892
916
  testExpr,
@@ -903,14 +927,14 @@ var TernaryNode;
903
927
  })(TernaryNode || (exports.TernaryNode = TernaryNode = {}));
904
928
  var UnpackNode;
905
929
  (function (UnpackNode) {
906
- function create(starToken, expr) {
930
+ function create(key, starToken, expr) {
907
931
  const node = {
908
932
  start: starToken.start,
909
933
  length: starToken.length,
910
934
  nodeType: 56 /* ParseNodeType.Unpack */,
911
935
  id: _nextNodeId++,
912
936
  parent: undefined,
913
- a: undefined,
937
+ a: key,
914
938
  d: {
915
939
  expr,
916
940
  starToken,
@@ -924,14 +948,14 @@ var UnpackNode;
924
948
  })(UnpackNode || (exports.UnpackNode = UnpackNode = {}));
925
949
  var TupleNode;
926
950
  (function (TupleNode) {
927
- function create(range, hasParens) {
951
+ function create(key, range, hasParens) {
928
952
  const node = {
929
953
  start: range.start,
930
954
  length: range.length,
931
955
  nodeType: 52 /* ParseNodeType.Tuple */,
932
956
  id: _nextNodeId++,
933
957
  parent: undefined,
934
- a: undefined,
958
+ a: key,
935
959
  d: {
936
960
  items: [],
937
961
  hasParens,
@@ -943,14 +967,14 @@ var TupleNode;
943
967
  })(TupleNode || (exports.TupleNode = TupleNode = {}));
944
968
  var CallNode;
945
969
  (function (CallNode) {
946
- function create(leftExpr, args, trailingComma) {
970
+ function create(key, leftExpr, args, trailingComma) {
947
971
  const node = {
948
972
  start: leftExpr.start,
949
973
  length: leftExpr.length,
950
974
  nodeType: 9 /* ParseNodeType.Call */,
951
975
  id: _nextNodeId++,
952
976
  parent: undefined,
953
- a: undefined,
977
+ a: key,
954
978
  d: {
955
979
  leftExpr,
956
980
  args,
@@ -970,14 +994,14 @@ var CallNode;
970
994
  })(CallNode || (exports.CallNode = CallNode = {}));
971
995
  var ComprehensionNode;
972
996
  (function (ComprehensionNode) {
973
- function create(expr, isGenerator) {
997
+ function create(key, expr, isGenerator) {
974
998
  const node = {
975
999
  start: expr.start,
976
1000
  length: expr.length,
977
1001
  nodeType: 11 /* ParseNodeType.Comprehension */,
978
1002
  id: _nextNodeId++,
979
1003
  parent: undefined,
980
- a: undefined,
1004
+ a: key,
981
1005
  d: {
982
1006
  expr,
983
1007
  forIfNodes: [],
@@ -992,14 +1016,14 @@ var ComprehensionNode;
992
1016
  })(ComprehensionNode || (exports.ComprehensionNode = ComprehensionNode = {}));
993
1017
  var IndexNode;
994
1018
  (function (IndexNode) {
995
- function create(leftExpr, items, trailingComma, closeBracketToken) {
1019
+ function create(key, leftExpr, items, trailingComma, closeBracketToken) {
996
1020
  const node = {
997
1021
  start: leftExpr.start,
998
1022
  length: leftExpr.length,
999
1023
  nodeType: 27 /* ParseNodeType.Index */,
1000
1024
  id: _nextNodeId++,
1001
1025
  parent: undefined,
1002
- a: undefined,
1026
+ a: key,
1003
1027
  d: {
1004
1028
  leftExpr,
1005
1029
  items,
@@ -1017,14 +1041,14 @@ var IndexNode;
1017
1041
  })(IndexNode || (exports.IndexNode = IndexNode = {}));
1018
1042
  var SliceNode;
1019
1043
  (function (SliceNode) {
1020
- function create(range) {
1044
+ function create(key, range) {
1021
1045
  const node = {
1022
1046
  start: range.start,
1023
1047
  length: range.length,
1024
1048
  nodeType: 46 /* ParseNodeType.Slice */,
1025
1049
  id: _nextNodeId++,
1026
1050
  parent: undefined,
1027
- a: undefined,
1051
+ a: key,
1028
1052
  d: {},
1029
1053
  };
1030
1054
  return node;
@@ -1033,14 +1057,14 @@ var SliceNode;
1033
1057
  })(SliceNode || (exports.SliceNode = SliceNode = {}));
1034
1058
  var YieldNode;
1035
1059
  (function (YieldNode) {
1036
- function create(yieldToken, expr) {
1060
+ function create(key, yieldToken, expr) {
1037
1061
  const node = {
1038
1062
  start: yieldToken.start,
1039
1063
  length: yieldToken.length,
1040
1064
  nodeType: 60 /* ParseNodeType.Yield */,
1041
1065
  id: _nextNodeId++,
1042
1066
  parent: undefined,
1043
- a: undefined,
1067
+ a: key,
1044
1068
  d: { expr },
1045
1069
  };
1046
1070
  if (expr) {
@@ -1053,14 +1077,14 @@ var YieldNode;
1053
1077
  })(YieldNode || (exports.YieldNode = YieldNode = {}));
1054
1078
  var YieldFromNode;
1055
1079
  (function (YieldFromNode) {
1056
- function create(yieldToken, expr) {
1080
+ function create(key, yieldToken, expr) {
1057
1081
  const node = {
1058
1082
  start: yieldToken.start,
1059
1083
  length: yieldToken.length,
1060
1084
  nodeType: 61 /* ParseNodeType.YieldFrom */,
1061
1085
  id: _nextNodeId++,
1062
1086
  parent: undefined,
1063
- a: undefined,
1087
+ a: key,
1064
1088
  d: { expr },
1065
1089
  };
1066
1090
  expr.parent = node;
@@ -1071,14 +1095,14 @@ var YieldFromNode;
1071
1095
  })(YieldFromNode || (exports.YieldFromNode = YieldFromNode = {}));
1072
1096
  var MemberAccessNode;
1073
1097
  (function (MemberAccessNode) {
1074
- function create(leftExpr, member) {
1098
+ function create(key, leftExpr, member) {
1075
1099
  const node = {
1076
1100
  start: leftExpr.start,
1077
1101
  length: leftExpr.length,
1078
1102
  nodeType: 35 /* ParseNodeType.MemberAccess */,
1079
1103
  id: _nextNodeId++,
1080
1104
  parent: undefined,
1081
- a: undefined,
1105
+ a: key,
1082
1106
  d: {
1083
1107
  leftExpr: leftExpr,
1084
1108
  member: member,
@@ -1093,14 +1117,14 @@ var MemberAccessNode;
1093
1117
  })(MemberAccessNode || (exports.MemberAccessNode = MemberAccessNode = {}));
1094
1118
  var LambdaNode;
1095
1119
  (function (LambdaNode) {
1096
- function create(lambdaToken, expr) {
1120
+ function create(key, lambdaToken, expr) {
1097
1121
  const node = {
1098
1122
  start: lambdaToken.start,
1099
1123
  length: lambdaToken.length,
1100
1124
  nodeType: 33 /* ParseNodeType.Lambda */,
1101
1125
  id: _nextNodeId++,
1102
1126
  parent: undefined,
1103
- a: undefined,
1127
+ a: key,
1104
1128
  d: {
1105
1129
  params: [],
1106
1130
  expr,
@@ -1114,14 +1138,14 @@ var LambdaNode;
1114
1138
  })(LambdaNode || (exports.LambdaNode = LambdaNode = {}));
1115
1139
  var NameNode;
1116
1140
  (function (NameNode) {
1117
- function create(nameToken) {
1141
+ function create(key, nameToken) {
1118
1142
  const node = {
1119
1143
  start: nameToken.start,
1120
1144
  length: nameToken.length,
1121
1145
  nodeType: 38 /* ParseNodeType.Name */,
1122
1146
  id: _nextNodeId++,
1123
1147
  parent: undefined,
1124
- a: undefined,
1148
+ a: key,
1125
1149
  d: {
1126
1150
  token: nameToken,
1127
1151
  value: nameToken.value,
@@ -1133,14 +1157,14 @@ var NameNode;
1133
1157
  })(NameNode || (exports.NameNode = NameNode = {}));
1134
1158
  var ConstantNode;
1135
1159
  (function (ConstantNode) {
1136
- function create(token) {
1160
+ function create(key, token) {
1137
1161
  const node = {
1138
1162
  start: token.start,
1139
1163
  length: token.length,
1140
1164
  nodeType: 14 /* ParseNodeType.Constant */,
1141
1165
  id: _nextNodeId++,
1142
1166
  parent: undefined,
1143
- a: undefined,
1167
+ a: key,
1144
1168
  d: { constType: token.keywordType },
1145
1169
  };
1146
1170
  return node;
@@ -1149,14 +1173,14 @@ var ConstantNode;
1149
1173
  })(ConstantNode || (exports.ConstantNode = ConstantNode = {}));
1150
1174
  var EllipsisNode;
1151
1175
  (function (EllipsisNode) {
1152
- function create(range) {
1176
+ function create(key, range) {
1153
1177
  const node = {
1154
1178
  start: range.start,
1155
1179
  length: range.length,
1156
1180
  nodeType: 21 /* ParseNodeType.Ellipsis */,
1157
1181
  id: _nextNodeId++,
1158
1182
  parent: undefined,
1159
- a: undefined,
1183
+ a: key,
1160
1184
  d: {},
1161
1185
  };
1162
1186
  return node;
@@ -1165,14 +1189,14 @@ var EllipsisNode;
1165
1189
  })(EllipsisNode || (exports.EllipsisNode = EllipsisNode = {}));
1166
1190
  var NumberNode;
1167
1191
  (function (NumberNode) {
1168
- function create(token) {
1192
+ function create(key, token) {
1169
1193
  const node = {
1170
1194
  start: token.start,
1171
1195
  length: token.length,
1172
1196
  nodeType: 40 /* ParseNodeType.Number */,
1173
1197
  id: _nextNodeId++,
1174
1198
  parent: undefined,
1175
- a: undefined,
1199
+ a: key,
1176
1200
  d: {
1177
1201
  value: token.value,
1178
1202
  isInteger: token.isInteger,
@@ -1185,14 +1209,14 @@ var NumberNode;
1185
1209
  })(NumberNode || (exports.NumberNode = NumberNode = {}));
1186
1210
  var StringNode;
1187
1211
  (function (StringNode) {
1188
- function create(token, value) {
1212
+ function create(key, token, value) {
1189
1213
  const node = {
1190
1214
  start: token.start,
1191
1215
  length: token.length,
1192
1216
  nodeType: 49 /* ParseNodeType.String */,
1193
1217
  id: _nextNodeId++,
1194
1218
  parent: undefined,
1195
- a: undefined,
1219
+ a: key,
1196
1220
  d: {
1197
1221
  token,
1198
1222
  value,
@@ -1204,14 +1228,14 @@ var StringNode;
1204
1228
  })(StringNode || (exports.StringNode = StringNode = {}));
1205
1229
  var FormatStringNode;
1206
1230
  (function (FormatStringNode) {
1207
- function create(startToken, endToken, middleTokens, fieldExprs, formatExprs) {
1231
+ function create(key, startToken, endToken, middleTokens, fieldExprs, formatExprs) {
1208
1232
  const node = {
1209
1233
  start: startToken.start,
1210
1234
  length: startToken.length,
1211
1235
  nodeType: 30 /* ParseNodeType.FormatString */,
1212
1236
  id: _nextNodeId++,
1213
1237
  parent: undefined,
1214
- a: undefined,
1238
+ a: key,
1215
1239
  d: {
1216
1240
  token: startToken,
1217
1241
  middleTokens,
@@ -1239,17 +1263,16 @@ var FormatStringNode;
1239
1263
  })(FormatStringNode || (exports.FormatStringNode = FormatStringNode = {}));
1240
1264
  var StringListNode;
1241
1265
  (function (StringListNode) {
1242
- function create(strings) {
1266
+ function create(key, strings) {
1243
1267
  const node = {
1244
1268
  start: strings[0].start,
1245
1269
  length: strings[0].length,
1246
1270
  nodeType: 48 /* ParseNodeType.StringList */,
1247
1271
  id: _nextNodeId++,
1248
1272
  parent: undefined,
1249
- a: undefined,
1273
+ a: key,
1250
1274
  d: {
1251
1275
  strings,
1252
- annotation: undefined,
1253
1276
  hasParens: false,
1254
1277
  },
1255
1278
  };
@@ -1265,14 +1288,14 @@ var StringListNode;
1265
1288
  })(StringListNode || (exports.StringListNode = StringListNode = {}));
1266
1289
  var DictionaryNode;
1267
1290
  (function (DictionaryNode) {
1268
- function create(range) {
1291
+ function create(key, range) {
1269
1292
  const node = {
1270
1293
  start: range.start,
1271
1294
  length: range.length,
1272
1295
  nodeType: 18 /* ParseNodeType.Dictionary */,
1273
1296
  id: _nextNodeId++,
1274
1297
  parent: undefined,
1275
- a: undefined,
1298
+ a: key,
1276
1299
  d: {
1277
1300
  items: [],
1278
1301
  trailingCommaToken: undefined,
@@ -1284,14 +1307,14 @@ var DictionaryNode;
1284
1307
  })(DictionaryNode || (exports.DictionaryNode = DictionaryNode = {}));
1285
1308
  var DictionaryKeyEntryNode;
1286
1309
  (function (DictionaryKeyEntryNode) {
1287
- function create(keyExpr, valueExpr) {
1310
+ function create(key, keyExpr, valueExpr) {
1288
1311
  const node = {
1289
1312
  start: keyExpr.start,
1290
1313
  length: keyExpr.length,
1291
1314
  nodeType: 20 /* ParseNodeType.DictionaryKeyEntry */,
1292
1315
  id: _nextNodeId++,
1293
1316
  parent: undefined,
1294
- a: undefined,
1317
+ a: key,
1295
1318
  d: {
1296
1319
  keyExpr,
1297
1320
  valueExpr,
@@ -1306,14 +1329,14 @@ var DictionaryKeyEntryNode;
1306
1329
  })(DictionaryKeyEntryNode || (exports.DictionaryKeyEntryNode = DictionaryKeyEntryNode = {}));
1307
1330
  var DictionaryExpandEntryNode;
1308
1331
  (function (DictionaryExpandEntryNode) {
1309
- function create(expr) {
1332
+ function create(key, expr) {
1310
1333
  const node = {
1311
1334
  start: expr.start,
1312
1335
  length: expr.length,
1313
1336
  nodeType: 19 /* ParseNodeType.DictionaryExpandEntry */,
1314
1337
  id: _nextNodeId++,
1315
1338
  parent: undefined,
1316
- a: undefined,
1339
+ a: key,
1317
1340
  d: { expr },
1318
1341
  };
1319
1342
  expr.parent = node;
@@ -1323,14 +1346,14 @@ var DictionaryExpandEntryNode;
1323
1346
  })(DictionaryExpandEntryNode || (exports.DictionaryExpandEntryNode = DictionaryExpandEntryNode = {}));
1324
1347
  var SetNode;
1325
1348
  (function (SetNode) {
1326
- function create(range) {
1349
+ function create(key, range) {
1327
1350
  const node = {
1328
1351
  start: range.start,
1329
1352
  length: range.length,
1330
1353
  nodeType: 45 /* ParseNodeType.Set */,
1331
1354
  id: _nextNodeId++,
1332
1355
  parent: undefined,
1333
- a: undefined,
1356
+ a: key,
1334
1357
  d: { items: [] },
1335
1358
  };
1336
1359
  return node;
@@ -1339,14 +1362,14 @@ var SetNode;
1339
1362
  })(SetNode || (exports.SetNode = SetNode = {}));
1340
1363
  var ListNode;
1341
1364
  (function (ListNode) {
1342
- function create(range) {
1365
+ function create(key, range) {
1343
1366
  const node = {
1344
1367
  start: range.start,
1345
1368
  length: range.length,
1346
1369
  nodeType: 34 /* ParseNodeType.List */,
1347
1370
  id: _nextNodeId++,
1348
1371
  parent: undefined,
1349
- a: undefined,
1372
+ a: key,
1350
1373
  d: { items: [] },
1351
1374
  };
1352
1375
  return node;
@@ -1361,14 +1384,14 @@ var ArgCategory;
1361
1384
  })(ArgCategory || (exports.ArgCategory = ArgCategory = {}));
1362
1385
  var ArgumentNode;
1363
1386
  (function (ArgumentNode) {
1364
- function create(startToken, valueExpr, argCategory) {
1387
+ function create(key, startToken, valueExpr, argCategory) {
1365
1388
  const node = {
1366
1389
  start: startToken ? startToken.start : valueExpr.start,
1367
1390
  length: startToken ? startToken.length : valueExpr.length,
1368
1391
  nodeType: 1 /* ParseNodeType.Argument */,
1369
1392
  id: _nextNodeId++,
1370
1393
  parent: undefined,
1371
- a: undefined,
1394
+ a: key,
1372
1395
  d: {
1373
1396
  argCategory,
1374
1397
  name: undefined,
@@ -1383,14 +1406,14 @@ var ArgumentNode;
1383
1406
  })(ArgumentNode || (exports.ArgumentNode = ArgumentNode = {}));
1384
1407
  var DelNode;
1385
1408
  (function (DelNode) {
1386
- function create(delToken) {
1409
+ function create(key, delToken) {
1387
1410
  const node = {
1388
1411
  start: delToken.start,
1389
1412
  length: delToken.length,
1390
1413
  nodeType: 17 /* ParseNodeType.Del */,
1391
1414
  id: _nextNodeId++,
1392
1415
  parent: undefined,
1393
- a: undefined,
1416
+ a: key,
1394
1417
  d: { targets: [] },
1395
1418
  };
1396
1419
  return node;
@@ -1399,14 +1422,14 @@ var DelNode;
1399
1422
  })(DelNode || (exports.DelNode = DelNode = {}));
1400
1423
  var PassNode;
1401
1424
  (function (PassNode) {
1402
- function create(passToken) {
1425
+ function create(key, passToken) {
1403
1426
  const node = {
1404
1427
  start: passToken.start,
1405
1428
  length: passToken.length,
1406
1429
  nodeType: 42 /* ParseNodeType.Pass */,
1407
1430
  id: _nextNodeId++,
1408
1431
  parent: undefined,
1409
- a: undefined,
1432
+ a: key,
1410
1433
  d: {},
1411
1434
  };
1412
1435
  return node;
@@ -1415,14 +1438,14 @@ var PassNode;
1415
1438
  })(PassNode || (exports.PassNode = PassNode = {}));
1416
1439
  var ImportNode;
1417
1440
  (function (ImportNode) {
1418
- function create(importToken) {
1441
+ function create(key, importToken) {
1419
1442
  const node = {
1420
1443
  start: importToken.start,
1421
1444
  length: importToken.length,
1422
1445
  nodeType: 23 /* ParseNodeType.Import */,
1423
1446
  id: _nextNodeId++,
1424
1447
  parent: undefined,
1425
- a: undefined,
1448
+ a: key,
1426
1449
  d: { list: [] },
1427
1450
  };
1428
1451
  return node;
@@ -1431,14 +1454,14 @@ var ImportNode;
1431
1454
  })(ImportNode || (exports.ImportNode = ImportNode = {}));
1432
1455
  var ModuleNameNode;
1433
1456
  (function (ModuleNameNode) {
1434
- function create(range) {
1457
+ function create(key, range) {
1435
1458
  const node = {
1436
1459
  start: range.start,
1437
1460
  length: range.length,
1438
1461
  nodeType: 37 /* ParseNodeType.ModuleName */,
1439
1462
  id: _nextNodeId++,
1440
1463
  parent: undefined,
1441
- a: undefined,
1464
+ a: key,
1442
1465
  d: {
1443
1466
  leadingDots: 0,
1444
1467
  nameParts: [],
@@ -1450,14 +1473,14 @@ var ModuleNameNode;
1450
1473
  })(ModuleNameNode || (exports.ModuleNameNode = ModuleNameNode = {}));
1451
1474
  var ImportAsNode;
1452
1475
  (function (ImportAsNode) {
1453
- function create(module) {
1476
+ function create(key, module) {
1454
1477
  const node = {
1455
1478
  start: module.start,
1456
1479
  length: module.length,
1457
1480
  nodeType: 24 /* ParseNodeType.ImportAs */,
1458
1481
  id: _nextNodeId++,
1459
1482
  parent: undefined,
1460
- a: undefined,
1483
+ a: key,
1461
1484
  d: { module: module },
1462
1485
  };
1463
1486
  module.parent = node;
@@ -1467,14 +1490,14 @@ var ImportAsNode;
1467
1490
  })(ImportAsNode || (exports.ImportAsNode = ImportAsNode = {}));
1468
1491
  var ImportFromNode;
1469
1492
  (function (ImportFromNode) {
1470
- function create(fromToken, module) {
1493
+ function create(key, fromToken, module) {
1471
1494
  const node = {
1472
1495
  start: fromToken.start,
1473
1496
  length: fromToken.length,
1474
1497
  nodeType: 25 /* ParseNodeType.ImportFrom */,
1475
1498
  id: _nextNodeId++,
1476
1499
  parent: undefined,
1477
- a: undefined,
1500
+ a: key,
1478
1501
  d: {
1479
1502
  module,
1480
1503
  imports: [],
@@ -1490,14 +1513,14 @@ var ImportFromNode;
1490
1513
  })(ImportFromNode || (exports.ImportFromNode = ImportFromNode = {}));
1491
1514
  var ImportFromAsNode;
1492
1515
  (function (ImportFromAsNode) {
1493
- function create(name) {
1516
+ function create(key, name) {
1494
1517
  const node = {
1495
1518
  start: name.start,
1496
1519
  length: name.length,
1497
1520
  nodeType: 26 /* ParseNodeType.ImportFromAs */,
1498
1521
  id: _nextNodeId++,
1499
1522
  parent: undefined,
1500
- a: undefined,
1523
+ a: key,
1501
1524
  d: { name: name },
1502
1525
  };
1503
1526
  name.parent = node;
@@ -1507,14 +1530,14 @@ var ImportFromAsNode;
1507
1530
  })(ImportFromAsNode || (exports.ImportFromAsNode = ImportFromAsNode = {}));
1508
1531
  var GlobalNode;
1509
1532
  (function (GlobalNode) {
1510
- function create(range) {
1533
+ function create(key, range) {
1511
1534
  const node = {
1512
1535
  start: range.start,
1513
1536
  length: range.length,
1514
1537
  nodeType: 32 /* ParseNodeType.Global */,
1515
1538
  id: _nextNodeId++,
1516
1539
  parent: undefined,
1517
- a: undefined,
1540
+ a: key,
1518
1541
  d: { targets: [] },
1519
1542
  };
1520
1543
  return node;
@@ -1523,14 +1546,14 @@ var GlobalNode;
1523
1546
  })(GlobalNode || (exports.GlobalNode = GlobalNode = {}));
1524
1547
  var NonlocalNode;
1525
1548
  (function (NonlocalNode) {
1526
- function create(range) {
1549
+ function create(key, range) {
1527
1550
  const node = {
1528
1551
  start: range.start,
1529
1552
  length: range.length,
1530
1553
  nodeType: 39 /* ParseNodeType.Nonlocal */,
1531
1554
  id: _nextNodeId++,
1532
1555
  parent: undefined,
1533
- a: undefined,
1556
+ a: key,
1534
1557
  d: { targets: [] },
1535
1558
  };
1536
1559
  return node;
@@ -1539,14 +1562,14 @@ var NonlocalNode;
1539
1562
  })(NonlocalNode || (exports.NonlocalNode = NonlocalNode = {}));
1540
1563
  var AssertNode;
1541
1564
  (function (AssertNode) {
1542
- function create(assertToken, testExpr) {
1565
+ function create(key, assertToken, testExpr) {
1543
1566
  const node = {
1544
1567
  start: assertToken.start,
1545
1568
  length: assertToken.length,
1546
1569
  nodeType: 2 /* ParseNodeType.Assert */,
1547
1570
  id: _nextNodeId++,
1548
1571
  parent: undefined,
1549
- a: undefined,
1572
+ a: key,
1550
1573
  d: { testExpr },
1551
1574
  };
1552
1575
  testExpr.parent = node;
@@ -1557,14 +1580,14 @@ var AssertNode;
1557
1580
  })(AssertNode || (exports.AssertNode = AssertNode = {}));
1558
1581
  var BreakNode;
1559
1582
  (function (BreakNode) {
1560
- function create(range) {
1583
+ function create(key, range) {
1561
1584
  const node = {
1562
1585
  start: range.start,
1563
1586
  length: range.length,
1564
1587
  nodeType: 8 /* ParseNodeType.Break */,
1565
1588
  id: _nextNodeId++,
1566
1589
  parent: undefined,
1567
- a: undefined,
1590
+ a: key,
1568
1591
  d: {},
1569
1592
  };
1570
1593
  return node;
@@ -1573,14 +1596,14 @@ var BreakNode;
1573
1596
  })(BreakNode || (exports.BreakNode = BreakNode = {}));
1574
1597
  var ContinueNode;
1575
1598
  (function (ContinueNode) {
1576
- function create(range) {
1599
+ function create(key, range) {
1577
1600
  const node = {
1578
1601
  start: range.start,
1579
1602
  length: range.length,
1580
1603
  nodeType: 15 /* ParseNodeType.Continue */,
1581
1604
  id: _nextNodeId++,
1582
1605
  parent: undefined,
1583
- a: undefined,
1606
+ a: key,
1584
1607
  d: {},
1585
1608
  };
1586
1609
  return node;
@@ -1589,14 +1612,14 @@ var ContinueNode;
1589
1612
  })(ContinueNode || (exports.ContinueNode = ContinueNode = {}));
1590
1613
  var ReturnNode;
1591
1614
  (function (ReturnNode) {
1592
- function create(range) {
1615
+ function create(key, range) {
1593
1616
  const node = {
1594
1617
  start: range.start,
1595
1618
  length: range.length,
1596
1619
  nodeType: 44 /* ParseNodeType.Return */,
1597
1620
  id: _nextNodeId++,
1598
1621
  parent: undefined,
1599
- a: undefined,
1622
+ a: key,
1600
1623
  d: {},
1601
1624
  };
1602
1625
  return node;
@@ -1605,14 +1628,14 @@ var ReturnNode;
1605
1628
  })(ReturnNode || (exports.ReturnNode = ReturnNode = {}));
1606
1629
  var RaiseNode;
1607
1630
  (function (RaiseNode) {
1608
- function create(range) {
1631
+ function create(key, range) {
1609
1632
  const node = {
1610
1633
  start: range.start,
1611
1634
  length: range.length,
1612
1635
  nodeType: 43 /* ParseNodeType.Raise */,
1613
1636
  id: _nextNodeId++,
1614
1637
  parent: undefined,
1615
- a: undefined,
1638
+ a: key,
1616
1639
  d: {},
1617
1640
  };
1618
1641
  return node;
@@ -1621,14 +1644,14 @@ var RaiseNode;
1621
1644
  })(RaiseNode || (exports.RaiseNode = RaiseNode = {}));
1622
1645
  var MatchNode;
1623
1646
  (function (MatchNode) {
1624
- function create(matchToken, expr) {
1647
+ function create(key, matchToken, expr) {
1625
1648
  const node = {
1626
1649
  start: matchToken.start,
1627
1650
  length: matchToken.length,
1628
1651
  nodeType: 63 /* ParseNodeType.Match */,
1629
1652
  id: _nextNodeId++,
1630
1653
  parent: undefined,
1631
- a: undefined,
1654
+ a: key,
1632
1655
  d: {
1633
1656
  firstToken: matchToken,
1634
1657
  expr,
@@ -1643,14 +1666,14 @@ var MatchNode;
1643
1666
  })(MatchNode || (exports.MatchNode = MatchNode = {}));
1644
1667
  var CaseNode;
1645
1668
  (function (CaseNode) {
1646
- function create(caseToken, pattern, isIrrefutable, guardExpr, suite) {
1669
+ function create(key, caseToken, pattern, isIrrefutable, guardExpr, suite) {
1647
1670
  const node = {
1648
1671
  start: caseToken.start,
1649
1672
  length: caseToken.length,
1650
1673
  nodeType: 64 /* ParseNodeType.Case */,
1651
1674
  id: _nextNodeId++,
1652
1675
  parent: undefined,
1653
- a: undefined,
1676
+ a: key,
1654
1677
  d: {
1655
1678
  pattern,
1656
1679
  isIrrefutable,
@@ -1670,7 +1693,7 @@ var CaseNode;
1670
1693
  })(CaseNode || (exports.CaseNode = CaseNode = {}));
1671
1694
  var PatternSequenceNode;
1672
1695
  (function (PatternSequenceNode) {
1673
- function create(firstToken, entries) {
1696
+ function create(key, firstToken, entries) {
1674
1697
  const starEntryIndex = entries.findIndex((entry) => entry.d.orPatterns.length === 1 &&
1675
1698
  entry.d.orPatterns[0].nodeType === 69 /* ParseNodeType.PatternCapture */ &&
1676
1699
  entry.d.orPatterns[0].d.isStar);
@@ -1680,7 +1703,7 @@ var PatternSequenceNode;
1680
1703
  nodeType: 65 /* ParseNodeType.PatternSequence */,
1681
1704
  id: _nextNodeId++,
1682
1705
  parent: undefined,
1683
- a: undefined,
1706
+ a: key,
1684
1707
  d: {
1685
1708
  entries,
1686
1709
  starEntryIndex: starEntryIndex >= 0 ? starEntryIndex : undefined,
@@ -1698,14 +1721,14 @@ var PatternSequenceNode;
1698
1721
  })(PatternSequenceNode || (exports.PatternSequenceNode = PatternSequenceNode = {}));
1699
1722
  var PatternAsNode;
1700
1723
  (function (PatternAsNode) {
1701
- function create(orPatterns, target) {
1724
+ function create(key, orPatterns, target) {
1702
1725
  const node = {
1703
1726
  start: orPatterns[0].start,
1704
1727
  length: orPatterns[0].length,
1705
1728
  nodeType: 66 /* ParseNodeType.PatternAs */,
1706
1729
  id: _nextNodeId++,
1707
1730
  parent: undefined,
1708
- a: undefined,
1731
+ a: key,
1709
1732
  d: {
1710
1733
  orPatterns,
1711
1734
  target,
@@ -1727,14 +1750,14 @@ var PatternAsNode;
1727
1750
  })(PatternAsNode || (exports.PatternAsNode = PatternAsNode = {}));
1728
1751
  var PatternLiteralNode;
1729
1752
  (function (PatternLiteralNode) {
1730
- function create(expr) {
1753
+ function create(key, expr) {
1731
1754
  const node = {
1732
1755
  start: expr.start,
1733
1756
  length: expr.length,
1734
1757
  nodeType: 67 /* ParseNodeType.PatternLiteral */,
1735
1758
  id: _nextNodeId++,
1736
1759
  parent: undefined,
1737
- a: undefined,
1760
+ a: key,
1738
1761
  d: { expr },
1739
1762
  };
1740
1763
  expr.parent = node;
@@ -1744,14 +1767,14 @@ var PatternLiteralNode;
1744
1767
  })(PatternLiteralNode || (exports.PatternLiteralNode = PatternLiteralNode = {}));
1745
1768
  var PatternClassNode;
1746
1769
  (function (PatternClassNode) {
1747
- function create(className, args) {
1770
+ function create(key, className, args) {
1748
1771
  const node = {
1749
1772
  start: className.start,
1750
1773
  length: className.length,
1751
1774
  nodeType: 68 /* ParseNodeType.PatternClass */,
1752
1775
  id: _nextNodeId++,
1753
1776
  parent: undefined,
1754
- a: undefined,
1777
+ a: key,
1755
1778
  d: {
1756
1779
  className,
1757
1780
  args,
@@ -1770,14 +1793,14 @@ var PatternClassNode;
1770
1793
  })(PatternClassNode || (exports.PatternClassNode = PatternClassNode = {}));
1771
1794
  var PatternClassArgumentNode;
1772
1795
  (function (PatternClassArgumentNode) {
1773
- function create(pattern, name) {
1796
+ function create(key, pattern, name) {
1774
1797
  const node = {
1775
1798
  start: pattern.start,
1776
1799
  length: pattern.length,
1777
1800
  nodeType: 74 /* ParseNodeType.PatternClassArgument */,
1778
1801
  id: _nextNodeId++,
1779
1802
  parent: undefined,
1780
- a: undefined,
1803
+ a: key,
1781
1804
  d: {
1782
1805
  pattern,
1783
1806
  name,
@@ -1794,14 +1817,14 @@ var PatternClassArgumentNode;
1794
1817
  })(PatternClassArgumentNode || (exports.PatternClassArgumentNode = PatternClassArgumentNode = {}));
1795
1818
  var PatternCaptureNode;
1796
1819
  (function (PatternCaptureNode) {
1797
- function create(target, starToken) {
1820
+ function create(key, target, starToken) {
1798
1821
  const node = {
1799
1822
  start: target.start,
1800
1823
  length: target.length,
1801
1824
  nodeType: 69 /* ParseNodeType.PatternCapture */,
1802
1825
  id: _nextNodeId++,
1803
1826
  parent: undefined,
1804
- a: undefined,
1827
+ a: key,
1805
1828
  d: {
1806
1829
  target,
1807
1830
  isStar: starToken !== undefined,
@@ -1818,14 +1841,14 @@ var PatternCaptureNode;
1818
1841
  })(PatternCaptureNode || (exports.PatternCaptureNode = PatternCaptureNode = {}));
1819
1842
  var PatternMappingNode;
1820
1843
  (function (PatternMappingNode) {
1821
- function create(startToken, entries) {
1844
+ function create(key, startToken, entries) {
1822
1845
  const node = {
1823
1846
  start: startToken.start,
1824
1847
  length: startToken.length,
1825
1848
  nodeType: 70 /* ParseNodeType.PatternMapping */,
1826
1849
  id: _nextNodeId++,
1827
1850
  parent: undefined,
1828
- a: undefined,
1851
+ a: key,
1829
1852
  d: { entries },
1830
1853
  };
1831
1854
  if (entries.length > 0) {
@@ -1840,14 +1863,14 @@ var PatternMappingNode;
1840
1863
  })(PatternMappingNode || (exports.PatternMappingNode = PatternMappingNode = {}));
1841
1864
  var PatternMappingKeyEntryNode;
1842
1865
  (function (PatternMappingKeyEntryNode) {
1843
- function create(keyPattern, valuePattern) {
1866
+ function create(key, keyPattern, valuePattern) {
1844
1867
  const node = {
1845
1868
  start: keyPattern.start,
1846
1869
  length: keyPattern.length,
1847
1870
  nodeType: 71 /* ParseNodeType.PatternMappingKeyEntry */,
1848
1871
  id: _nextNodeId++,
1849
1872
  parent: undefined,
1850
- a: undefined,
1873
+ a: key,
1851
1874
  d: {
1852
1875
  keyPattern,
1853
1876
  valuePattern,
@@ -1862,14 +1885,14 @@ var PatternMappingKeyEntryNode;
1862
1885
  })(PatternMappingKeyEntryNode || (exports.PatternMappingKeyEntryNode = PatternMappingKeyEntryNode = {}));
1863
1886
  var PatternMappingExpandEntryNode;
1864
1887
  (function (PatternMappingExpandEntryNode) {
1865
- function create(starStarToken, target) {
1888
+ function create(key, starStarToken, target) {
1866
1889
  const node = {
1867
1890
  start: starStarToken.start,
1868
1891
  length: starStarToken.length,
1869
1892
  nodeType: 72 /* ParseNodeType.PatternMappingExpandEntry */,
1870
1893
  id: _nextNodeId++,
1871
1894
  parent: undefined,
1872
- a: undefined,
1895
+ a: key,
1873
1896
  d: { target },
1874
1897
  };
1875
1898
  target.parent = node;
@@ -1880,14 +1903,14 @@ var PatternMappingExpandEntryNode;
1880
1903
  })(PatternMappingExpandEntryNode || (exports.PatternMappingExpandEntryNode = PatternMappingExpandEntryNode = {}));
1881
1904
  var PatternValueNode;
1882
1905
  (function (PatternValueNode) {
1883
- function create(expr) {
1906
+ function create(key, expr) {
1884
1907
  const node = {
1885
1908
  start: expr.start,
1886
1909
  length: expr.length,
1887
1910
  nodeType: 73 /* ParseNodeType.PatternValue */,
1888
1911
  id: _nextNodeId++,
1889
1912
  parent: undefined,
1890
- a: undefined,
1913
+ a: key,
1891
1914
  d: { expr },
1892
1915
  };
1893
1916
  expr.parent = node;