@zzzen/pyright-internal 1.2.0-dev.20221016 → 1.2.0-dev.20221204

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 (343) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +7 -9
  2. package/dist/analyzer/backgroundAnalysisProgram.js +14 -52
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +43 -32
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.d.ts +15 -3
  7. package/dist/analyzer/checker.js +260 -143
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.d.ts +2 -2
  10. package/dist/analyzer/codeFlowEngine.js +85 -88
  11. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  12. package/dist/analyzer/codeFlowTypes.d.ts +1 -0
  13. package/dist/analyzer/codeFlowTypes.js +3 -1
  14. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  15. package/dist/analyzer/constraintSolver.js +11 -1
  16. package/dist/analyzer/constraintSolver.js.map +1 -1
  17. package/dist/analyzer/dataClasses.d.ts +3 -3
  18. package/dist/analyzer/dataClasses.js +92 -59
  19. package/dist/analyzer/dataClasses.js.map +1 -1
  20. package/dist/analyzer/declaration.js.map +1 -1
  21. package/dist/analyzer/declarationUtils.d.ts +1 -1
  22. package/dist/analyzer/declarationUtils.js +6 -4
  23. package/dist/analyzer/declarationUtils.js.map +1 -1
  24. package/dist/analyzer/docStringConversion.js +7 -5
  25. package/dist/analyzer/docStringConversion.js.map +1 -1
  26. package/dist/analyzer/importResolver.d.ts +3 -0
  27. package/dist/analyzer/importResolver.js +50 -8
  28. package/dist/analyzer/importResolver.js.map +1 -1
  29. package/dist/analyzer/importResult.d.ts +1 -0
  30. package/dist/analyzer/namedTuples.js +1 -1
  31. package/dist/analyzer/namedTuples.js.map +1 -1
  32. package/dist/analyzer/packageTypeVerifier.d.ts +2 -1
  33. package/dist/analyzer/packageTypeVerifier.js +16 -10
  34. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  35. package/dist/analyzer/parseTreeUtils.d.ts +2 -1
  36. package/dist/analyzer/parseTreeUtils.js +38 -3
  37. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  38. package/dist/analyzer/parseTreeWalker.d.ts +86 -79
  39. package/dist/analyzer/parseTreeWalker.js +384 -201
  40. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  41. package/dist/analyzer/program.d.ts +4 -7
  42. package/dist/analyzer/program.js +84 -79
  43. package/dist/analyzer/program.js.map +1 -1
  44. package/dist/analyzer/properties.js +10 -3
  45. package/dist/analyzer/properties.js.map +1 -1
  46. package/dist/analyzer/protocols.js +1 -1
  47. package/dist/analyzer/protocols.js.map +1 -1
  48. package/dist/analyzer/regions.d.ts +11 -0
  49. package/dist/analyzer/regions.js +57 -0
  50. package/dist/analyzer/regions.js.map +1 -0
  51. package/dist/analyzer/service.d.ts +11 -6
  52. package/dist/analyzer/service.js +127 -65
  53. package/dist/analyzer/service.js.map +1 -1
  54. package/dist/analyzer/sourceFile.d.ts +5 -2
  55. package/dist/analyzer/sourceFile.js +23 -10
  56. package/dist/analyzer/sourceFile.js.map +1 -1
  57. package/dist/analyzer/sourceFileInfoUtils.d.ts +1 -1
  58. package/dist/analyzer/sourceFileInfoUtils.js +1 -1
  59. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  60. package/dist/analyzer/sourceMapper.d.ts +6 -1
  61. package/dist/analyzer/sourceMapper.js +28 -5
  62. package/dist/analyzer/sourceMapper.js.map +1 -1
  63. package/dist/analyzer/sourceMapperUtils.d.ts +2 -1
  64. package/dist/analyzer/sourceMapperUtils.js +17 -5
  65. package/dist/analyzer/sourceMapperUtils.js.map +1 -1
  66. package/dist/analyzer/staticExpressions.js +19 -9
  67. package/dist/analyzer/staticExpressions.js.map +1 -1
  68. package/dist/analyzer/symbolUtils.d.ts +1 -0
  69. package/dist/analyzer/symbolUtils.js +5 -1
  70. package/dist/analyzer/symbolUtils.js.map +1 -1
  71. package/dist/analyzer/typeEvaluator.js +664 -257
  72. package/dist/analyzer/typeEvaluator.js.map +1 -1
  73. package/dist/analyzer/typeEvaluatorTypes.d.ts +16 -4
  74. package/dist/analyzer/typeGuards.js +9 -0
  75. package/dist/analyzer/typeGuards.js.map +1 -1
  76. package/dist/analyzer/typePrinter.d.ts +3 -1
  77. package/dist/analyzer/typePrinter.js +143 -28
  78. package/dist/analyzer/typePrinter.js.map +1 -1
  79. package/dist/analyzer/typeStubWriter.js +5 -1
  80. package/dist/analyzer/typeStubWriter.js.map +1 -1
  81. package/dist/analyzer/typeUtils.d.ts +4 -2
  82. package/dist/analyzer/typeUtils.js +114 -20
  83. package/dist/analyzer/typeUtils.js.map +1 -1
  84. package/dist/analyzer/typedDicts.js +8 -6
  85. package/dist/analyzer/typedDicts.js.map +1 -1
  86. package/dist/analyzer/types.d.ts +7 -5
  87. package/dist/analyzer/types.js +45 -20
  88. package/dist/analyzer/types.js.map +1 -1
  89. package/dist/backgroundAnalysisBase.d.ts +6 -4
  90. package/dist/backgroundAnalysisBase.js +30 -9
  91. package/dist/backgroundAnalysisBase.js.map +1 -1
  92. package/dist/backgroundThreadBase.d.ts +2 -1
  93. package/dist/backgroundThreadBase.js +4 -0
  94. package/dist/backgroundThreadBase.js.map +1 -1
  95. package/dist/commands/createTypeStub.js +3 -1
  96. package/dist/commands/createTypeStub.js.map +1 -1
  97. package/dist/common/configOptions.d.ts +1 -0
  98. package/dist/common/configOptions.js +4 -0
  99. package/dist/common/configOptions.js.map +1 -1
  100. package/dist/common/core.d.ts +2 -0
  101. package/dist/common/core.js +24 -3
  102. package/dist/common/core.js.map +1 -1
  103. package/dist/common/diagnostic.d.ts +8 -0
  104. package/dist/common/diagnostic.js +5 -1
  105. package/dist/common/diagnostic.js.map +1 -1
  106. package/dist/common/diagnosticRules.d.ts +2 -1
  107. package/dist/common/diagnosticRules.js +1 -0
  108. package/dist/common/diagnosticRules.js.map +1 -1
  109. package/dist/common/fileSystem.d.ts +1 -0
  110. package/dist/common/fileSystem.js.map +1 -1
  111. package/dist/common/pathUtils.d.ts +1 -0
  112. package/dist/common/pathUtils.js +17 -4
  113. package/dist/common/pathUtils.js.map +1 -1
  114. package/dist/common/pythonVersion.d.ts +1 -1
  115. package/dist/common/pythonVersion.js +1 -1
  116. package/dist/common/realFileSystem.js +12 -3
  117. package/dist/common/realFileSystem.js.map +1 -1
  118. package/dist/common/workspaceEditUtils.d.ts +6 -1
  119. package/dist/common/workspaceEditUtils.js +72 -1
  120. package/dist/common/workspaceEditUtils.js.map +1 -1
  121. package/dist/languageServerBase.d.ts +16 -8
  122. package/dist/languageServerBase.js +76 -32
  123. package/dist/languageServerBase.js.map +1 -1
  124. package/dist/languageService/analyzerServiceExecutor.d.ts +6 -2
  125. package/dist/languageService/analyzerServiceExecutor.js +8 -6
  126. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  127. package/dist/languageService/autoImporter.js +2 -1
  128. package/dist/languageService/autoImporter.js.map +1 -1
  129. package/dist/languageService/codeActionProvider.js +30 -0
  130. package/dist/languageService/codeActionProvider.js.map +1 -1
  131. package/dist/languageService/completionProvider.d.ts +2 -0
  132. package/dist/languageService/completionProvider.js +84 -32
  133. package/dist/languageService/completionProvider.js.map +1 -1
  134. package/dist/languageService/definitionProvider.d.ts +2 -0
  135. package/dist/languageService/definitionProvider.js +3 -0
  136. package/dist/languageService/definitionProvider.js.map +1 -1
  137. package/dist/languageService/documentSymbolCollector.js +7 -3
  138. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  139. package/dist/languageService/documentSymbolProvider.js +1 -1
  140. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  141. package/dist/languageService/hoverProvider.d.ts +1 -1
  142. package/dist/languageService/hoverProvider.js +73 -38
  143. package/dist/languageService/hoverProvider.js.map +1 -1
  144. package/dist/languageService/indentationUtils.d.ts +3 -0
  145. package/dist/languageService/indentationUtils.js +4 -3
  146. package/dist/languageService/indentationUtils.js.map +1 -1
  147. package/dist/languageService/referencesProvider.js +2 -1
  148. package/dist/languageService/referencesProvider.js.map +1 -1
  149. package/dist/languageService/signatureHelpProvider.js +1 -2
  150. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  151. package/dist/languageService/tooltipUtils.js +30 -19
  152. package/dist/languageService/tooltipUtils.js.map +1 -1
  153. package/dist/localization/localize.d.ts +29 -4
  154. package/dist/localization/localize.js +20 -5
  155. package/dist/localization/localize.js.map +1 -1
  156. package/dist/localization/package.nls.en-us.json +18 -3
  157. package/dist/parser/parseNodes.d.ts +2 -1
  158. package/dist/parser/parseNodes.js +6 -1
  159. package/dist/parser/parseNodes.js.map +1 -1
  160. package/dist/parser/parser.js +29 -15
  161. package/dist/parser/parser.js.map +1 -1
  162. package/dist/parser/tokenizer.js +19 -9
  163. package/dist/parser/tokenizer.js.map +1 -1
  164. package/dist/pyright.js +4 -4
  165. package/dist/pyright.js.map +1 -1
  166. package/dist/pyrightFileSystem.d.ts +1 -0
  167. package/dist/pyrightFileSystem.js +3 -0
  168. package/dist/pyrightFileSystem.js.map +1 -1
  169. package/dist/readonlyAugmentedFileSystem.d.ts +1 -0
  170. package/dist/readonlyAugmentedFileSystem.js +3 -0
  171. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  172. package/dist/server.d.ts +1 -1
  173. package/dist/server.js +1 -1
  174. package/dist/server.js.map +1 -1
  175. package/dist/tests/chainedSourceFiles.test.js +2 -0
  176. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  177. package/dist/tests/checker.test.js +26 -3
  178. package/dist/tests/checker.test.js.map +1 -1
  179. package/dist/tests/config.test.js +11 -0
  180. package/dist/tests/config.test.js.map +1 -1
  181. package/dist/tests/diagnostics.test.d.ts +1 -0
  182. package/dist/tests/diagnostics.test.js +37 -0
  183. package/dist/tests/diagnostics.test.js.map +1 -0
  184. package/dist/tests/docStringConversion.test.js +71 -12
  185. package/dist/tests/docStringConversion.test.js.map +1 -1
  186. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js +1 -1
  187. package/dist/tests/fourslash/completions.autoimport.shadow.fourslash.js.map +1 -1
  188. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js +5 -5
  189. package/dist/tests/fourslash/completions.builtinDocstrings.fourslash.js.map +1 -1
  190. package/dist/tests/fourslash/completions.classVariable.fourslash.js +119 -24
  191. package/dist/tests/fourslash/completions.classVariable.fourslash.js.map +1 -1
  192. package/dist/tests/fourslash/{signature.paramspec.fourslash.d.ts → completions.dunderNew.Inheritance.fourslash.d.ts} +0 -0
  193. package/dist/tests/fourslash/completions.dunderNew.Inheritance.fourslash.js +29 -0
  194. package/dist/tests/fourslash/completions.dunderNew.Inheritance.fourslash.js.map +1 -0
  195. package/dist/tests/fourslash/completions.dunderNew.fourslash.d.ts +1 -0
  196. package/dist/tests/fourslash/completions.dunderNew.fourslash.js +20 -0
  197. package/dist/tests/fourslash/completions.dunderNew.fourslash.js.map +1 -0
  198. package/dist/tests/fourslash/completions.fourslash.js +2 -2
  199. package/dist/tests/fourslash/completions.fourslash.js.map +1 -1
  200. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js +1 -1
  201. package/dist/tests/fourslash/completions.libCodeAndStub.fourslash.js.map +1 -1
  202. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js +1 -1
  203. package/dist/tests/fourslash/completions.libCodeNoStub.fourslash.js.map +1 -1
  204. package/dist/tests/fourslash/completions.libStub.fourslash.js +1 -1
  205. package/dist/tests/fourslash/completions.libStub.fourslash.js.map +1 -1
  206. package/dist/tests/fourslash/completions.localCode.fourslash.js +2 -2
  207. package/dist/tests/fourslash/completions.localCode.fourslash.js.map +1 -1
  208. package/dist/tests/fourslash/completions.plainText.fourslash.js +2 -2
  209. package/dist/tests/fourslash/completions.plainText.fourslash.js.map +1 -1
  210. package/dist/tests/fourslash/completions.self.fourslash.js +2 -2
  211. package/dist/tests/fourslash/completions.self.fourslash.js.map +1 -1
  212. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js +1 -1
  213. package/dist/tests/fourslash/completions.wildcardimports.fourslash.js.map +1 -1
  214. package/dist/tests/fourslash/findDefinitions.namespaceImport.fourslash.js +2 -2
  215. package/dist/tests/fourslash/findDefinitions.namespaceImport.fourslash.js.map +1 -1
  216. package/dist/tests/fourslash/findDefinitions.namespaceImportWithInit.fourslash.d.ts +1 -0
  217. package/dist/tests/fourslash/findDefinitions.namespaceImportWithInit.fourslash.js +32 -0
  218. package/dist/tests/fourslash/findDefinitions.namespaceImportWithInit.fourslash.js.map +1 -0
  219. package/dist/tests/fourslash/fourslash.d.ts +2 -1
  220. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js +2 -2
  221. package/dist/tests/fourslash/hover.builtinDocstrings.fourslash.js.map +1 -1
  222. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js +4 -4
  223. package/dist/tests/fourslash/hover.docFromSrc.fourslash.js.map +1 -1
  224. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js +1 -1
  225. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.js.map +1 -1
  226. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js +1 -1
  227. package/dist/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.js.map +1 -1
  228. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js +1 -1
  229. package/dist/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.js.map +1 -1
  230. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js +1 -1
  231. package/dist/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.js.map +1 -1
  232. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js +1 -1
  233. package/dist/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.js.map +1 -1
  234. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js +2 -2
  235. package/dist/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.js.map +1 -1
  236. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js +1 -1
  237. package/dist/tests/fourslash/hover.docFromSrc.typeshed.fourslash.js.map +1 -1
  238. package/dist/tests/fourslash/hover.docstring.alias.fourslash.d.ts +1 -0
  239. package/dist/tests/fourslash/hover.docstring.alias.fourslash.js +24 -0
  240. package/dist/tests/fourslash/hover.docstring.alias.fourslash.js.map +1 -0
  241. package/dist/tests/fourslash/hover.docstring.links.fourslash.js +1 -1
  242. package/dist/tests/fourslash/hover.docstring.links.fourslash.js.map +1 -1
  243. package/dist/tests/fourslash/hover.docstring.split.fourslash.js +3 -3
  244. package/dist/tests/fourslash/hover.docstring.split.fourslash.js.map +1 -1
  245. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.d.ts +1 -0
  246. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js +13 -0
  247. package/dist/tests/fourslash/hover.dunderNew.basic.fourslash.js.map +1 -0
  248. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.d.ts +1 -0
  249. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js +15 -0
  250. package/dist/tests/fourslash/hover.dunderNew.inheritance.fourslash.js.map +1 -0
  251. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.d.ts +1 -0
  252. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js +21 -0
  253. package/dist/tests/fourslash/hover.dunderNew.inheritance2.fourslash.js.map +1 -0
  254. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.d.ts +1 -0
  255. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js +17 -0
  256. package/dist/tests/fourslash/hover.dunderNew.overloads.fourslash.js.map +1 -0
  257. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.d.ts +1 -0
  258. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js +15 -0
  259. package/dist/tests/fourslash/hover.dunderNew.withInit.fourslash.js.map +1 -0
  260. package/dist/tests/fourslash/hover.fourslash.js +1 -1
  261. package/dist/tests/fourslash/hover.fourslash.js.map +1 -1
  262. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js +3 -3
  263. package/dist/tests/fourslash/hover.inherited.docFromSrc.fourslash.js.map +1 -1
  264. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js +2 -2
  265. package/dist/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.js.map +1 -1
  266. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js +2 -2
  267. package/dist/tests/fourslash/hover.inherited.docFromStub.fourslash.js.map +1 -1
  268. package/dist/tests/fourslash/hover.init.fourslash.js +1 -1
  269. package/dist/tests/fourslash/hover.init.fourslash.js.map +1 -1
  270. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js +1 -1
  271. package/dist/tests/fourslash/hover.libCodeAndStub.fourslash.js.map +1 -1
  272. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js +1 -1
  273. package/dist/tests/fourslash/hover.libCodeNoStub.fourslash.js.map +1 -1
  274. package/dist/tests/fourslash/hover.libStub.fourslash.js +1 -1
  275. package/dist/tests/fourslash/hover.libStub.fourslash.js.map +1 -1
  276. package/dist/tests/fourslash/hover.plainText.fourslash.js +1 -1
  277. package/dist/tests/fourslash/hover.plainText.fourslash.js.map +1 -1
  278. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js +1 -1
  279. package/dist/tests/fourslash/hover.wildcardimports.fourslash.js.map +1 -1
  280. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js +1 -1
  281. package/dist/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.js.map +1 -1
  282. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js +1 -1
  283. package/dist/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.js.map +1 -1
  284. package/dist/tests/fourslash/shadowedImports.fourslash.d.ts +1 -0
  285. package/dist/tests/fourslash/shadowedImports.fourslash.js +75 -0
  286. package/dist/tests/fourslash/shadowedImports.fourslash.js.map +1 -0
  287. package/dist/tests/fourslash/signature.dunderNew.fourslash.d.ts +1 -0
  288. package/dist/tests/fourslash/signature.dunderNew.fourslash.js +24 -0
  289. package/dist/tests/fourslash/signature.dunderNew.fourslash.js.map +1 -0
  290. package/dist/tests/harness/fourslash/runner.js +1 -1
  291. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  292. package/dist/tests/harness/fourslash/testLanguageService.d.ts +3 -1
  293. package/dist/tests/harness/fourslash/testLanguageService.js +5 -4
  294. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  295. package/dist/tests/harness/fourslash/testState.d.ts +7 -7
  296. package/dist/tests/harness/fourslash/testState.js +79 -163
  297. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  298. package/dist/tests/harness/fourslash/workspaceEditTestUtils.d.ts +16 -0
  299. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +159 -0
  300. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -0
  301. package/dist/tests/harness/vfs/filesystem.d.ts +1 -0
  302. package/dist/tests/harness/vfs/filesystem.js +3 -0
  303. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  304. package/dist/tests/indentationUtils.ptvs.test.js +1 -1
  305. package/dist/tests/indentationUtils.test.js +4 -4
  306. package/dist/tests/ipythonMode.test.js +39 -0
  307. package/dist/tests/ipythonMode.test.js.map +1 -1
  308. package/dist/tests/logger.test.js +3 -1
  309. package/dist/tests/logger.test.js.map +1 -1
  310. package/dist/tests/parser.test.js +3 -3
  311. package/dist/tests/pathUtils.test.js +7 -0
  312. package/dist/tests/pathUtils.test.js.map +1 -1
  313. package/dist/tests/service.test.d.ts +1 -0
  314. package/dist/tests/service.test.js +159 -0
  315. package/dist/tests/service.test.js.map +1 -0
  316. package/dist/tests/sourceFile.test.js +34 -1
  317. package/dist/tests/sourceFile.test.js.map +1 -1
  318. package/dist/tests/sourceMapperUtils.test.js +39 -4
  319. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  320. package/dist/tests/tokenizer.test.js +6 -2
  321. package/dist/tests/tokenizer.test.js.map +1 -1
  322. package/dist/tests/typeEvaluator1.test.js +16 -6
  323. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  324. package/dist/tests/typeEvaluator2.test.js +15 -3
  325. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  326. package/dist/tests/typeEvaluator3.test.js +51 -11
  327. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  328. package/dist/tests/typeEvaluator4.test.js +11 -7
  329. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  330. package/dist/tests/typeEvaluator5.test.js +48 -0
  331. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  332. package/dist/tests/typePrinter.test.d.ts +1 -0
  333. package/dist/tests/typePrinter.test.js +148 -0
  334. package/dist/tests/typePrinter.test.js.map +1 -0
  335. package/dist/tests/workspaceEditUtils.test.d.ts +1 -0
  336. package/dist/tests/workspaceEditUtils.test.js +167 -0
  337. package/dist/tests/workspaceEditUtils.test.js.map +1 -0
  338. package/dist/workspaceMap.d.ts +4 -1
  339. package/dist/workspaceMap.js +64 -16
  340. package/dist/workspaceMap.js.map +1 -1
  341. package/package.json +3 -3
  342. package/dist/tests/fourslash/signature.paramspec.fourslash.js +0 -30
  343. package/dist/tests/fourslash/signature.paramspec.fourslash.js.map +0 -1
