@zzzen/pyright-internal 1.2.0-dev.20231119 → 1.2.0-dev.20231203

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 (402) hide show
  1. package/dist/analyzer/analysis.d.ts +1 -1
  2. package/dist/analyzer/analysis.js +5 -1
  3. package/dist/analyzer/analysis.js.map +1 -1
  4. package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
  5. package/dist/analyzer/analyzerNodeInfo.d.ts +1 -1
  6. package/dist/analyzer/analyzerNodeInfo.js +1 -1
  7. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  8. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
  9. package/dist/analyzer/backgroundAnalysisProgram.js +1 -1
  10. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  11. package/dist/analyzer/binder.js +201 -194
  12. package/dist/analyzer/binder.js.map +1 -1
  13. package/dist/analyzer/cacheManager.js +1 -1
  14. package/dist/analyzer/cacheManager.js.map +1 -1
  15. package/dist/analyzer/checker.d.ts +4 -1
  16. package/dist/analyzer/checker.js +403 -248
  17. package/dist/analyzer/checker.js.map +1 -1
  18. package/dist/analyzer/codeFlowEngine.d.ts +1 -1
  19. package/dist/analyzer/codeFlowEngine.js +33 -26
  20. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  21. package/dist/analyzer/codeFlowTypes.d.ts +1 -1
  22. package/dist/analyzer/codeFlowTypes.js +23 -23
  23. package/dist/analyzer/codeFlowTypes.js.map +1 -1
  24. package/dist/analyzer/codeFlowUtils.js +39 -37
  25. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  26. package/dist/analyzer/commentUtils.js +7 -0
  27. package/dist/analyzer/commentUtils.js.map +1 -1
  28. package/dist/analyzer/constraintSolver.js +51 -47
  29. package/dist/analyzer/constraintSolver.js.map +1 -1
  30. package/dist/analyzer/constructorTransform.js +8 -8
  31. package/dist/analyzer/constructorTransform.js.map +1 -1
  32. package/dist/analyzer/constructors.js +25 -26
  33. package/dist/analyzer/constructors.js.map +1 -1
  34. package/dist/analyzer/dataClasses.js +124 -109
  35. package/dist/analyzer/dataClasses.js.map +1 -1
  36. package/dist/analyzer/declaration.d.ts +2 -2
  37. package/dist/analyzer/declaration.js +10 -10
  38. package/dist/analyzer/declaration.js.map +1 -1
  39. package/dist/analyzer/declarationUtils.js +41 -41
  40. package/dist/analyzer/declarationUtils.js.map +1 -1
  41. package/dist/analyzer/decorators.js +51 -51
  42. package/dist/analyzer/decorators.js.map +1 -1
  43. package/dist/analyzer/enums.js +27 -27
  44. package/dist/analyzer/enums.js.map +1 -1
  45. package/dist/analyzer/functionTransform.js +4 -4
  46. package/dist/analyzer/functionTransform.js.map +1 -1
  47. package/dist/analyzer/importResolver.d.ts +1 -1
  48. package/dist/analyzer/importResolver.js +21 -17
  49. package/dist/analyzer/importResolver.js.map +1 -1
  50. package/dist/analyzer/importResult.js +1 -1
  51. package/dist/analyzer/importResult.js.map +1 -1
  52. package/dist/analyzer/importStatementUtils.js +31 -27
  53. package/dist/analyzer/importStatementUtils.js.map +1 -1
  54. package/dist/analyzer/namedTuples.js +36 -32
  55. package/dist/analyzer/namedTuples.js.map +1 -1
  56. package/dist/analyzer/operations.js +94 -92
  57. package/dist/analyzer/operations.js.map +1 -1
  58. package/dist/analyzer/packageTypeReport.d.ts +1 -1
  59. package/dist/analyzer/packageTypeReport.js +2 -2
  60. package/dist/analyzer/packageTypeReport.js.map +1 -1
  61. package/dist/analyzer/packageTypeVerifier.js +90 -90
  62. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  63. package/dist/analyzer/parameterUtils.js +14 -14
  64. package/dist/analyzer/parameterUtils.js.map +1 -1
  65. package/dist/analyzer/parentDirectoryCache.d.ts +2 -2
  66. package/dist/analyzer/parseTreeCleaner.js +5 -1
  67. package/dist/analyzer/parseTreeCleaner.js.map +1 -1
  68. package/dist/analyzer/parseTreeUtils.d.ts +1 -1
  69. package/dist/analyzer/parseTreeUtils.js +383 -379
  70. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  71. package/dist/analyzer/parseTreeWalker.js +161 -157
  72. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  73. package/dist/analyzer/patternMatching.d.ts +1 -1
  74. package/dist/analyzer/patternMatching.js +52 -50
  75. package/dist/analyzer/patternMatching.js.map +1 -1
  76. package/dist/analyzer/program.d.ts +1 -1
  77. package/dist/analyzer/program.js +18 -14
  78. package/dist/analyzer/program.js.map +1 -1
  79. package/dist/analyzer/properties.js +53 -44
  80. package/dist/analyzer/properties.js.map +1 -1
  81. package/dist/analyzer/protocols.js +41 -27
  82. package/dist/analyzer/protocols.js.map +1 -1
  83. package/dist/analyzer/pythonPathUtils.js +5 -1
  84. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  85. package/dist/analyzer/regions.js +3 -3
  86. package/dist/analyzer/regions.js.map +1 -1
  87. package/dist/analyzer/scope.js +8 -8
  88. package/dist/analyzer/scope.js.map +1 -1
  89. package/dist/analyzer/scopeUtils.js +1 -1
  90. package/dist/analyzer/scopeUtils.js.map +1 -1
  91. package/dist/analyzer/service.js +5 -1
  92. package/dist/analyzer/service.js.map +1 -1
  93. package/dist/analyzer/sourceFile.js +25 -21
  94. package/dist/analyzer/sourceFile.js.map +1 -1
  95. package/dist/analyzer/sourceMapper.d.ts +2 -2
  96. package/dist/analyzer/sourceMapper.js +12 -8
  97. package/dist/analyzer/sourceMapper.js.map +1 -1
  98. package/dist/analyzer/staticExpressions.js +40 -40
  99. package/dist/analyzer/staticExpressions.js.map +1 -1
  100. package/dist/analyzer/symbol.d.ts +1 -1
  101. package/dist/analyzer/symbol.js +26 -26
  102. package/dist/analyzer/symbol.js.map +1 -1
  103. package/dist/analyzer/symbolUtils.js +1 -1
  104. package/dist/analyzer/symbolUtils.js.map +1 -1
  105. package/dist/analyzer/testWalker.js +5 -5
  106. package/dist/analyzer/testWalker.js.map +1 -1
  107. package/dist/analyzer/tracePrinter.d.ts +1 -1
  108. package/dist/analyzer/tracePrinter.js +35 -31
  109. package/dist/analyzer/tracePrinter.js.map +1 -1
  110. package/dist/analyzer/typeCacheUtils.js +5 -1
  111. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  112. package/dist/analyzer/typeDocStringUtils.js +13 -9
  113. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  114. package/dist/analyzer/typeEvaluator.js +1347 -1270
  115. package/dist/analyzer/typeEvaluator.js.map +1 -1
  116. package/dist/analyzer/typeEvaluatorTypes.d.ts +4 -2
  117. package/dist/analyzer/typeEvaluatorTypes.js +4 -2
  118. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  119. package/dist/analyzer/typeGuards.d.ts +1 -1
  120. package/dist/analyzer/typeGuards.js +79 -65
  121. package/dist/analyzer/typeGuards.js.map +1 -1
  122. package/dist/analyzer/typePrinter.d.ts +1 -1
  123. package/dist/analyzer/typePrinter.js +80 -76
  124. package/dist/analyzer/typePrinter.js.map +1 -1
  125. package/dist/analyzer/typeStubWriter.js +26 -22
  126. package/dist/analyzer/typeStubWriter.js.map +1 -1
  127. package/dist/analyzer/typeUtils.d.ts +1 -1
  128. package/dist/analyzer/typeUtils.js +139 -135
  129. package/dist/analyzer/typeUtils.js.map +1 -1
  130. package/dist/analyzer/typeVarContext.d.ts +2 -0
  131. package/dist/analyzer/typeVarContext.js +36 -9
  132. package/dist/analyzer/typeVarContext.js.map +1 -1
  133. package/dist/analyzer/typeWalker.js +10 -10
  134. package/dist/analyzer/typedDicts.js +76 -102
  135. package/dist/analyzer/typedDicts.js.map +1 -1
  136. package/dist/analyzer/types.d.ts +18 -18
  137. package/dist/analyzer/types.js +186 -191
  138. package/dist/analyzer/types.js.map +1 -1
  139. package/dist/backgroundAnalysisBase.d.ts +2 -2
  140. package/dist/backgroundAnalysisBase.js +5 -1
  141. package/dist/backgroundAnalysisBase.js.map +1 -1
  142. package/dist/backgroundThreadBase.js +5 -1
  143. package/dist/backgroundThreadBase.js.map +1 -1
  144. package/dist/commands/commandController.js +6 -7
  145. package/dist/commands/commandController.js.map +1 -1
  146. package/dist/commands/commandResult.js +1 -1
  147. package/dist/commands/commandResult.js.map +1 -1
  148. package/dist/commands/commands.d.ts +0 -1
  149. package/dist/commands/commands.js +1 -2
  150. package/dist/commands/commands.js.map +1 -1
  151. package/dist/commands/dumpFileDebugInfoCommand.js +196 -196
  152. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  153. package/dist/commands/quickActionCommand.js +1 -1
  154. package/dist/commands/quickActionCommand.js.map +1 -1
  155. package/dist/common/charCodes.js +1 -1
  156. package/dist/common/charCodes.js.map +1 -1
  157. package/dist/common/chokidarFileWatcherProvider.js +5 -1
  158. package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
  159. package/dist/common/collectionUtils.d.ts +3 -3
  160. package/dist/common/collectionUtils.js +3 -3
  161. package/dist/common/collectionUtils.js.map +1 -1
  162. package/dist/common/commandLineOptions.d.ts +1 -1
  163. package/dist/common/commandLineOptions.js +5 -5
  164. package/dist/common/commandLineOptions.js.map +1 -1
  165. package/dist/common/configOptions.d.ts +2 -1
  166. package/dist/common/configOptions.js +102 -10
  167. package/dist/common/configOptions.js.map +1 -1
  168. package/dist/common/console.js +7 -3
  169. package/dist/common/console.js.map +1 -1
  170. package/dist/common/core.d.ts +2 -2
  171. package/dist/common/core.js +6 -6
  172. package/dist/common/core.js.map +1 -1
  173. package/dist/common/diagnostic.d.ts +0 -4
  174. package/dist/common/diagnostic.js +6 -6
  175. package/dist/common/diagnostic.js.map +1 -1
  176. package/dist/common/diagnosticRules.js +1 -1
  177. package/dist/common/diagnosticRules.js.map +1 -1
  178. package/dist/common/diagnosticSink.js +12 -12
  179. package/dist/common/diagnosticSink.js.map +1 -1
  180. package/dist/common/editAction.d.ts +1 -1
  181. package/dist/common/editAction.js +2 -2
  182. package/dist/common/editAction.js.map +1 -1
  183. package/dist/common/envVarUtils.js +5 -1
  184. package/dist/common/envVarUtils.js.map +1 -1
  185. package/dist/common/extensibility.js +1 -1
  186. package/dist/common/extensibility.js.map +1 -1
  187. package/dist/common/fileBasedCancellationUtils.js +5 -1
  188. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  189. package/dist/common/fileSystem.d.ts +1 -0
  190. package/dist/common/fileSystem.js +2 -2
  191. package/dist/common/fileSystem.js.map +1 -1
  192. package/dist/common/fileWatcher.d.ts +2 -2
  193. package/dist/common/fullAccessHost.js +10 -6
  194. package/dist/common/fullAccessHost.js.map +1 -1
  195. package/dist/common/host.d.ts +1 -1
  196. package/dist/common/host.js +2 -2
  197. package/dist/common/host.js.map +1 -1
  198. package/dist/common/lspUtils.js +7 -7
  199. package/dist/common/lspUtils.js.map +1 -1
  200. package/dist/common/memUtils.d.ts +1 -1
  201. package/dist/common/pathUtils.js +12 -8
  202. package/dist/common/pathUtils.js.map +1 -1
  203. package/dist/common/pythonVersion.js +1 -1
  204. package/dist/common/pythonVersion.js.map +1 -1
  205. package/dist/common/realFileSystem.js +5 -1
  206. package/dist/common/realFileSystem.js.map +1 -1
  207. package/dist/common/serviceProvider.d.ts +1 -1
  208. package/dist/common/serviceProvider.js +5 -1
  209. package/dist/common/serviceProvider.js.map +1 -1
  210. package/dist/common/serviceProviderExtensions.js +1 -1
  211. package/dist/common/serviceProviderExtensions.js.map +1 -1
  212. package/dist/common/stringUtils.js +5 -5
  213. package/dist/common/stringUtils.js.map +1 -1
  214. package/dist/common/textEditTracker.js +11 -7
  215. package/dist/common/textEditTracker.js.map +1 -1
  216. package/dist/common/textRange.js +3 -3
  217. package/dist/common/textRange.js.map +1 -1
  218. package/dist/languageServerBase.js +13 -13
  219. package/dist/languageServerBase.js.map +1 -1
  220. package/dist/languageService/autoImporter.d.ts +3 -3
  221. package/dist/languageService/autoImporter.js +12 -8
  222. package/dist/languageService/autoImporter.js.map +1 -1
  223. package/dist/languageService/callHierarchyProvider.js +27 -23
  224. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  225. package/dist/languageService/codeActionProvider.js +5 -19
  226. package/dist/languageService/codeActionProvider.js.map +1 -1
  227. package/dist/languageService/completionProvider.js +166 -162
  228. package/dist/languageService/completionProvider.js.map +1 -1
  229. package/dist/languageService/completionProviderUtils.js +9 -9
  230. package/dist/languageService/completionProviderUtils.js.map +1 -1
  231. package/dist/languageService/definitionProvider.js +14 -10
  232. package/dist/languageService/definitionProvider.js.map +1 -1
  233. package/dist/languageService/documentHighlightProvider.js +7 -3
  234. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  235. package/dist/languageService/documentSymbolCollector.d.ts +1 -1
  236. package/dist/languageService/documentSymbolCollector.js +21 -17
  237. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  238. package/dist/languageService/hoverProvider.js +30 -26
  239. package/dist/languageService/hoverProvider.js.map +1 -1
  240. package/dist/languageService/importSorter.js +1 -1
  241. package/dist/languageService/importSorter.js.map +1 -1
  242. package/dist/languageService/quickActions.d.ts +1 -2
  243. package/dist/languageService/quickActions.js +1 -77
  244. package/dist/languageService/quickActions.js.map +1 -1
  245. package/dist/languageService/referencesProvider.d.ts +1 -1
  246. package/dist/languageService/referencesProvider.js +24 -20
  247. package/dist/languageService/referencesProvider.js.map +1 -1
  248. package/dist/languageService/signatureHelpProvider.js +8 -4
  249. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  250. package/dist/languageService/symbolIndexer.js +8 -4
  251. package/dist/languageService/symbolIndexer.js.map +1 -1
  252. package/dist/languageService/tooltipUtils.js +20 -16
  253. package/dist/languageService/tooltipUtils.js.map +1 -1
  254. package/dist/languageService/workspaceSymbolProvider.js +5 -1
  255. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  256. package/dist/localization/localize.d.ts +19 -18
  257. package/dist/localization/localize.js +11 -8
  258. package/dist/localization/localize.js.map +1 -1
  259. package/dist/localization/package.nls.cs.json +0 -7
  260. package/dist/localization/package.nls.de.json +0 -7
  261. package/dist/localization/package.nls.en-us.json +11 -8
  262. package/dist/localization/package.nls.es.json +2 -9
  263. package/dist/localization/package.nls.fr.json +0 -7
  264. package/dist/localization/package.nls.it.json +0 -7
  265. package/dist/localization/package.nls.ja.json +0 -7
  266. package/dist/localization/package.nls.ko.json +0 -7
  267. package/dist/localization/package.nls.pl.json +0 -7
  268. package/dist/localization/package.nls.pt-br.json +0 -7
  269. package/dist/localization/package.nls.qps-ploc.json +0 -7
  270. package/dist/localization/package.nls.ru.json +0 -7
  271. package/dist/localization/package.nls.tr.json +0 -7
  272. package/dist/localization/package.nls.zh-cn.json +0 -7
  273. package/dist/localization/package.nls.zh-tw.json +0 -7
  274. package/dist/parser/characterStream.js +3 -3
  275. package/dist/parser/characterStream.js.map +1 -1
  276. package/dist/parser/characters.js +13 -9
  277. package/dist/parser/characters.js.map +1 -1
  278. package/dist/parser/parseNodes.d.ts +12 -12
  279. package/dist/parser/parseNodes.js +193 -193
  280. package/dist/parser/parseNodes.js.map +1 -1
  281. package/dist/parser/parser.js +563 -559
  282. package/dist/parser/parser.js.map +1 -1
  283. package/dist/parser/stringTokenUtils.js +47 -47
  284. package/dist/parser/stringTokenUtils.js.map +1 -1
  285. package/dist/parser/tokenizer.js +288 -288
  286. package/dist/parser/tokenizer.js.map +1 -1
  287. package/dist/parser/tokenizerTypes.js +35 -35
  288. package/dist/parser/tokenizerTypes.js.map +1 -1
  289. package/dist/parser/unicode.d.ts +3 -3
  290. package/dist/pyright.js +21 -17
  291. package/dist/pyright.js.map +1 -1
  292. package/dist/pyrightFileSystem.d.ts +1 -0
  293. package/dist/pyrightFileSystem.js +2 -2
  294. package/dist/pyrightFileSystem.js.map +1 -1
  295. package/dist/readonlyAugmentedFileSystem.d.ts +2 -1
  296. package/dist/readonlyAugmentedFileSystem.js +15 -5
  297. package/dist/readonlyAugmentedFileSystem.js.map +1 -1
  298. package/dist/server.js +1 -1
  299. package/dist/server.js.map +1 -1
  300. package/dist/tests/chainedSourceFiles.test.js +5 -1
  301. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  302. package/dist/tests/checker.test.js +13 -1
  303. package/dist/tests/checker.test.js.map +1 -1
  304. package/dist/tests/collectionUtils.test.js +5 -1
  305. package/dist/tests/collectionUtils.test.js.map +1 -1
  306. package/dist/tests/common.test.js +5 -1
  307. package/dist/tests/common.test.js.map +1 -1
  308. package/dist/tests/debug.test.js +8 -4
  309. package/dist/tests/debug.test.js.map +1 -1
  310. package/dist/tests/deferred.test.js +5 -1
  311. package/dist/tests/deferred.test.js.map +1 -1
  312. package/dist/tests/diagnosticOverrides.test.js +5 -1
  313. package/dist/tests/diagnosticOverrides.test.js.map +1 -1
  314. package/dist/tests/docStringUtils.test.js +5 -1
  315. package/dist/tests/docStringUtils.test.js.map +1 -1
  316. package/dist/tests/filesystem.test.js +5 -1
  317. package/dist/tests/filesystem.test.js.map +1 -1
  318. package/dist/tests/fourSlashParser.test.js +5 -1
  319. package/dist/tests/fourSlashParser.test.js.map +1 -1
  320. package/dist/tests/fourSlashRunner.test.js +5 -1
  321. package/dist/tests/fourSlashRunner.test.js.map +1 -1
  322. package/dist/tests/fourslash/fourslash.d.ts +1 -2
  323. package/dist/tests/harness/fourslash/fourSlashParser.js +13 -13
  324. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  325. package/dist/tests/harness/fourslash/fourSlashTypes.js +11 -7
  326. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  327. package/dist/tests/harness/fourslash/runner.d.ts +1 -1
  328. package/dist/tests/harness/fourslash/runner.js +5 -1
  329. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  330. package/dist/tests/harness/fourslash/testLanguageService.js +5 -1
  331. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  332. package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -2
  333. package/dist/tests/harness/fourslash/testState.Consts.js +6 -3
  334. package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
  335. package/dist/tests/harness/fourslash/testState.js +18 -14
  336. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  337. package/dist/tests/harness/fourslash/testStateUtils.js +9 -5
  338. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
  339. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js +5 -1
  340. package/dist/tests/harness/fourslash/workspaceEditTestUtils.js.map +1 -1
  341. package/dist/tests/harness/testHost.js +5 -1
  342. package/dist/tests/harness/testHost.js.map +1 -1
  343. package/dist/tests/harness/utils.d.ts +13 -12
  344. package/dist/tests/harness/utils.js.map +1 -1
  345. package/dist/tests/harness/vfs/factory.js +6 -2
  346. package/dist/tests/harness/vfs/factory.js.map +1 -1
  347. package/dist/tests/harness/vfs/filesystem.d.ts +4 -3
  348. package/dist/tests/harness/vfs/filesystem.js +11 -7
  349. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  350. package/dist/tests/harness/vfs/pathValidation.js +30 -26
  351. package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
  352. package/dist/tests/importStatementUtils.test.js +25 -25
  353. package/dist/tests/importStatementUtils.test.js.map +1 -1
  354. package/dist/tests/ipythonMode.test.js +6 -6
  355. package/dist/tests/ipythonMode.test.js.map +1 -1
  356. package/dist/tests/localizer.test.js +5 -1
  357. package/dist/tests/localizer.test.js.map +1 -1
  358. package/dist/tests/logger.test.js +5 -1
  359. package/dist/tests/logger.test.js.map +1 -1
  360. package/dist/tests/parseTreeUtils.test.js +10 -10
  361. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  362. package/dist/tests/parser.test.js +13 -9
  363. package/dist/tests/parser.test.js.map +1 -1
  364. package/dist/tests/pathUtils.test.js +5 -1
  365. package/dist/tests/pathUtils.test.js.map +1 -1
  366. package/dist/tests/pyrightFileSystem.test.js +48 -1
  367. package/dist/tests/pyrightFileSystem.test.js.map +1 -1
  368. package/dist/tests/sourceFile.test.js +5 -1
  369. package/dist/tests/sourceFile.test.js.map +1 -1
  370. package/dist/tests/sourceMapperUtils.test.js +5 -1
  371. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  372. package/dist/tests/stringUtils.test.js +10 -6
  373. package/dist/tests/stringUtils.test.js.map +1 -1
  374. package/dist/tests/symbolNameUtils.test.js +5 -1
  375. package/dist/tests/symbolNameUtils.test.js.map +1 -1
  376. package/dist/tests/testState.test.js +5 -1
  377. package/dist/tests/testState.test.js.map +1 -1
  378. package/dist/tests/testUtils.js +11 -7
  379. package/dist/tests/testUtils.js.map +1 -1
  380. package/dist/tests/textRange.test.js +5 -1
  381. package/dist/tests/textRange.test.js.map +1 -1
  382. package/dist/tests/tokenizer.test.js +463 -459
  383. package/dist/tests/tokenizer.test.js.map +1 -1
  384. package/dist/tests/typeEvaluator1.test.js +22 -7
  385. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  386. package/dist/tests/typeEvaluator2.test.js +14 -6
  387. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  388. package/dist/tests/typeEvaluator3.test.js +23 -12
  389. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  390. package/dist/tests/typeEvaluator4.test.js +16 -4
  391. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  392. package/dist/tests/typeEvaluator5.test.js +13 -5
  393. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  394. package/dist/tests/typePrinter.test.js +44 -40
  395. package/dist/tests/typePrinter.test.js.map +1 -1
  396. package/dist/tests/workspaceEditUtils.test.js +5 -1
  397. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  398. package/dist/tests/zipfs.test.js +5 -1
  399. package/dist/tests/zipfs.test.js.map +1 -1
  400. package/dist/workspaceFactory.js +2 -2
  401. package/dist/workspaceFactory.js.map +1 -1
  402. package/package.json +2 -2