@@ -7,448 +7,631 @@
7
7
  *
8
8
  * Class that traverses a parse tree.
9
9
  */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
10
29
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.ParseTreeWalker = void 0;
30
+ exports.ParseTreeWalker = exports.ParseTreeVisitor = exports.getChildNodes = void 0;
31
+ const debug = __importStar(require("../common/debug"));
32
+ // Get child nodes of the given node.
33
+ function getChildNodes(node) {
34
+ var _a;
35
+ switch (node.nodeType) {
36
+ case 0 /* Error */:
37
+ return [node.child, ...((_a = node.decorators) !== null && _a !== void 0 ? _a : [])];
38
+ case 1 /* Argument */:
39
+ return [node.name, node.valueExpression];
40
+ case 2 /* Assert */:
41
+ return [node.testExpression, node.exceptionExpression];
42
+ case 4 /* AssignmentExpression */:
43
+ return [node.name, node.rightExpression];
44
+ case 3 /* Assignment */:
45
+ return [node.leftExpression, node.rightExpression, node.typeAnnotationComment];
46
+ case 5 /* AugmentedAssignment */:
47
+ return [node.leftExpression, node.rightExpression];
48
+ case 6 /* Await */:
49
+ return [node.expression];
50
+ case 7 /* BinaryOperation */:
51
+ return [node.leftExpression, node.rightExpression];
52
+ case 8 /* Break */:
53
+ return [];
54
+ case 9 /* Call */:
55
+ return [node.leftExpression, ...node.arguments];
56
+ case 64 /* Case */:
57
+ return [node.pattern, node.guardExpression, node.suite];
58
+ case 10 /* Class */:
59
+ return [...node.decorators, node.name, node.typeParameters, ...node.arguments, node.suite];
60
+ case 11 /* Constant */:
61
+ return [];
62
+ case 12 /* Continue */:
63
+ return [];
64
+ case 13 /* Decorator */:
65
+ return [node.expression];
66
+ case 14 /* Del */:
67
+ return node.expressions;
68
+ case 15 /* Dictionary */:
69
+ return node.entries;
70
+ case 16 /* DictionaryExpandEntry */:
71
+ return [node.expandExpression];
72
+ case 17 /* DictionaryKeyEntry */:
73
+ return [node.keyExpression, node.valueExpression];
74
+ case 18 /* Ellipsis */:
75
+ return [];
76
+ case 19 /* If */:
77
+ return [node.testExpression, node.ifSuite, node.elseSuite];
78
+ case 20 /* Import */:
79
+ return node.list;
80
+ case 21 /* ImportAs */:
81
+ return [node.module, node.alias];
82
+ case 22 /* ImportFrom */:
83
+ return [node.module, ...node.imports];
84
+ case 23 /* ImportFromAs */:
85
+ return [node.name, node.alias];
86
+ case 24 /* Index */:
87
+ return [node.baseExpression, ...node.items];
88
+ case 25 /* Except */:
89
+ return [node.typeExpression, node.name, node.exceptSuite];
90
+ case 26 /* For */:
91
+ return [node.targetExpression, node.iterableExpression, node.forSuite, node.elseSuite];
92
+ case 27 /* FormatString */:
93
+ return node.expressions;
94
+ case 28 /* Function */:
95
+ return [
96
+ ...node.decorators,
97
+ node.name,
98
+ node.typeParameters,
99
+ ...node.parameters,
100
+ node.returnTypeAnnotation,
101
+ node.functionAnnotationComment,
102
+ node.suite,
103
+ ];
104
+ case 62 /* FunctionAnnotation */:
105
+ return [...node.paramTypeAnnotations, node.returnTypeAnnotation];
106
+ case 29 /* Global */:
107
+ return node.nameList;
108
+ case 30 /* Lambda */:
109
+ return [...node.parameters, node.expression];
110
+ case 31 /* List */:
111
+ return node.entries;
112
+ case 32 /* ListComprehension */:
113
+ return [node.expression, ...node.forIfNodes];
114
+ case 33 /* ListComprehensionFor */:
115
+ return [node.targetExpression, node.iterableExpression];
116
+ case 34 /* ListComprehensionIf */:
117
+ return [node.testExpression];
118
+ case 63 /* Match */:
119
+ return [node.subjectExpression, ...node.cases];
120
+ case 35 /* MemberAccess */:
121
+ return [node.leftExpression, node.memberName];
122
+ case 37 /* ModuleName */:
123
+ return node.nameParts;
124
+ case 36 /* Module */:
125
+ return [...node.statements];
126
+ case 38 /* Name */:
127
+ return [];
128
+ case 39 /* Nonlocal */:
129
+ return node.nameList;
130
+ case 40 /* Number */:
131
+ return [];
132
+ case 41 /* Parameter */:
133
+ return [node.name, node.typeAnnotation, node.typeAnnotationComment, node.defaultValue];
134
+ case 42 /* Pass */:
135
+ return [];
136
+ case 66 /* PatternAs */:
137
+ return [...node.orPatterns, node.target];
138
+ case 68 /* PatternClass */:
139
+ return [node.className, ...node.arguments];
140
+ case 74 /* PatternClassArgument */:
141
+ return [node.name, node.pattern];
142
+ case 69 /* PatternCapture */:
143
+ return [node.target];
144
+ case 67 /* PatternLiteral */:
145
+ return [node.expression];
146
+ case 72 /* PatternMappingExpandEntry */:
147
+ return [node.target];
148
+ case 71 /* PatternMappingKeyEntry */:
149
+ return [node.keyPattern, node.valuePattern];
150
+ case 70 /* PatternMapping */:
151
+ return [...node.entries];
152
+ case 65 /* PatternSequence */:
153
+ return [...node.entries];
154
+ case 73 /* PatternValue */:
155
+ return [node.expression];
156
+ case 43 /* Raise */:
157
+ return [node.typeExpression, node.valueExpression, node.tracebackExpression];
158
+ case 44 /* Return */:
159
+ return [node.returnExpression];
160
+ case 45 /* Set */:
161
+ return node.entries;
162
+ case 46 /* Slice */:
163
+ return [node.startValue, node.endValue, node.stepValue];
164
+ case 47 /* StatementList */:
165
+ return node.statements;
166
+ case 48 /* StringList */:
167
+ return [node.typeAnnotation, ...node.strings];
168
+ case 49 /* String */:
169
+ return [];
170
+ case 50 /* Suite */:
171
+ return [...node.statements];
172
+ case 51 /* Ternary */:
173
+ return [node.ifExpression, node.testExpression, node.elseExpression];
174
+ case 52 /* Tuple */:
175
+ return node.expressions;
176
+ case 53 /* Try */:
177
+ return [node.trySuite, ...node.exceptClauses, node.elseSuite, node.finallySuite];
178
+ case 77 /* TypeAlias */:
179
+ return [node.name, node.typeParameters, node.expression];
180
+ case 54 /* TypeAnnotation */:
181
+ return [node.valueExpression, node.typeAnnotation];
182
+ case 75 /* TypeParameter */:
183
+ return [node.name, node.boundExpression, node.defaultExpression];
184
+ case 76 /* TypeParameterList */:
185
+ return [...node.parameters];
186
+ case 55 /* UnaryOperation */:
187
+ return [node.expression];
188
+ case 56 /* Unpack */:
189
+ return [node.expression];
190
+ case 57 /* While */:
191
+ return [node.testExpression, node.whileSuite, node.elseSuite];
192
+ case 58 /* With */:
193
+ return [...node.withItems, node.suite];
194
+ case 59 /* WithItem */:
195
+ return [node.expression, node.target];
196
+ case 60 /* Yield */:
197
+ return [node.expression];
198
+ case 61 /* YieldFrom */:
199
+ return [node.expression];
200
+ default:
201
+ debug.assertNever(node, `Unknown node type ${node}`);
202
+ }
203
+ }
204
+ exports.getChildNodes = getChildNodes;
12
205
  // To use this class, create a subclass and override the