@@ -10,7 +10,11 @@
10
10
  */
11
11
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
12
  if (k2 === undefined) k2 = k;
13
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
14
18
  }) : (function(o, m, k, k2) {
15
19
  if (k2 === undefined) k2 = k;
16
20
  o[k2] = m[k];
@@ -252,17 +256,17 @@ class CompletionProvider {
252
256
  }
253
257
  isSimpleDefault(node) {
254
258
  switch (node.nodeType) {
255
- case 40 /* Number */:
256
- case 11 /* Constant */:
257
- case 35 /* MemberAccess */:
259
+ case 40 /* ParseNodeType.Number */:
260
+ case 11 /* ParseNodeType.Constant */:
261
+ case 35 /* ParseNodeType.MemberAccess */:
258
262
  return true;
259
- case 49 /* String */:
260
- return (node.token.flags & 64 /* Format */) === 0;
261
- case 48 /* StringList */:
263
+ case 49 /* ParseNodeType.String */:
264
+ return (node.token.flags & 64 /* StringTokenFlags.Format */) === 0;
265
+ case 48 /* ParseNodeType.StringList */:
262
266
  return node.strings.every(this.isSimpleDefault);
263
- case 55 /* UnaryOperation */:
267
+ case 55 /* ParseNodeType.UnaryOperation */:
264
268
  return this.isSimpleDefault(node.expression);
265
- case 7 /* BinaryOperation */:
269
+ case 7 /* ParseNodeType.BinaryOperation */:
266
270
  return this.isSimpleDefault(node.leftExpression) && this.isSimpleDefault(node.rightExpression);
267
271
  default:
268
272
  return false;
@@ -291,7 +295,7 @@ class CompletionProvider {
291
295
  symbolTable.forEach((symbol, name) => {
292
296
  var _a;
293
297
  let decl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
294
- if (decl && decl.type === 5 /* Function */) {
298
+ if (decl && decl.type === 5 /* DeclarationType.Function */) {
295
299
  if (StringUtils.isPatternInSymbol(partialName.value, name)) {
296
300
  const declaredType = (_a = this.evaluator.getTypeForDeclaration(decl)) === null || _a === void 0 ? void 0 : _a.type;
297
301
  if (!declaredType) {
@@ -309,7 +313,7 @@ class CompletionProvider {
309
313
  // For properties, we should override the "getter", which is typically
310
314
  // the first declaration.
311
315
  const typedDecls = symbol.getTypedDeclarations();
312
- if (typedDecls.length > 0 && typedDecls[0].type === 5 /* Function */) {
316
+ if (typedDecls.length > 0 && typedDecls[0].type === 5 /* DeclarationType.Function */) {
313
317
  decl = typedDecls[0];
314
318
  }
315
319
  }
@@ -375,12 +379,12 @@ class CompletionProvider {
375
379
  if (parameter.name) {
376
380
  results.push([
377
381
  parameter,
378
- parameter.category === 0 /* Simple */ && !!parameter.name && sawKeywordOnlySeparator,
382
+ parameter.category === 0 /* ParameterCategory.Simple */ && !!parameter.name && sawKeywordOnlySeparator,
379
383
  ]);
380
384
  }
381
385
  // All simple parameters after a `*` or `*args` parameter
382
386
  // are considered keyword only.
383
- if (parameter.category === 1 /* ArgsList */) {
387
+ if (parameter.category === 1 /* ParameterCategory.ArgsList */) {
384
388
  sawKeywordOnlySeparator = true;
385
389
  }
386
390
  }
@@ -389,17 +393,17 @@ class CompletionProvider {
389
393
  function convertToString(parameter) {
390
394
  var _a;
391
395
  const name = (_a = parameter[0].name) === null || _a === void 0 ? void 0 : _a.value;
392
- if (parameter[0].category === 1 /* ArgsList */) {
396
+ if (parameter[0].category === 1 /* ParameterCategory.ArgsList */) {
393
397
  return `*${name}`;
394
398
  }
395
- if (parameter[0].category === 2 /* KwargsDict */) {
399
+ if (parameter[0].category === 2 /* ParameterCategory.KwargsDict */) {
396
400
  return `**${name}`;
397
401
  }
398
402
  return parameter[1] ? `${name}=${name}` : name;
399
403
  }
400
404
  }
401
405
  createReplaceEdits(priorWord, node, text) {
402
- const replaceOrInsertEndChar = (node === null || node === void 0 ? void 0 : node.nodeType) === 38 /* Name */
406
+ const replaceOrInsertEndChar = (node === null || node === void 0 ? void 0 : node.nodeType) === 38 /* ParseNodeType.Name */
403
407
  ? this.position.character - priorWord.length + node.value.length
404
408
  : this.position.character;
405
409
  const range = {
@@ -474,11 +478,11 @@ class CompletionProvider {
474
478
  // Handle enum members specially. Enum members normally look like
475
479
  // variables, but the are declared using assignment expressions
476
480
  // within an enum class.
477
- if (primaryDecl.type === 1 /* Variable */ &&
481
+ if (primaryDecl.type === 1 /* DeclarationType.Variable */ &&
478
482
  detail.boundObjectOrClass &&
479
483
  (0, types_1.isInstantiableClass)(detail.boundObjectOrClass) &&
480
484
  types_1.ClassType.isEnumClass(detail.boundObjectOrClass) &&
481
- ((_c = primaryDecl.node.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 3 /* Assignment */) {
485
+ ((_c = primaryDecl.node.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 3 /* ParseNodeType.Assignment */) {
482
486
  itemKind = vscode_languageserver_1.CompletionItemKind.EnumMember;
483
487
  }
484
488
  this.addNameToCompletions((_d = detail.autoImportAlias) !== null && _d !== void 0 ? _d : name, itemKind, priorWord, completionMap, {
@@ -594,7 +598,7 @@ class CompletionProvider {
594
598
  }
595
599
  }
596
600
  checkDecorator(node, value) {
597
- return node.expression.nodeType === 38 /* Name */ && node.expression.value === value;
601
+ return node.expression.nodeType === 38 /* ParseNodeType.Name */ && node.expression.value === value;
598
602
  }
599
603
  addExtraCommitChar(item) {
600
604
  // extra commit char is not supported.
@@ -738,16 +742,16 @@ class CompletionProvider {
738
742
  let node = ParseTreeUtils.findNodeByOffset(this.parseResults.parseTree, offset);
739
743
  // See if we're inside a string literal or an f-string statement.
740
744
  const token = ParseTreeUtils.getTokenOverlapping(this.parseResults.tokenizerOutput.tokens, offset);
741
- if ((token === null || token === void 0 ? void 0 : token.type) === 5 /* String */) {
745
+ if ((token === null || token === void 0 ? void 0 : token.type) === 5 /* TokenType.String */) {
742
746
  const stringToken = token;
743
747
  this._stringLiteralContainer = textRange_1.TextRange.contains(stringToken, offset)
744
748
  ? stringToken
745
- : stringToken.flags & 65536 /* Unterminated */
749
+ : stringToken.flags & 65536 /* StringTokenFlags.Unterminated */
746
750
  ? stringToken
747
751
  : undefined;
748
752
  }
749
753
  else if (node) {
750
- const fStringContainer = ParseTreeUtils.getParentNodeOfType(node, 27 /* FormatString */);
754
+ const fStringContainer = ParseTreeUtils.getParentNodeOfType(node, 27 /* ParseNodeType.FormatString */);
751
755
  if (fStringContainer) {
752
756
  this._stringLiteralContainer = fStringContainer.token;
753
757
  }
@@ -757,7 +761,7 @@ class CompletionProvider {
757
761
  // node.
758
762
  const initialNode = node;
759
763
  const initialDepth = node ? ParseTreeUtils.getNodeDepth(node) : 0;
760
- if (!initialNode || initialNode.nodeType !== 38 /* Name */) {
764
+ if (!initialNode || initialNode.nodeType !== 38 /* ParseNodeType.Name */) {
761
765
  let curOffset = offset;
762
766
  let sawComma = false;
763
767
  while (curOffset >= 0) {
@@ -776,7 +780,7 @@ class CompletionProvider {
776
780
  node = curNode;
777
781
  // If we're at the end of a list with a hanging comma, handle the
778
782
  // special case of "from x import y, ".
779
- if (sawComma && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 23 /* ImportFromAs */) {
783
+ if (sawComma && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 23 /* ParseNodeType.ImportFromAs */) {
780
784
  node = node.parent;
781
785
  }
782
786
  }
@@ -802,7 +806,7 @@ class CompletionProvider {
802
806
  // precedence.
803
807
  let errorNode = node;
804
808
  while (errorNode) {
805
- if (errorNode.nodeType === 0 /* Error */) {
809
+ if (errorNode.nodeType === 0 /* ParseNodeType.Error */) {
806
810
  break;
807
811
  }
808
812
  errorNode = errorNode.parent;
@@ -812,31 +816,31 @@ class CompletionProvider {
812
816
  let curNode = errorNode || node;
813
817
  while (true) {
814
818
  (0, cancellationUtils_1.throwIfCancellationRequested)(this.cancellationToken);
815
- if (curNode.nodeType === 49 /* String */) {
819
+ if (curNode.nodeType === 49 /* ParseNodeType.String */) {
816
820
  return this._getLiteralCompletions(curNode, offset, priorWord, priorText, postText);
817
821
  }
818
- if (curNode.nodeType === 48 /* StringList */ || curNode.nodeType === 27 /* FormatString */) {
822
+ if (curNode.nodeType === 48 /* ParseNodeType.StringList */ || curNode.nodeType === 27 /* ParseNodeType.FormatString */) {
819
823
  return undefined;
820
824
  }
821
- if (curNode.nodeType === 37 /* ModuleName */) {
825
+ if (curNode.nodeType === 37 /* ParseNodeType.ModuleName */) {
822
826
  return this._getImportModuleCompletions(curNode);
823
827
  }
824
- if (curNode.nodeType === 0 /* Error */) {
828
+ if (curNode.nodeType === 0 /* ParseNodeType.Error */) {
825
829
  return this._getExpressionErrorCompletions(curNode, offset, priorWord, priorText, postText);
826
830
  }
827
- if (curNode.nodeType === 35 /* MemberAccess */) {
831
+ if (curNode.nodeType === 35 /* ParseNodeType.MemberAccess */) {
828
832
  return this.getMemberAccessCompletions(curNode.leftExpression, priorWord);
829
833
  }
830
- if (curNode.nodeType === 15 /* Dictionary */) {
834
+ if (curNode.nodeType === 15 /* ParseNodeType.Dictionary */) {
831
835
  const completionMap = new CompletionMap();
832
836
  if (this._tryAddTypedDictKeysFromDictionary(curNode,
833
837
  /* stringNode */ undefined, priorWord, priorText, postText, completionMap)) {
834
838
  return completionMap;
835
839
  }
836
840
  }
837
- const dictionaryEntry = ParseTreeUtils.getFirstAncestorOrSelfOfKind(curNode, 17 /* DictionaryKeyEntry */);
841
+ const dictionaryEntry = ParseTreeUtils.getFirstAncestorOrSelfOfKind(curNode, 17 /* ParseNodeType.DictionaryKeyEntry */);
838
842
  if (dictionaryEntry) {
839
- if (((_b = dictionaryEntry.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 15 /* Dictionary */) {
843
+ if (((_b = dictionaryEntry.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 15 /* ParseNodeType.Dictionary */) {
840
844
  const dictionaryNode = dictionaryEntry.parent;
841
845
  if (dictionaryNode.trailingCommaToken && dictionaryNode.trailingCommaToken.start < offset) {
842
846
  const completionMap = new CompletionMap();
@@ -847,7 +851,7 @@ class CompletionProvider {
847
851
  }
848
852
  }
849
853
  }
850
- if (curNode.nodeType === 38 /* Name */) {
854
+ if (curNode.nodeType === 38 /* ParseNodeType.Name */) {
851
855
  // This condition is little different than others since it does its own
852
856
  // tree walk up to find context and let outer tree walk up to proceed if it can't find
853
857
  // one to show completion.
@@ -856,19 +860,19 @@ class CompletionProvider {
856
860
  return result;
857
861
  }
858
862
  }
859
- if (curNode.nodeType === 31 /* List */ && this.options.triggerCharacter === '[') {
863
+ if (curNode.nodeType === 31 /* ParseNodeType.List */ && this.options.triggerCharacter === '[') {
860
864
  // If this is an empty list, don't start putting completions up yet.
861
865
  return undefined;
862
866
  }
863
- if (curNode.nodeType === 22 /* ImportFrom */) {
867
+ if (curNode.nodeType === 22 /* ParseNodeType.ImportFrom */) {
864
868
  return this._getImportFromCompletions(curNode, priorWord);
865
869
  }
866
870
  if ((0, parseNodes_1.isExpressionNode)(curNode)) {
867
871
  return this._getExpressionCompletions(curNode, priorWord, priorText, postText);
868
872
  }
869
- if (curNode.nodeType === 50 /* Suite */) {
873
+ if (curNode.nodeType === 50 /* ParseNodeType.Suite */) {
870
874
  if (curNode.parent &&
871
- curNode.parent.nodeType === 25 /* Except */ &&
875
+ curNode.parent.nodeType === 25 /* ParseNodeType.Except */ &&
872
876
  !curNode.parent.name &&
873
877
  curNode.parent.typeExpression &&
874
878
  textRange_1.TextRange.getEnd(curNode.parent.typeExpression) < offset &&
@@ -877,7 +881,7 @@ class CompletionProvider {
877
881
  return undefined;
878
882
  }
879
883
  if (curNode.parent &&
880
- curNode.parent.nodeType === 10 /* Class */ &&
884
+ curNode.parent.nodeType === 10 /* ParseNodeType.Class */ &&
881
885
  (!curNode.parent.name || !curNode.parent.name.value) &&
882
886
  curNode.parent.arguments.length === 0 &&
883
887
  offset <= curNode.parent.suite.start) {
@@ -886,13 +890,13 @@ class CompletionProvider {
886
890
  }
887
891
  return this._getStatementCompletions(curNode, priorWord, priorText, postText);
888
892
  }
889
- if (curNode.nodeType === 36 /* Module */) {
893
+ if (curNode.nodeType === 36 /* ParseNodeType.Module */) {
890
894
  return this._getStatementCompletions(curNode, priorWord, priorText, postText);
891
895
  }
892
- if (curNode.nodeType === 41 /* Parameter */ &&
896
+ if (curNode.nodeType === 41 /* ParseNodeType.Parameter */ &&
893
897
  curNode.length === 0 &&
894
898
  curNode.parent &&
895
- curNode.parent.nodeType === 30 /* Lambda */) {
899
+ curNode.parent.nodeType === 30 /* ParseNodeType.Lambda */) {
896
900
  // lambda [<empty>] or lambda x, [<empty>]
897
901
  return undefined;
898
902
  }
@@ -912,14 +916,14 @@ class CompletionProvider {
912
916
  if (!curNode.parent) {
913
917
  return false;
914
918
  }
915
- if (curNode.parent.nodeType === 21 /* ImportAs */ && curNode.parent.alias === curNode) {
919
+ if (curNode.parent.nodeType === 21 /* ParseNodeType.ImportAs */ && curNode.parent.alias === curNode) {
916
920
  // Are we within a "import Y as [Z]"?
917
921
  return undefined;
918
922
  }
919
- if (curNode.parent.nodeType === 37 /* ModuleName */) {
923
+ if (curNode.parent.nodeType === 37 /* ParseNodeType.ModuleName */) {
920
924
  // Are we within a "import Y as [<empty>]"?
921
925
  if (curNode.parent.parent &&
922
- curNode.parent.parent.nodeType === 21 /* ImportAs */ &&
926
+ curNode.parent.parent.nodeType === 21 /* ParseNodeType.ImportAs */ &&
923
927
  !curNode.parent.parent.alias &&
924
928
  textRange_1.TextRange.getEnd(curNode.parent.parent) < offset) {
925
929
  return undefined;
@@ -928,13 +932,13 @@ class CompletionProvider {
928
932
  // more specifically within the "Y"?
929
933
  return this._getImportModuleCompletions(curNode.parent);
930
934
  }
931
- if (curNode.parent.nodeType === 23 /* ImportFromAs */) {
935
+ if (curNode.parent.nodeType === 23 /* ParseNodeType.ImportFromAs */) {
932
936
  if (curNode.parent.alias === curNode) {
933
937
  // Are we within a "from X import Y as [Z]"?
934
938
  return undefined;
935
939
  }
936
940
  const parentNode = curNode.parent.parent;
937
- if (parentNode && parentNode.nodeType === 22 /* ImportFrom */) {
941
+ if (parentNode && parentNode.nodeType === 22 /* ParseNodeType.ImportFrom */) {
938
942
  // Are we within a "from X import Y as [<empty>]"?
939
943
  if (!curNode.parent.alias && textRange_1.TextRange.getEnd(curNode.parent) < offset) {
940
944
  return undefined;
@@ -946,36 +950,36 @@ class CompletionProvider {
946
950
  }
947
951
  return false;
948
952
  }
949
- if (curNode.parent.nodeType === 35 /* MemberAccess */ && curNode === curNode.parent.memberName) {
953
+ if (curNode.parent.nodeType === 35 /* ParseNodeType.MemberAccess */ && curNode === curNode.parent.memberName) {
950
954
  return this.getMemberAccessCompletions(curNode.parent.leftExpression, priorWord);
951
955
  }
952
- if (curNode.parent.nodeType === 25 /* Except */ && curNode === curNode.parent.name) {
956
+ if (curNode.parent.nodeType === 25 /* ParseNodeType.Except */ && curNode === curNode.parent.name) {
953
957
  return undefined;
954
958
  }
955
- if (curNode.parent.nodeType === 28 /* Function */ && curNode === curNode.parent.name) {
959
+ if (curNode.parent.nodeType === 28 /* ParseNodeType.Function */ && curNode === curNode.parent.name) {
956
960
  if ((_a = curNode.parent.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
957
961
  return this._getMethodOverloadsCompletions(priorWord, curNode);
958
962
  }
959
963
  return undefined;
960
964
  }
961
- if (curNode.parent.nodeType === 41 /* Parameter */ && curNode === curNode.parent.name) {
965
+ if (curNode.parent.nodeType === 41 /* ParseNodeType.Parameter */ && curNode === curNode.parent.name) {
962
966
  return undefined;
963
967
  }
964
- if (curNode.parent.nodeType === 10 /* Class */ && curNode === curNode.parent.name) {
968
+ if (curNode.parent.nodeType === 10 /* ParseNodeType.Class */ && curNode === curNode.parent.name) {
965
969
  return undefined;
966
970
  }
967
- if (curNode.parent.nodeType === 26 /* For */ &&
971
+ if (curNode.parent.nodeType === 26 /* ParseNodeType.For */ &&
968
972
  textRange_1.TextRange.contains(curNode.parent.targetExpression, curNode.start)) {
969
973
  return undefined;
970
974
  }
971
- if (curNode.parent.nodeType === 33 /* ListComprehensionFor */ &&
975
+ if (curNode.parent.nodeType === 33 /* ParseNodeType.ListComprehensionFor */ &&
972
976
  textRange_1.TextRange.contains(curNode.parent.targetExpression, curNode.start)) {
973
977
  return undefined;
974
978
  }
975
979
  // For assignments that implicitly declare variables, remove itself (var decl) from completion.
976
- if (curNode.parent.nodeType === 3 /* Assignment */ ||
977
- curNode.parent.nodeType === 4 /* AssignmentExpression */) {
978
- const leftNode = curNode.parent.nodeType === 4 /* AssignmentExpression */
980
+ if (curNode.parent.nodeType === 3 /* ParseNodeType.Assignment */ ||
981
+ curNode.parent.nodeType === 4 /* ParseNodeType.AssignmentExpression */) {
982
+ const leftNode = curNode.parent.nodeType === 4 /* ParseNodeType.AssignmentExpression */
979
983
  ? curNode.parent.name
980
984
  : curNode.parent.leftExpression;
981
985
  if (leftNode !== curNode || priorWord.length === 0) {
@@ -994,9 +998,9 @@ class CompletionProvider {
994
998
  // Defining class variables.
995
999
  // ex) class A:
996
1000
  // variable = 1
997
- if (curNode.parent.nodeType === 47 /* StatementList */ &&
998
- ((_b = curNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 50 /* Suite */ &&
999
- ((_c = curNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 10 /* Class */) {
1001
+ if (curNode.parent.nodeType === 47 /* ParseNodeType.StatementList */ &&
1002
+ ((_b = curNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 50 /* ParseNodeType.Suite */ &&
1003
+ ((_c = curNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 10 /* ParseNodeType.Class */) {
1000
1004
  const completionList = this._getClassVariableCompletions(curNode);
1001
1005
  if (completionList) {
1002
1006
  return completionList;
@@ -1047,23 +1051,23 @@ class CompletionProvider {
1047
1051
  // we can evaluate the left side of the member access expression
1048
1052
  // to determine its type and offer suggestions based on it.
1049
1053
  switch (node.category) {
1050
- case 0 /* MissingIn */: {
1054
+ case 0 /* ErrorExpressionCategory.MissingIn */: {
1051
1055
  return this._createSingleKeywordCompletion('in');
1052
1056
  }
1053
- case 1 /* MissingElse */: {
1057
+ case 1 /* ErrorExpressionCategory.MissingElse */: {
1054
1058
  return this._createSingleKeywordCompletion('else');
1055
1059
  }
1056
- case 7 /* MissingMemberAccessName */:
1057
- case 2 /* MissingExpression */: {
1060
+ case 7 /* ErrorExpressionCategory.MissingMemberAccessName */:
1061
+ case 2 /* ErrorExpressionCategory.MissingExpression */: {
1058
1062
  // Don't show completion after random dots.
1059
1063
  const tokenizerOutput = this.parseResults.tokenizerOutput;
1060
1064
  const offset = (0, positionUtils_1.convertPositionToOffset)(this.position, tokenizerOutput.lines);
1061
1065
  const index = ParseTreeUtils.getTokenIndexAtLeft(tokenizerOutput.tokens, offset);
1062
1066
  const token = ParseTreeUtils.getTokenAtIndex(tokenizerOutput.tokens, index);
1063
1067
  const prevToken = ParseTreeUtils.getTokenAtIndex(tokenizerOutput.tokens, index - 1);
1064
- if (node.category === 2 /* MissingExpression */) {
1068
+ if (node.category === 2 /* ErrorExpressionCategory.MissingExpression */) {
1065
1069
  // Skip dots on expressions.
1066
- if ((token === null || token === void 0 ? void 0 : token.type) === 20 /* Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* Ellipsis */) {
1070
+ if ((token === null || token === void 0 ? void 0 : token.type) === 20 /* TokenType.Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* TokenType.Ellipsis */) {
1067
1071
  break;
1068
1072
  }
1069
1073
  // ex) class MyType:
@@ -1075,16 +1079,16 @@ class CompletionProvider {
1075
1079
  // since parser won't see "is" as partially written member name instead it will see it as
1076
1080
  // expression statement with missing expression after "is" keyword.
1077
1081
  // In such case, use "MyType." to get completion.
1078
- if ((token === null || token === void 0 ? void 0 : token.type) !== 8 /* Keyword */ || textRange_1.TextRange.getEnd(token) !== offset) {
1082
+ if ((token === null || token === void 0 ? void 0 : token.type) !== 8 /* TokenType.Keyword */ || textRange_1.TextRange.getEnd(token) !== offset) {
1079
1083
  return this._getExpressionCompletions(node, priorWord, priorText, postText);
1080
1084
  }
1081
- if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) !== 20 /* Dot */) {
1085
+ if ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) !== 20 /* TokenType.Dot */) {
1082
1086
  return this._getExpressionCompletions(node, priorWord, priorText, postText);
1083
1087
  }
1084
1088
  const previousOffset = textRange_1.TextRange.getEnd(prevToken);
1085
1089
  const previousNode = ParseTreeUtils.findNodeByOffset(this.parseResults.parseTree, previousOffset);
1086
- if ((previousNode === null || previousNode === void 0 ? void 0 : previousNode.nodeType) !== 0 /* Error */ ||
1087
- previousNode.category !== 7 /* MissingMemberAccessName */) {
1090
+ if ((previousNode === null || previousNode === void 0 ? void 0 : previousNode.nodeType) !== 0 /* ParseNodeType.Error */ ||
1091
+ previousNode.category !== 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
1088
1092
  return this._getExpressionCompletions(node, priorWord, priorText, postText);
1089
1093
  }
1090
1094
  else {
@@ -1092,28 +1096,28 @@ class CompletionProvider {
1092
1096
  node = previousNode;
1093
1097
  }
1094
1098
  }
1095
- else if (node.category === 7 /* MissingMemberAccessName */) {
1099
+ else if (node.category === 7 /* ErrorExpressionCategory.MissingMemberAccessName */) {
1096
1100
  // Skip double dots on member access.
1097
- if (((token === null || token === void 0 ? void 0 : token.type) === 20 /* Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* Ellipsis */) &&
1098
- ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 20 /* Dot */ || (prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 19 /* Ellipsis */)) {
1101
+ if (((token === null || token === void 0 ? void 0 : token.type) === 20 /* TokenType.Dot */ || (token === null || token === void 0 ? void 0 : token.type) === 19 /* TokenType.Ellipsis */) &&
1102
+ ((prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 20 /* TokenType.Dot */ || (prevToken === null || prevToken === void 0 ? void 0 : prevToken.type) === 19 /* TokenType.Ellipsis */)) {
1099
1103
  return undefined;
1100
1104
  }
1101
1105
  }
1102
1106
  return this._getMissingMemberAccessNameCompletions(node, priorWord);
1103
1107
  }
1104
- case 4 /* MissingDecoratorCallName */: {
1108
+ case 4 /* ErrorExpressionCategory.MissingDecoratorCallName */: {
1105
1109
  return this._getExpressionCompletions(node, priorWord, priorText, postText);
1106
1110
  }
1107
- case 11 /* MissingPattern */:
1108
- case 3 /* MissingIndexOrSlice */: {
1111
+ case 11 /* ErrorExpressionCategory.MissingPattern */:
1112
+ case 3 /* ErrorExpressionCategory.MissingIndexOrSlice */: {
1109
1113
  let completionResults = this._getLiteralCompletions(node, offset, priorWord, priorText, postText);
1110
1114
  if (!completionResults) {
1111
1115
  completionResults = this._getExpressionCompletions(node, priorWord, priorText, postText);
1112
1116
  }
1113
1117
  return completionResults;
1114
1118
  }
1115
- case 10 /* MissingFunctionParameterList */: {
1116
- if (node.child && node.child.nodeType === 38 /* Name */) {
1119
+ case 10 /* ErrorExpressionCategory.MissingFunctionParameterList */: {
1120
+ if (node.child && node.child.nodeType === 38 /* ParseNodeType.Name */) {
1117
1121
  if ((_a = node.decorators) === null || _a === void 0 ? void 0 : _a.some((d) => this._isOverload(d))) {
1118
1122
  return this._getMethodOverloadsCompletions(priorWord, node.child);
1119
1123
  }
@@ -1147,12 +1151,12 @@ class CompletionProvider {
1147
1151
  var _a, _b, _c, _d;
1148
1152
  // class T:
1149
1153
  // f: |<= here
1150
- const isTypeAnnotationOfClassVariable = ((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 54 /* TypeAnnotation */ &&
1151
- parseNode.parent.valueExpression.nodeType === 38 /* Name */ &&
1154
+ const isTypeAnnotationOfClassVariable = ((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ &&
1155
+ parseNode.parent.valueExpression.nodeType === 38 /* ParseNodeType.Name */ &&
1152
1156
  parseNode.parent.typeAnnotation === parseNode &&
1153
- ((_b = parseNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 47 /* StatementList */ &&
1154
- ((_c = parseNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 50 /* Suite */ &&
1155
- ((_d = parseNode.parent.parent.parent.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 10 /* Class */;
1157
+ ((_b = parseNode.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 47 /* ParseNodeType.StatementList */ &&
1158
+ ((_c = parseNode.parent.parent.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 50 /* ParseNodeType.Suite */ &&
1159
+ ((_d = parseNode.parent.parent.parent.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 10 /* ParseNodeType.Class */;
1156
1160
  if (!isTypeAnnotationOfClassVariable) {
1157
1161
  return;
1158
1162
  }
@@ -1165,7 +1169,7 @@ class CompletionProvider {
1165
1169
  return undefined;
1166
1170
  }
1167
1171
  const classVariableName = parseNode.parent.valueExpression.value;
1168
- const classMember = (0, typeUtils_1.lookUpClassMember)(classResults.classType, classVariableName, 16 /* SkipInstanceMembers */ | 1 /* SkipOriginalClass */);
1172
+ const classMember = (0, typeUtils_1.lookUpClassMember)(classResults.classType, classVariableName, 16 /* MemberAccessFlags.SkipInstanceMembers */ | 1 /* MemberAccessFlags.SkipOriginalClass */);
1169
1173
  // First, see whether we can use semantic info to get variable type.
1170
1174
  if (classMember) {
1171
1175
  const memberType = this.evaluator.getTypeOfMember(classMember);
@@ -1206,9 +1210,9 @@ class CompletionProvider {
1206
1210
  return;
1207
1211
  }
1208
1212
  const printFlags = (0, sourceMapper_1.isStubFile)(this.filePath)
1209
- ? 1 /* ForwardDeclarations */ |
1210
- 2 /* DoNotLimitStringLength */
1211
- : 2 /* DoNotLimitStringLength */;
1213
+ ? 1 /* ParseTreeUtils.PrintExpressionFlags.ForwardDeclarations */ |
1214
+ 2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */
1215
+ : 2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */;
1212
1216
  const text = `${ParseTreeUtils.printExpression(declWithTypeAnnotations[declWithTypeAnnotations.length - 1].typeAnnotationNode, printFlags)}`;
1213
1217
  this.addNameToCompletions(text, vscode_languageserver_1.CompletionItemKind.Reference, priorWord, completionMap, {
1214
1218
  sortText: this._makeSortText(SortCategory.LikelyKeyword, text),
@@ -1255,12 +1259,12 @@ class CompletionProvider {
1255
1259
  if (!symbolTable) {
1256
1260
  return undefined;
1257
1261
  }
1258
- const funcParensDisabled = ((_a = partialName.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 28 /* Function */ ? true : undefined;
1262
+ const funcParensDisabled = ((_a = partialName.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 28 /* ParseNodeType.Function */ ? true : undefined;
1259
1263
  const completionMap = new CompletionMap();
1260
1264
  const enclosingFunc = ParseTreeUtils.getEnclosingFunction(partialName);
1261
1265
  symbolTable.forEach((symbol, name) => {
1262
1266
  const decl = (0, symbolUtils_1.getLastTypedDeclaredForSymbol)(symbol);
1263
- if (!decl || decl.type !== 5 /* Function */) {
1267
+ if (!decl || decl.type !== 5 /* DeclarationType.Function */) {
1264
1268
  return;
1265
1269
  }
1266
1270
  if (!decl.node.decorators.some((d) => this._isOverload(d))) {
@@ -1317,16 +1321,16 @@ class CompletionProvider {
1317
1321
  ellipsisForDefault = false;
1318
1322
  }
1319
1323
  const printFlags = (0, sourceMapper_1.isStubFile)(this.filePath)
1320
- ? 1 /* ForwardDeclarations */ |
1321
- 2 /* DoNotLimitStringLength */
1322
- : 2 /* DoNotLimitStringLength */;
1324
+ ? 1 /* ParseTreeUtils.PrintExpressionFlags.ForwardDeclarations */ |
1325
+ 2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */
1326
+ : 2 /* ParseTreeUtils.PrintExpressionFlags.DoNotLimitStringLength */;
1323
1327
  const paramList = node.parameters
1324
1328
  .map((param, index) => {
1325
1329
  let paramString = '';
1326
- if (param.category === 1 /* ArgsList */) {
1330
+ if (param.category === 1 /* ParameterCategory.ArgsList */) {
1327
1331
  paramString += '*';
1328
1332
  }
1329
- else if (param.category === 2 /* KwargsDict */) {
1333
+ else if (param.category === 2 /* ParameterCategory.KwargsDict */) {
1330
1334
  paramString += '**';
1331
1335
  }
1332
1336
  if (param.name) {
@@ -1343,7 +1347,7 @@ class CompletionProvider {
1343
1347
  const useEllipsis = ellipsisForDefault !== null && ellipsisForDefault !== void 0 ? ellipsisForDefault : !this.isSimpleDefault(param.defaultValue);
1344
1348
  paramString += useEllipsis ? '...' : ParseTreeUtils.printExpression(param.defaultValue, printFlags);
1345
1349
  }
1346
- if (!paramString && !param.name && param.category === 0 /* Simple */) {
1350
+ if (!paramString && !param.name && param.category === 0 /* ParameterCategory.Simple */) {
1347
1351
  return '/';
1348
1352
  }
1349
1353
  return paramString;
@@ -1369,12 +1373,12 @@ class CompletionProvider {
1369
1373
  const isIndexArgument = this._isIndexArgument(parseNode);
1370
1374
  // If the user typed a "." as part of a number, don't present
1371
1375
  // any completion options.
1372
- if (!isIndexArgument && parseNode.nodeType === 40 /* Number */) {
1376
+ if (!isIndexArgument && parseNode.nodeType === 40 /* ParseNodeType.Number */) {
1373
1377
  return undefined;
1374
1378
  }
1375
1379
  // Are we within a "with Y as []"?
1376
1380
  // Don't add any completion options.
1377
- if (((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 59 /* WithItem */ &&
1381
+ if (((_a = parseNode.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 59 /* ParseNodeType.WithItem */ &&
1378
1382
  parseNode.parent === ((_b = parseNode.parent.target) === null || _b === void 0 ? void 0 : _b.parent)) {
1379
1383
  return undefined;
1380
1384
  }
@@ -1414,12 +1418,12 @@ class CompletionProvider {
1414
1418
  _isIndexArgument(node) {
1415
1419
  const currentNode = node.parent;
1416
1420
  return (currentNode &&
1417
- currentNode.nodeType === 1 /* Argument */ &&
1418
- currentNode.argumentCategory === 0 /* Simple */ &&
1421
+ currentNode.nodeType === 1 /* ParseNodeType.Argument */ &&
1422
+ currentNode.argumentCategory === 0 /* ArgumentCategory.Simple */ &&
1419
1423
  currentNode.parent &&
1420
- currentNode.parent.nodeType === 24 /* Index */ &&
1424
+ currentNode.parent.nodeType === 24 /* ParseNodeType.Index */ &&
1421
1425
  currentNode.parent.baseExpression &&
1422
- currentNode.parent.baseExpression.nodeType === 38 /* Name */);
1426
+ currentNode.parent.baseExpression.nodeType === 38 /* ParseNodeType.Name */);
1423
1427
  }
1424
1428
  _addCallArgumentCompletions(parseNode, priorWord, priorText, postText, atArgument, completionMap) {
1425
1429
  // If we're within the argument list of a call, add parameter names.
@@ -1478,21 +1482,21 @@ class CompletionProvider {
1478
1482
  return [];
1479
1483
  }
1480
1484
  return node.entries.flatMap((entry) => {
1481
- if (entry.nodeType !== 17 /* DictionaryKeyEntry */ || (excludeIds === null || excludeIds === void 0 ? void 0 : excludeIds.has(entry.keyExpression.id))) {
1485
+ if (entry.nodeType !== 17 /* ParseNodeType.DictionaryKeyEntry */ || (excludeIds === null || excludeIds === void 0 ? void 0 : excludeIds.has(entry.keyExpression.id))) {
1482
1486
  return [];
1483
1487
  }
1484
- if (entry.keyExpression.nodeType === 48 /* StringList */) {
1488
+ if (entry.keyExpression.nodeType === 48 /* ParseNodeType.StringList */) {
1485
1489
  return [entry.keyExpression.strings.map((s) => s.value).join('')];
1486
1490
  }
1487
1491
  return [];
1488
1492
  });
1489
1493
  function getDictionaryLikeNode(parseNode) {
1490
1494
  // this method assumes the given parseNode is either a child of a dictionary or a dictionary itself
1491
- if (parseNode.nodeType === 15 /* Dictionary */) {
1495
+ if (parseNode.nodeType === 15 /* ParseNodeType.Dictionary */) {
1492
1496
  return parseNode;
1493
1497
  }
1494
1498
  let curNode = parseNode;
1495
- while (curNode && curNode.nodeType !== 15 /* Dictionary */ && curNode.nodeType !== 45 /* Set */) {
1499
+ while (curNode && curNode.nodeType !== 15 /* ParseNodeType.Dictionary */ && curNode.nodeType !== 45 /* ParseNodeType.Set */) {
1496
1500
  curNode = curNode.parent;
1497
1501
  if (!curNode) {
1498
1502
  return;
@@ -1518,7 +1522,7 @@ class CompletionProvider {
1518
1522
  // Handle both overloaded and non-overloaded functions.
1519
1523
  (0, typeUtils_1.doForEachSignature)(getItemType, (signature) => {
1520
1524
  if (signature.details.parameters.length >= 1 &&
1521
- signature.details.parameters[0].category === 0 /* Simple */) {
1525
+ signature.details.parameters[0].category === 0 /* ParameterCategory.Simple */) {
1522
1526
  typesToCombine.push(types_1.FunctionType.getEffectiveParameterType(signature, 0));
1523
1527
  }
1524
1528
  });
@@ -1552,7 +1556,7 @@ class CompletionProvider {
1552
1556
  return keys;
1553
1557
  }
1554
1558
  }
1555
- if (indexNode.baseExpression.nodeType !== 38 /* Name */) {
1559
+ if (indexNode.baseExpression.nodeType !== 38 /* ParseNodeType.Name */) {
1556
1560
  // This completion only supports simple name case
1557
1561
  return [];
1558
1562
  }
@@ -1560,7 +1564,7 @@ class CompletionProvider {
1560
1564
  const declarations = (_a = this.evaluator.getDeclarationsForNameNode(indexNode.baseExpression)) !== null && _a !== void 0 ? _a : [];
1561
1565
  const declaration = declarations.length > 0 ? declarations[0] : undefined;
1562
1566
  if (!declaration ||
1563
- (declaration.type !== 1 /* Variable */ && declaration.type !== 2 /* Parameter */)) {
1567
+ (declaration.type !== 1 /* DeclarationType.Variable */ && declaration.type !== 2 /* DeclarationType.Parameter */)) {
1564
1568
  return [];
1565
1569
  }
1566
1570
  if (declaration.path !== this.filePath) {
@@ -1578,12 +1582,12 @@ class CompletionProvider {
1578
1582
  const results = documentSymbolCollector_1.DocumentSymbolCollector.collectFromNode(this.program, indexNode.baseExpression, this.cancellationToken, startingNode);
1579
1583
  const keys = new Set();
1580
1584
  for (const result of results) {
1581
- const node = ((_d = result.node.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 54 /* TypeAnnotation */ ? result.node.parent : result.node;
1582
- if (((_e = node.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 3 /* Assignment */ ||
1583
- ((_f = node.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 4 /* AssignmentExpression */) {
1584
- if (node.parent.rightExpression.nodeType === 15 /* Dictionary */) {
1585
+ const node = ((_d = result.node.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 54 /* ParseNodeType.TypeAnnotation */ ? result.node.parent : result.node;
1586
+ if (((_e = node.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 3 /* ParseNodeType.Assignment */ ||
1587
+ ((_f = node.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 4 /* ParseNodeType.AssignmentExpression */) {
1588
+ if (node.parent.rightExpression.nodeType === 15 /* ParseNodeType.Dictionary */) {
1585
1589
  const dictionary = node.parent.rightExpression;
1586
- for (const entry of dictionary.entries.filter((e) => e.nodeType === 17 /* DictionaryKeyEntry */)) {
1590
+ for (const entry of dictionary.entries.filter((e) => e.nodeType === 17 /* ParseNodeType.DictionaryKeyEntry */)) {
1587
1591
  const key = this.parseResults.text
1588
1592
  .substr(entry.keyExpression.start, entry.keyExpression.length)
1589
1593
  .trim();
@@ -1591,7 +1595,7 @@ class CompletionProvider {
1591
1595
  keys.add(key);
1592
1596
  }
1593
1597
  }
1594
- if (node.parent.rightExpression.nodeType === 9 /* Call */) {
1598
+ if (node.parent.rightExpression.nodeType === 9 /* ParseNodeType.Call */) {
1595
1599
  const call = node.parent.rightExpression;
1596
1600
  const type = this.evaluator.getType(call.leftExpression);
1597
1601
  if (!type || !(0, types_1.isInstantiableClass)(type) || !types_1.ClassType.isBuiltIn(type, 'dict')) {
@@ -1606,9 +1610,9 @@ class CompletionProvider {
1606
1610
  }
1607
1611
  }
1608
1612
  }
1609
- if (((_j = node.parent) === null || _j === void 0 ? void 0 : _j.nodeType) === 24 /* Index */ &&
1613
+ if (((_j = node.parent) === null || _j === void 0 ? void 0 : _j.nodeType) === 24 /* ParseNodeType.Index */ &&
1610
1614
  node.parent.items.length === 1 &&
1611
- node.parent.items[0].valueExpression.nodeType !== 0 /* Error */ &&
1615
+ node.parent.items[0].valueExpression.nodeType !== 0 /* ParseNodeType.Error */ &&
1612
1616
  !textRange_1.TextRange.containsRange(node.parent, invocationNode)) {
1613
1617
  const indexArgument = node.parent.items[0];
1614
1618
  const key = this.parseResults.text
@@ -1642,7 +1646,7 @@ class CompletionProvider {
1642
1646
  }
1643
1647
  // See if the type evaluator can determine the expected type for this node.
1644
1648
  // ex) a: Literal["str"] = /* here */
1645
- const nodeForExpectedType = parentAndChild.parent.nodeType === 3 /* Assignment */
1649
+ const nodeForExpectedType = parentAndChild.parent.nodeType === 3 /* ParseNodeType.Assignment */
1646
1650
  ? parentAndChild.parent.rightExpression === parentAndChild.child
1647
1651
  ? parentAndChild.child
1648
1652
  : undefined
@@ -1662,16 +1666,16 @@ class CompletionProvider {
1662
1666
  // If the dictionary is not yet filled in, it will appear as though it's
1663
1667
  // a set initially.
1664
1668
  let dictOrSet;
1665
- if (nodeForKey.nodeType === 17 /* DictionaryKeyEntry */ &&
1669
+ if (nodeForKey.nodeType === 17 /* ParseNodeType.DictionaryKeyEntry */ &&
1666
1670
  nodeForKey.keyExpression === parentAndChild.child &&
1667
- ((_a = nodeForKey.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 15 /* Dictionary */) {
1671
+ ((_a = nodeForKey.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 15 /* ParseNodeType.Dictionary */) {
1668
1672
  dictOrSet = nodeForKey.parent;
1669
1673
  }
1670
- else if ((nodeForKey === null || nodeForKey === void 0 ? void 0 : nodeForKey.nodeType) === 45 /* Set */) {
1674
+ else if ((nodeForKey === null || nodeForKey === void 0 ? void 0 : nodeForKey.nodeType) === 45 /* ParseNodeType.Set */) {
1671
1675
  dictOrSet = nodeForKey;
1672
1676
  }
1673
1677
  if (dictOrSet) {
1674
- if (this._tryAddTypedDictKeysFromDictionary(dictOrSet, parseNode.nodeType === 49 /* String */ ? parseNode : undefined, priorWord, priorText, postText, completionMap)) {
1678
+ if (this._tryAddTypedDictKeysFromDictionary(dictOrSet, parseNode.nodeType === 49 /* ParseNodeType.String */ ? parseNode : undefined, priorWord, priorText, postText, completionMap)) {
1675
1679
  return true;
1676
1680
  }
1677
1681
  }
@@ -1679,8 +1683,8 @@ class CompletionProvider {
1679
1683
  // a: DictType = { .... }
1680
1684
  // a[/* here */] or a['/* here */'] or a[variable/*here*/]
1681
1685
  const argument = parentAndChild.parent;
1682
- if (argument.nodeType === 1 /* Argument */ && ((_b = argument.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 24 /* Index */) {
1683
- const priorTextInString = parseNode.nodeType === 49 /* String */ ? priorText : '';
1686
+ if (argument.nodeType === 1 /* ParseNodeType.Argument */ && ((_b = argument.parent) === null || _b === void 0 ? void 0 : _b.nodeType) === 24 /* ParseNodeType.Index */) {
1687
+ const priorTextInString = parseNode.nodeType === 49 /* ParseNodeType.String */ ? priorText : '';
1684
1688
  if (this._tryAddTypedDictKeysFromIndexer(argument.parent, priorWord, priorTextInString, postText, completionMap)) {
1685
1689
  return true;
1686
1690
  }
@@ -1696,7 +1700,7 @@ class CompletionProvider {
1696
1700
  continue;
1697
1701
  }
1698
1702
  const stringLiteral = /^["|'].*["|']$/.test(key);
1699
- if (parseNode.nodeType === 49 /* String */ && !stringLiteral) {
1703
+ if (parseNode.nodeType === 49 /* ParseNodeType.String */ && !stringLiteral) {
1700
1704
  continue;
1701
1705
  }
1702
1706
  keyFound = true;
@@ -1717,8 +1721,8 @@ class CompletionProvider {
1717
1721
  }
1718
1722
  // if c == "/* here */"
1719
1723
  const comparison = parentAndChild.parent;
1720
- const supportedOperators = [2 /* Assign */, 12 /* Equals */, 28 /* NotEquals */];
1721
- if (comparison.nodeType === 7 /* BinaryOperation */ && supportedOperators.includes(comparison.operator)) {
1724
+ const supportedOperators = [2 /* OperatorType.Assign */, 12 /* OperatorType.Equals */, 28 /* OperatorType.NotEquals */];
1725
+ if (comparison.nodeType === 7 /* ParseNodeType.BinaryOperation */ && supportedOperators.includes(comparison.operator)) {
1722
1726
  const type = this.evaluator.getType(comparison.leftExpression);
1723
1727
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
1724
1728
  this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
@@ -1727,7 +1731,7 @@ class CompletionProvider {
1727
1731
  }
1728
1732
  // if c := "/* here */"
1729
1733
  const assignmentExpression = parentAndChild.parent;
1730
- if (assignmentExpression.nodeType === 4 /* AssignmentExpression */ &&
1734
+ if (assignmentExpression.nodeType === 4 /* ParseNodeType.AssignmentExpression */ &&
1731
1735
  assignmentExpression.rightExpression === parentAndChild.child) {
1732
1736
  const type = this.evaluator.getType(assignmentExpression.name);
1733
1737
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
@@ -1739,11 +1743,11 @@ class CompletionProvider {
1739
1743
  // match c:
1740
1744
  // case /* here */
1741
1745
  const caseNode = parentAndChild.parent;
1742
- if (caseNode.nodeType === 64 /* Case */ &&
1743
- caseNode.pattern.nodeType === 0 /* Error */ &&
1744
- caseNode.pattern.category === 11 /* MissingPattern */ &&
1746
+ if (caseNode.nodeType === 64 /* ParseNodeType.Case */ &&
1747
+ caseNode.pattern.nodeType === 0 /* ParseNodeType.Error */ &&
1748
+ caseNode.pattern.category === 11 /* ErrorExpressionCategory.MissingPattern */ &&
1745
1749
  caseNode.suite === parentAndChild.child &&
1746
- ((_c = caseNode.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 63 /* Match */) {
1750
+ ((_c = caseNode.parent) === null || _c === void 0 ? void 0 : _c.nodeType) === 63 /* ParseNodeType.Match */) {
1747
1751
  const type = this.evaluator.getType(caseNode.parent.subjectExpression);
1748
1752
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
1749
1753
  this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
@@ -1754,18 +1758,18 @@ class CompletionProvider {
1754
1758
  // case "/* here */"
1755
1759
  // case Sym/*here*/
1756
1760
  const patternLiteral = parentAndChild.parent;
1757
- if ((patternLiteral.nodeType === 67 /* PatternLiteral */ ||
1758
- patternLiteral.nodeType === 69 /* PatternCapture */) &&
1759
- ((_d = patternLiteral.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 66 /* PatternAs */ &&
1760
- ((_e = patternLiteral.parent.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 64 /* Case */ &&
1761
- ((_f = patternLiteral.parent.parent.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 63 /* Match */) {
1761
+ if ((patternLiteral.nodeType === 67 /* ParseNodeType.PatternLiteral */ ||
1762
+ patternLiteral.nodeType === 69 /* ParseNodeType.PatternCapture */) &&
1763
+ ((_d = patternLiteral.parent) === null || _d === void 0 ? void 0 : _d.nodeType) === 66 /* ParseNodeType.PatternAs */ &&
1764
+ ((_e = patternLiteral.parent.parent) === null || _e === void 0 ? void 0 : _e.nodeType) === 64 /* ParseNodeType.Case */ &&
1765
+ ((_f = patternLiteral.parent.parent.parent) === null || _f === void 0 ? void 0 : _f.nodeType) === 63 /* ParseNodeType.Match */) {
1762
1766
  const type = this.evaluator.getType(patternLiteral.parent.parent.parent.subjectExpression);
1763
1767
  if (type && (0, typeUtils_1.containsLiteralType)(type)) {
1764
1768
  this._addLiteralValuesForTargetType(type, priorWord, priorText, postText, completionMap);
1765
1769
  return true;
1766
1770
  }
1767
1771
  }
1768
- if (parseNode.nodeType === 49 /* String */) {
1772
+ if (parseNode.nodeType === 49 /* ParseNodeType.String */) {
1769
1773
  const offset = (0, positionUtils_1.convertPositionToOffset)(this.position, this.parseResults.tokenizerOutput.lines);
1770
1774
  const atArgument = parseNode.parent.start < offset && offset < textRange_1.TextRange.getEnd(parseNode);
1771
1775
  this._addCallArgumentCompletions(parseNode, priorWord, priorText, postText, atArgument, completionMap);
@@ -1777,13 +1781,13 @@ class CompletionProvider {
1777
1781
  if (!node.parent) {
1778
1782
  return undefined;
1779
1783
  }
1780
- if (node.nodeType !== 49 /* String */) {
1784
+ if (node.nodeType !== 49 /* ParseNodeType.String */) {
1781
1785
  return { parent: node.parent, child: node };
1782
1786
  }
1783
1787
  if (!node.parent.parent) {
1784
1788
  return undefined;
1785
1789
  }
1786
- if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 48 /* StringList */ || node.parent.strings.length > 1) {
1790
+ if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) !== 48 /* ParseNodeType.StringList */ || node.parent.strings.length > 1) {
1787
1791
  return undefined;
1788
1792
  }
1789
1793
  return { parent: node.parent.parent, child: node.parent };
@@ -1879,9 +1883,9 @@ class CompletionProvider {
1879
1883
  // permitted. For example, f"..{typedDict[|<= here ]}", we need to use
1880
1884
  // single quotes. Note that this doesn't account for deeper nested
1881
1885
  // f-strings.
1882
- if (this._stringLiteralContainer.flags & 64 /* Format */) {
1886
+ if (this._stringLiteralContainer.flags & 64 /* StringTokenFlags.Format */) {
1883
1887
  quoteCharacter =
1884
- this._stringLiteralContainer.flags & 1 /* SingleQuote */ ? doubleQuote : singleQuote;
1888
+ this._stringLiteralContainer.flags & 1 /* StringTokenFlags.SingleQuote */ ? doubleQuote : singleQuote;
1885
1889
  }
1886
1890
  if (stringValue) {
1887
1891
  filterText = stringValue;
@@ -2041,7 +2045,7 @@ class CompletionProvider {
2041
2045
  scope = scope.parent;
2042
2046
  }
2043
2047
  // If this is a class scope, add symbols from parent classes.
2044
- if (curNode.nodeType === 10 /* Class */) {
2048
+ if (curNode.nodeType === 10 /* ParseNodeType.Class */) {
2045
2049
  const classType = this.evaluator.getTypeOfClass(curNode);
2046
2050
  if (classType && (0, types_1.isInstantiableClass)(classType.classType)) {
2047
2051
  classType.classType.details.mro.forEach((baseClass, index) => {
@@ -2053,7 +2057,7 @@ class CompletionProvider {
2053
2057
  // Return only variables, not methods or classes.
2054
2058
  return symbol
2055
2059
  .getDeclarations()
2056
- .some((decl) => decl.type === 1 /* Variable */);
2060
+ .some((decl) => decl.type === 1 /* DeclarationType.Variable */);
2057
2061
  }, priorWord, node,
2058
2062
  /* isInImport */ false,
2059
2063
  /* boundObject */ undefined, completionMap);
@@ -2092,20 +2096,20 @@ class CompletionProvider {
2092
2096
  }
2093
2097
  _shouldShowAutoParensForClass(symbol, node) {
2094
2098
  var _a, _b;
2095
- if (symbol.getDeclarations().every((d) => d.type !== 6 /* Class */)) {
2099
+ if (symbol.getDeclarations().every((d) => d.type !== 6 /* DeclarationType.Class */)) {
2096
2100
  // Not actually a class, so yes show parens.
2097
2101
  return true;
2098
2102
  }
2099
2103
  // If an argument then show parens for classes if not a class argument.
2100
- if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 1 /* Argument */ && ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) !== 10 /* Class */) {
2104
+ if (((_a = node.parent) === null || _a === void 0 ? void 0 : _a.nodeType) === 1 /* ParseNodeType.Argument */ && ((_b = node.parent.parent) === null || _b === void 0 ? void 0 : _b.nodeType) !== 10 /* ParseNodeType.Class */) {
2101
2105
  return true;
2102
2106
  }
2103
2107
  // Otherwise only show when the class is being assigned to a variable.
2104
2108
  const nodeIndex = ParseTreeUtils.getTokenIndexAtLeft(this.parseResults.tokenizerOutput.tokens, node.start);
2105
2109
  const prevToken = ParseTreeUtils.getTokenAtIndex(this.parseResults.tokenizerOutput.tokens, nodeIndex);
2106
2110
  return (prevToken &&
2107
- prevToken.type === 9 /* Operator */ &&
2108
- prevToken.operatorType === 2 /* Assign */);
2111
+ prevToken.type === 9 /* TokenType.Operator */ &&
2112
+ prevToken.operatorType === 2 /* OperatorType.Assign */);
2109
2113
  }
2110
2114
  _getAutoImportText(importName, importFrom, importAlias) {
2111
2115
  const autoImportText = (0, tooltipUtils_1.getAutoImportText)(importName, importFrom, importAlias);
@@ -2171,21 +2175,21 @@ class CompletionProvider {
2171
2175
  return vscode_languageserver_1.CompletionItemKind.Variable;
2172
2176
  }
2173
2177
  switch (resolvedDeclaration.type) {
2174
- case 0 /* Intrinsic */:
2178
+ case 0 /* DeclarationType.Intrinsic */:
2175
2179
  return resolvedDeclaration.intrinsicType === 'class'
2176
2180
  ? vscode_languageserver_1.CompletionItemKind.Class
2177
2181
  : vscode_languageserver_1.CompletionItemKind.Variable;
2178
- case 2 /* Parameter */:
2182
+ case 2 /* DeclarationType.Parameter */:
2179
2183
  return vscode_languageserver_1.CompletionItemKind.Variable;
2180
- case 3 /* TypeParameter */:
2184
+ case 3 /* DeclarationType.TypeParameter */:
2181
2185
  return vscode_languageserver_1.CompletionItemKind.TypeParameter;
2182
- case 1 /* Variable */:
2186
+ case 1 /* DeclarationType.Variable */:
2183
2187
  return resolvedDeclaration.isConstant || resolvedDeclaration.isFinal
2184
2188
  ? vscode_languageserver_1.CompletionItemKind.Constant
2185
2189
  : vscode_languageserver_1.CompletionItemKind.Variable;
2186
- case 4 /* TypeAlias */:
2190
+ case 4 /* DeclarationType.TypeAlias */:
2187
2191
  return vscode_languageserver_1.CompletionItemKind.Variable;
2188
- case 5 /* Function */: {
2192
+ case 5 /* DeclarationType.Function */: {
2189
2193
  if (this._isPossiblePropertyDeclaration(resolvedDeclaration)) {
2190
2194
  const functionType = this.evaluator.getTypeOfFunction(resolvedDeclaration.node);
2191
2195
  if (functionType &&
@@ -2195,26 +2199,26 @@ class CompletionProvider {
2195
2199
  }
2196
2200
  return resolvedDeclaration.isMethod ? vscode_languageserver_1.CompletionItemKind.Method : vscode_languageserver_1.CompletionItemKind.Function;
2197
2201
  }
2198
- case 6 /* Class */:
2199
- case 7 /* SpecialBuiltInClass */:
2202
+ case 6 /* DeclarationType.Class */:
2203
+ case 7 /* DeclarationType.SpecialBuiltInClass */:
2200
2204
  return vscode_languageserver_1.CompletionItemKind.Class;
2201
- case 8 /* Alias */:
2205
+ case 8 /* DeclarationType.Alias */:
2202
2206
  return vscode_languageserver_1.CompletionItemKind.Module;
2203
2207
  }
2204
2208
  }
2205
2209
  _convertTypeToItemKind(type) {
2206
2210
  switch (type.category) {
2207
- case 7 /* Module */:
2211
+ case 7 /* TypeCategory.Module */:
2208
2212
  return vscode_languageserver_1.CompletionItemKind.Module;
2209
- case 6 /* Class */:
2213
+ case 6 /* TypeCategory.Class */:
2210
2214
  return vscode_languageserver_1.CompletionItemKind.Class;
2211
- case 4 /* Function */:
2212
- case 5 /* OverloadedFunction */:
2215
+ case 4 /* TypeCategory.Function */:
2216
+ case 5 /* TypeCategory.OverloadedFunction */:
2213
2217
  if ((0, typeUtils_1.isMaybeDescriptorInstance)(type, /* requireSetter */ false)) {
2214
2218
  return vscode_languageserver_1.CompletionItemKind.Property;
2215
2219
  }
2216
2220
  return vscode_languageserver_1.CompletionItemKind.Function;
2217
- case 9 /* TypeVar */:
2221
+ case 9 /* TypeCategory.TypeVar */:
2218
2222
  return vscode_languageserver_1.CompletionItemKind.TypeParameter;
2219
2223
  default:
2220
2224
  return vscode_languageserver_1.CompletionItemKind.Variable;
@@ -2233,7 +2237,7 @@ class CompletionProvider {
2233
2237
  // the "import" keyword as a completion.
2234
2238
  if (!node.hasTrailingDot &&
2235
2239
  node.parent &&
2236
- node.parent.nodeType === 22 /* ImportFrom */ &&
2240
+ node.parent.nodeType === 22 /* ParseNodeType.ImportFrom */ &&
2237
2241
  node.parent.missingImportKeyword) {
2238
2242
  const keyword = 'import';
2239
2243
  const completionItem = vscode_languageserver_1.CompletionItem.create(keyword);