13
206
  // visitXXX methods that you want to handle.
14
- class ParseTreeWalker {
15
- walk(node) {
16
- const childrenToWalk = this.visitNode(node);
17
- if (childrenToWalk.length > 0) {
18
- this.walkMultiple(childrenToWalk);
19
- }
207
+ class ParseTreeVisitor {
208
+ constructor(_default) {
209
+ this._default = _default;
210
+ // empty
20
211
  }
21
- walkMultiple(nodes) {
22
- nodes.forEach((node) => {
23
- if (node) {
24
- this.walk(node);
25
- }
26
- });
27
- }
28
- // Calls the node-specific method (visitXXXX). If the method
29
- // returns true, all child nodes for the node are returned.
30
- // If the method returns false, we assume that the handler
31
- // has already handled the child nodes, so an empty list is
32
- // returned.
33
- visitNode(node) {
34
- var _a;
212
+ visit(node) {
35
213
  switch (node.nodeType) {
36
214
  case 0 /* Error */:
37
- return this.visitError(node) ? [node.child, ...((_a = node.decorators) !== null && _a !== void 0 ? _a : [])] : [];
215
+ return this.visitError(node);
38
216
  case 1 /* Argument */:
39
- return this.visitArgument(node) ? [node.name, node.valueExpression] : [];
217
+ return this.visitArgument(node);
40
218
  case 2 /* Assert */:
41
- return this.visitAssert(node) ? [node.testExpression, node.exceptionExpression] : [];
219
+ return this.visitAssert(node);
42
220
  case 4 /* AssignmentExpression */:
43
- return this.visitAssignmentExpression(node) ? [node.name, node.rightExpression] : [];
221
+ return this.visitAssignmentExpression(node);
44
222
  case 3 /* Assignment */:
45
- return this.visitAssignment(node)
46
- ? [node.leftExpression, node.rightExpression, node.typeAnnotationComment]
47
- : [];
223
+ return this.visitAssignment(node);
48
224
  case 5 /* AugmentedAssignment */:
49
- return this.visitAugmentedAssignment(node) ? [node.leftExpression, node.rightExpression] : [];
225
+ return this.visitAugmentedAssignment(node);
50
226
  case 6 /* Await */:
51
- return this.visitAwait(node) ? [node.expression] : [];
227
+ return this.visitAwait(node);
52
228
  case 7 /* BinaryOperation */:
53
- return this.visitBinaryOperation(node) ? [node.leftExpression, node.rightExpression] : [];
229
+ return this.visitBinaryOperation(node);
54
230
  case 8 /* Break */:
55
- return this.visitBreak(node) ? [] : [];
231
+ return this.visitBreak(node);
56
232
  case 9 /* Call */:
57
- return this.visitCall(node) ? [node.leftExpression, ...node.arguments] : [];
233
+ return this.visitCall(node);
58
234
  case 64 /* Case */:
59
- return this.visitCase(node) ? [node.pattern, node.guardExpression, node.suite] : [];
235
+ return this.visitCase(node);
60
236
  case 10 /* Class */:
61
- return this.visitClass(node)
62
- ? [...node.decorators, node.name, node.typeParameters, ...node.arguments, node.suite]
63
- : [];
237
+ return this.visitClass(node);
64
238
  case 11 /* Constant */:
65
- return this.visitConstant(node) ? [] : [];
239
+ return this.visitConstant(node);
66
240
  case 12 /* Continue */:
67
- return this.visitContinue(node) ? [] : [];
241
+ return this.visitContinue(node);
68
242
  case 13 /* Decorator */:
69
- return this.visitDecorator(node) ? [node.expression] : [];
243
+ return this.visitDecorator(node);
70
244
  case 14 /* Del */:
71
- return this.visitDel(node) ? node.expressions : [];
245
+ return this.visitDel(node);
72
246
  case 15 /* Dictionary */:
73
- return this.visitDictionary(node) ? node.entries : [];
247
+ return this.visitDictionary(node);
74
248
  case 16 /* DictionaryExpandEntry */:
75
- return this.visitDictionaryExpandEntry(node) ? [node.expandExpression] : [];
249
+ return this.visitDictionaryExpandEntry(node);
76
250
  case 17 /* DictionaryKeyEntry */:
77
- return this.visitDictionaryKeyEntry(node) ? [node.keyExpression, node.valueExpression] : [];
251
+ return this.visitDictionaryKeyEntry(node);
78
252
  case 18 /* Ellipsis */:
79
- return this.visitEllipsis(node) ? [] : [];
253
+ return this.visitEllipsis(node);
80
254
  case 19 /* If */:
81
- return this.visitIf(node) ? [node.testExpression, node.ifSuite, node.elseSuite] : [];
255
+ return this.visitIf(node);
82
256
  case 20 /* Import */:
83
- return this.visitImport(node) ? node.list : [];
257
+ return this.visitImport(node);
84
258
  case 21 /* ImportAs */:
85
- return this.visitImportAs(node) ? [node.module, node.alias] : [];
259
+ return this.visitImportAs(node);
86
260
  case 22 /* ImportFrom */:
87
- return this.visitImportFrom(node) ? [node.module, ...node.imports] : [];
261
+ return this.visitImportFrom(node);
88
262
  case 23 /* ImportFromAs */:
89
- return this.visitImportFromAs(node) ? [node.name, node.alias] : [];
263
+ return this.visitImportFromAs(node);
90
264
  case 24 /* Index */:
91
- return this.visitIndex(node) ? [node.baseExpression, ...node.items] : [];
265
+ return this.visitIndex(node);
92
266
  case 25 /* Except */:
93
- return this.visitExcept(node) ? [node.typeExpression, node.name, node.exceptSuite] : [];
267
+ return this.visitExcept(node);
94
268
  case 26 /* For */:
95
- return this.visitFor(node)
96
- ? [node.targetExpression, node.iterableExpression, node.forSuite, node.elseSuite]
97
- : [];
269
+ return this.visitFor(node);
98
270
  case 27 /* FormatString */:
99
- return this.visitFormatString(node) ? node.expressions : [];
271
+ return this.visitFormatString(node);
100
272
  case 28 /* Function */:
101
- return this.visitFunction(node)
102
- ? [
103
- ...node.decorators,
104
- node.name,
105
- node.typeParameters,
106
- ...node.parameters,
107
- node.returnTypeAnnotation,
108
- node.functionAnnotationComment,
109
- node.suite,
110
- ]
111
- : [];
273
+ return this.visitFunction(node);
112
274
  case 62 /* FunctionAnnotation */:
113
- return this.visitFunctionAnnotation(node)
114
- ? [...node.paramTypeAnnotations, node.returnTypeAnnotation]
115
- : [];
275
+ return this.visitFunctionAnnotation(node);
116
276
  case 29 /* Global */:
117
- return this.visitGlobal(node) ? node.nameList : [];
277
+ return this.visitGlobal(node);
118
278
  case 30 /* Lambda */:
119
- return this.visitLambda(node) ? [...node.parameters, node.expression] : [];
279
+ return this.visitLambda(node);
120
280
  case 31 /* List */:
121
- return this.visitList(node) ? node.entries : [];
281
+ return this.visitList(node);
122
282
  case 32 /* ListComprehension */:
123
- return this.visitListComprehension(node) ? [node.expression, ...node.forIfNodes] : [];
283
+ return this.visitListComprehension(node);
124
284
  case 33 /* ListComprehensionFor */:
125
- return this.visitListComprehensionFor(node) ? [node.targetExpression, node.iterableExpression] : [];
285
+ return this.visitListComprehensionFor(node);
126
286
  case 34 /* ListComprehensionIf */:
127
- return this.visitListComprehensionIf(node) ? [node.testExpression] : [];
287
+ return this.visitListComprehensionIf(node);
128
288
  case 63 /* Match */:
129
- return this.visitMatch(node) ? [node.subjectExpression, ...node.cases] : [];
289
+ return this.visitMatch(node);
130
290
  case 35 /* MemberAccess */:
131
- return this.visitMemberAccess(node) ? [node.leftExpression, node.memberName] : [];
291
+ return this.visitMemberAccess(node);
132
292
  case 37 /* ModuleName */:
133
- return this.visitModuleName(node) ? node.nameParts : [];
293
+ return this.visitModuleName(node);
134
294
  case 36 /* Module */:
135
- return this.visitModule(node) ? [...node.statements] : [];
295
+ return this.visitModule(node);
136
296
  case 38 /* Name */:
137
- return this.visitName(node) ? [] : [];
297
+ return this.visitName(node);
138
298
  case 39 /* Nonlocal */:
139
- return this.visitNonlocal(node) ? node.nameList : [];
299
+ return this.visitNonlocal(node);
140
300
  case 40 /* Number */:
141
- return this.visitNumber(node) ? [] : [];
301
+ return this.visitNumber(node);
142
302
  case 41 /* Parameter */:
143
- return this.visitParameter(node)
144
- ? [node.name, node.typeAnnotation, node.typeAnnotationComment, node.defaultValue]
145
- : [];
303
+ return this.visitParameter(node);
146
304
  case 42 /* Pass */:
147
- return this.visitPass(node) ? [] : [];
305
+ return this.visitPass(node);
148
306
  case 66 /* PatternAs */:
149
- return this.visitPatternAs(node) ? [...node.orPatterns, node.target] : [];
307
+ return this.visitPatternAs(node);
150
308
  case 68 /* PatternClass */:
151
- return this.visitPatternClass(node) ? [node.className, ...node.arguments] : [];
309
+ return this.visitPatternClass(node);
152
310
  case 74 /* PatternClassArgument */:
153
- return this.visitPatternClassArgument(node) ? [node.name, node.pattern] : [];
311
+ return this.visitPatternClassArgument(node);
154
312
  case 69 /* PatternCapture */:
155
- return this.visitPatternCapture(node) ? [node.target] : [];
313
+ return this.visitPatternCapture(node);
156
314
  case 67 /* PatternLiteral */:
157
- return this.visitPatternLiteral(node) ? [node.expression] : [];
315
+ return this.visitPatternLiteral(node);
158
316
  case 72 /* PatternMappingExpandEntry */:
159
- return this.visitPatternMappingExpandEntry(node) ? [node.target] : [];
317
+ return this.visitPatternMappingExpandEntry(node);
160
318
  case 71 /* PatternMappingKeyEntry */:
161
- return this.visitPatternMappingKeyEntry(node) ? [node.keyPattern, node.valuePattern] : [];
319
+ return this.visitPatternMappingKeyEntry(node);
162
320
  case 70 /* PatternMapping */:
163
- return this.visitPatternMapping(node) ? [...node.entries] : [];
321
+ return this.visitPatternMapping(node);
164
322
  case 65 /* PatternSequence */:
165
- return this.visitPatternSequence(node) ? [...node.entries] : [];
323
+ return this.visitPatternSequence(node);
166
324
  case 73 /* PatternValue */:
167
- return this.visitPatternValue(node) ? [node.expression] : [];
325
+ return this.visitPatternValue(node);
168
326
  case 43 /* Raise */:
169
- return this.visitRaise(node)
170
- ? [node.typeExpression, node.valueExpression, node.tracebackExpression]
171
- : [];
327
+ return this.visitRaise(node);
172
328
  case 44 /* Return */:
173
- return this.visitReturn(node) ? [node.returnExpression] : [];
329
+ return this.visitReturn(node);
174
330
  case 45 /* Set */:
175
- return this.visitSet(node) ? node.entries : [];
331
+ return this.visitSet(node);
176
332
  case 46 /* Slice */:
177
- return this.visitSlice(node) ? [node.startValue, node.endValue, node.stepValue] : [];
333
+ return this.visitSlice(node);
178
334
  case 47 /* StatementList */:
179
- return this.visitStatementList(node) ? node.statements : [];
335
+ return this.visitStatementList(node);
180
336
  case 48 /* StringList */:
181
- return this.visitStringList(node) ? [node.typeAnnotation, ...node.strings] : [];
337
+ return this.visitStringList(node);
182
338
  case 49 /* String */:
183
- return this.visitString(node) ? [] : [];
339
+ return this.visitString(node);
184
340
  case 50 /* Suite */:
185
- return this.visitSuite(node) ? [...node.statements] : [];
341
+ return this.visitSuite(node);
186
342
  case 51 /* Ternary */:
187
- return this.visitTernary(node) ? [node.ifExpression, node.testExpression, node.elseExpression] : [];
343
+ return this.visitTernary(node);
188
344
  case 52 /* Tuple */:
189
- return this.visitTuple(node) ? node.expressions : [];
345
+ return this.visitTuple(node);
190
346
  case 53 /* Try */:
191
- return this.visitTry(node)
192
- ? [node.trySuite, ...node.exceptClauses, node.elseSuite, node.finallySuite]
193
- : [];
347
+ return this.visitTry(node);
194
348
  case 77 /* TypeAlias */:
195
- return this.visitTypeAlias(node) ? [node.name, node.typeParameters, node.expression] : [];
349
+ return this.visitTypeAlias(node);
196
350
  case 54 /* TypeAnnotation */:
197
- return this.visitTypeAnnotation(node) ? [node.valueExpression, node.typeAnnotation] : [];
351
+ return this.visitTypeAnnotation(node);
198
352
  case 75 /* TypeParameter */:
199
- return this.visitTypeParameter(node) ? [node.name, node.boundExpression] : [];
353
+ return this.visitTypeParameter(node);
200
354
  case 76 /* TypeParameterList */:
201
- return this.visitTypeParameterList(node) ? [...node.parameters] : [];
355
+ return this.visitTypeParameterList(node);
202
356
  case 55 /* UnaryOperation */:
203
- return this.visitUnaryOperation(node) ? [node.expression] : [];
357
+ return this.visitUnaryOperation(node);
204
358
  case 56 /* Unpack */:
205
- return this.visitUnpack(node) ? [node.expression] : [];
359
+ return this.visitUnpack(node);
206
360
  case 57 /* While */:
207
- return this.visitWhile(node) ? [node.testExpression, node.whileSuite, node.elseSuite] : [];
361
+ return this.visitWhile(node);
208
362
  case 58 /* With */:
209
- return this.visitWith(node) ? [...node.withItems, node.suite] : [];
363
+ return this.visitWith(node);
210
364
  case 59 /* WithItem */:
211
- return this.visitWithItem(node) ? [node.expression, node.target] : [];
365
+ return this.visitWithItem(node);
212
366
  case 60 /* Yield */:
213
- return this.visitYield(node) ? [node.expression] : [];
367
+ return this.visitYield(node);
214
368
  case 61 /* YieldFrom */:
215
- return this.visitYieldFrom(node) ? [node.expression] : [];
369
+ return this.visitYieldFrom(node);
370
+ default:
371
+ debug.assertNever(node, `Unknown node type ${node}`);
216
372
  }
217
373
  }
218
374
  // Override these methods as necessary.
219
375
  visitArgument(node) {
220
- return true;
376
+ return this._default;
221
377
  }
222
378
  visitAssert(node) {
223
- return true;
379
+ return this._default;
224
380
  }
225
381
  visitAssignment(node) {
226
- return true;
382
+ return this._default;
227
383
  }
228
384
  visitAssignmentExpression(node) {
229
- return true;
385
+ return this._default;
230
386
  }
231
387
  visitAugmentedAssignment(node) {
232
- return true;
388
+ return this._default;
233
389
  }
234
390
  visitAwait(node) {
235
- return true;
391
+ return this._default;
236
392
  }
237
393
  visitBinaryOperation(node) {
238
- return true;
394
+ return this._default;
239
395
  }
240
396
  visitBreak(node) {
241
- return true;
397
+ return this._default;
242
398
  }
243
399
  visitCall(node) {
244
- return true;
400
+ return this._default;
245
401
  }
246
402
  visitCase(node) {
247
- return true;
403
+ return this._default;
248
404
  }
249
405
  visitClass(node) {
250
- return true;
406
+ return this._default;
251
407
  }
252
408
  visitTernary(node) {
253
- return true;
409
+ return this._default;
254
410
  }
255
411
  visitContinue(node) {
256
- return true;
412
+ return this._default;
257
413
  }
258
414
  visitConstant(node) {
259
- return true;
415
+ return this._default;
260
416
  }
261
417
  visitDecorator(node) {
262
- return true;
418
+ return this._default;
263
419
  }
264
420
  visitDel(node) {
265
- return true;
421
+ return this._default;
266
422
  }
267
423
  visitDictionary(node) {
268
- return true;
424
+ return this._default;
269
425
  }
270
426
  visitDictionaryKeyEntry(node) {
271
- return true;
427
+ return this._default;
272
428
  }
273
429
  visitDictionaryExpandEntry(node) {
274
- return true;
430
+ return this._default;
275
431
  }
276
432
  visitError(node) {
277
- return true;
433
+ return this._default;
278
434
  }
279
435
  visitEllipsis(node) {
280
- return true;
436
+ return this._default;
281
437
  }
282
438
  visitIf(node) {
283
- return true;
439
+ return this._default;
284
440
  }
285
441
  visitImport(node) {
286
- return true;
442
+ return this._default;
287
443
  }
288
444
  visitImportAs(node) {
289
- return true;
445
+ return this._default;
290
446
  }
291
447
  visitImportFrom(node) {
292
- return true;
448
+ return this._default;
293
449
  }
294
450
  visitImportFromAs(node) {
295
- return true;
451
+ return this._default;
296
452
  }
297
453
  visitIndex(node) {
298
- return true;
454
+ return this._default;
299
455
  }
300
456
  visitExcept(node) {
301
- return true;
457
+ return this._default;
302
458
  }
303
459
  visitFor(node) {
304
- return true;
460
+ return this._default;
305
461
  }
306
462
  visitFormatString(node) {
307
- return true;
463
+ return this._default;
308
464
  }
309
465
  visitFunction(node) {
310
- return true;
466
+ return this._default;
311
467
  }
312
468
  visitFunctionAnnotation(node) {
313
- return true;
469
+ return this._default;
314
470
  }
315
471
  visitGlobal(node) {
316
- return true;
472
+ return this._default;
317
473
  }
318
474
  visitLambda(node) {
319
- return true;
475
+ return this._default;
320
476
  }
321
477
  visitList(node) {
322
- return true;
478
+ return this._default;
323
479
  }
324
480
  visitListComprehension(node) {
325
- return true;
481
+ return this._default;
326
482
  }
327
483
  visitListComprehensionFor(node) {
328
- return true;
484
+ return this._default;
329
485
  }
330
486
  visitListComprehensionIf(node) {
331
- return true;
487
+ return this._default;
332
488
  }
333
489
  visitMatch(node) {
334
- return true;
490
+ return this._default;
335
491
  }
336
492
  visitMemberAccess(node) {
337
- return true;
493
+ return this._default;
338
494
  }
339
495
  visitModule(node) {
340
- return true;
496
+ return this._default;
341
497
  }
342
498
  visitModuleName(node) {
343
- return true;
499
+ return this._default;
344
500
  }
345
501
  visitName(node) {
346
- return true;
502
+ return this._default;
347
503
  }
348
504
  visitNonlocal(node) {
349
- return true;
505
+ return this._default;
350
506
  }
351
507
  visitNumber(node) {
352
- return true;
508
+ return this._default;
353
509
  }
354
510
  visitParameter(node) {
355
- return true;
511
+ return this._default;
356
512
  }
357
513
  visitPass(node) {
358
- return true;
514
+ return this._default;
359
515
  }
360
516
  visitPatternCapture(node) {
361
- return true;
517
+ return this._default;
362
518
  }
363
519
  visitPatternClass(node) {
364
- return true;
520
+ return this._default;
365
521
  }
366
522
  visitPatternClassArgument(node) {
367
- return true;
523
+ return this._default;
368
524
  }
369
525
  visitPatternAs(node) {
370
- return true;
526
+ return this._default;
371
527
  }
372
528
  visitPatternLiteral(node) {
373
- return true;
529
+ return this._default;
374
530
  }
375
531
  visitPatternMappingExpandEntry(node) {
376
- return true;
532
+ return this._default;
377
533
  }
378
534
  visitPatternSequence(node) {
379
- return true;
535
+ return this._default;
380
536
  }
381
537
  visitPatternValue(node) {
382
- return true;
538
+ return this._default;
383
539
  }
384
540
  visitPatternMappingKeyEntry(node) {
385
- return true;
541
+ return this._default;
386
542
  }
387
543
  visitPatternMapping(node) {
388
- return true;
544
+ return this._default;
389
545
  }
390
546
  visitRaise(node) {
391
- return true;
547
+ return this._default;
392
548
  }
393
549
  visitReturn(node) {
394
- return true;
550
+ return this._default;
395
551
  }
396
552
  visitSet(node) {
397
- return true;
553
+ return this._default;
398
554
  }
399
555
  visitSlice(node) {
400
- return true;
556
+ return this._default;
401
557
  }
402
558
  visitStatementList(node) {
403
- return true;
559
+ return this._default;
404
560
  }
405
561
  visitString(node) {
406
- return true;
562
+ return this._default;
407
563
  }
408
564
  visitStringList(node) {
409
- return true;
565
+ return this._default;
410
566
  }
411
567
  visitSuite(node) {
412
- return true;
568
+ return this._default;
413
569
  }
414
570
  visitTuple(node) {
415
- return true;
571
+ return this._default;
416
572
  }
417
573
  visitTry(node) {
418
- return true;
574
+ return this._default;
419
575
  }
420
576
  visitTypeAlias(node) {
421
- return true;
577
+ return this._default;
422
578
  }
423
579
  visitTypeAnnotation(node) {
424
- return true;
580
+ return this._default;
425
581
  }
426
582
  visitTypeParameter(node) {
427
- return true;
583
+ return this._default;
428
584
  }
429
585
  visitTypeParameterList(node) {
430
- return true;
586
+ return this._default;
431
587
  }
432
588
  visitUnaryOperation(node) {
433
- return true;
589
+ return this._default;
434
590
  }
435
591
  visitUnpack(node) {
436
- return true;
592
+ return this._default;
437
593
  }
438
594
  visitWhile(node) {
439
- return true;
595
+ return this._default;
440
596
  }
441
597
  visitWith(node) {
442
- return true;
598
+ return this._default;
443
599
  }
444
600
  visitWithItem(node) {
445
- return true;
601
+ return this._default;
446
602
  }
447
603
  visitYield(node) {
448
- return true;
604
+ return this._default;
449
605
  }
450
606
  visitYieldFrom(node) {
451
- return true;
607
+ return this._default;
608
+ }
609
+ }
610
+ exports.ParseTreeVisitor = ParseTreeVisitor;
611
+ // To use this class, create a subclass and override the
612
+ // visitXXX methods that you want to handle.
613
+ class ParseTreeWalker extends ParseTreeVisitor {
614
+ constructor() {
615
+ super(/* default */ true);
616
+ }
617
+ walk(node) {
618
+ const childrenToWalk = this.visitNode(node);
619
+ if (childrenToWalk.length > 0) {
620
+ this.walkMultiple(childrenToWalk);
621
+ }
622
+ }
623
+ walkMultiple(nodes) {
624
+ nodes.forEach((node) => {
625
+ if (node) {
626
+ this.walk(node);
627
+ }
628
+ });
629
+ }
630
+ // If this.visit(node) returns true, all child nodes for the node are returned.
631
+ // If the method returns false, we assume that the handler has already handled the
632
+ // child nodes, so an empty list is returned.
633
+ visitNode(node) {
634
+ return this.visit(node) ? getChildNodes(node) : [];
452
635
  }
453
636
  }
454
637
  exports.ParseTreeWalker = ParseTreeWalker;