@zzzen/pyright-internal 1.2.0-dev.20231112 → 1.2.0-dev.20231126

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 (400) 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 +198 -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 +1 -0
  16. package/dist/analyzer/checker.js +286 -256
  17. package/dist/analyzer/checker.js.map +1 -1
  18. package/dist/analyzer/codeFlowEngine.d.ts +1 -1
  19. package/dist/analyzer/codeFlowEngine.js +26 -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/constraintSolver.js +48 -45
  27. package/dist/analyzer/constraintSolver.js.map +1 -1
  28. package/dist/analyzer/constructorTransform.js +8 -8
  29. package/dist/analyzer/constructorTransform.js.map +1 -1
  30. package/dist/analyzer/constructors.js +33 -31
  31. package/dist/analyzer/constructors.js.map +1 -1
  32. package/dist/analyzer/dataClasses.js +67 -63
  33. package/dist/analyzer/dataClasses.js.map +1 -1
  34. package/dist/analyzer/declaration.d.ts +2 -2
  35. package/dist/analyzer/declaration.js +10 -10
  36. package/dist/analyzer/declaration.js.map +1 -1
  37. package/dist/analyzer/declarationUtils.js +44 -41
  38. package/dist/analyzer/declarationUtils.js.map +1 -1
  39. package/dist/analyzer/decorators.js +51 -51
  40. package/dist/analyzer/decorators.js.map +1 -1
  41. package/dist/analyzer/docStringConversion.js +1 -1
  42. package/dist/analyzer/docStringConversion.js.map +1 -1
  43. package/dist/analyzer/docStringUtils.js +1 -1
  44. package/dist/analyzer/enums.js +27 -27
  45. package/dist/analyzer/enums.js.map +1 -1
  46. package/dist/analyzer/functionTransform.js +4 -4
  47. package/dist/analyzer/functionTransform.js.map +1 -1
  48. package/dist/analyzer/importResolver.d.ts +1 -1
  49. package/dist/analyzer/importResolver.js +27 -18
  50. package/dist/analyzer/importResolver.js.map +1 -1
  51. package/dist/analyzer/importResult.js +1 -1
  52. package/dist/analyzer/importResult.js.map +1 -1
  53. package/dist/analyzer/importStatementUtils.js +31 -27
  54. package/dist/analyzer/importStatementUtils.js.map +1 -1
  55. package/dist/analyzer/namedTuples.js +36 -32
  56. package/dist/analyzer/namedTuples.js.map +1 -1
  57. package/dist/analyzer/operations.js +78 -78
  58. package/dist/analyzer/operations.js.map +1 -1
  59. package/dist/analyzer/packageTypeReport.d.ts +1 -1
  60. package/dist/analyzer/packageTypeReport.js +2 -2
  61. package/dist/analyzer/packageTypeReport.js.map +1 -1
  62. package/dist/analyzer/packageTypeVerifier.js +90 -90
  63. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  64. package/dist/analyzer/parameterUtils.js +14 -14
  65. package/dist/analyzer/parameterUtils.js.map +1 -1
  66. package/dist/analyzer/parentDirectoryCache.d.ts +2 -2
  67. package/dist/analyzer/parseTreeCleaner.js +5 -1
  68. package/dist/analyzer/parseTreeCleaner.js.map +1 -1
  69. package/dist/analyzer/parseTreeUtils.d.ts +1 -1
  70. package/dist/analyzer/parseTreeUtils.js +383 -379
  71. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  72. package/dist/analyzer/parseTreeWalker.js +161 -157
  73. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  74. package/dist/analyzer/patternMatching.d.ts +1 -1
  75. package/dist/analyzer/patternMatching.js +71 -64
  76. package/dist/analyzer/patternMatching.js.map +1 -1
  77. package/dist/analyzer/program.d.ts +1 -1
  78. package/dist/analyzer/program.js +20 -17
  79. package/dist/analyzer/program.js.map +1 -1
  80. package/dist/analyzer/properties.js +53 -44
  81. package/dist/analyzer/properties.js.map +1 -1
  82. package/dist/analyzer/protocols.js +14 -14
  83. package/dist/analyzer/protocols.js.map +1 -1
  84. package/dist/analyzer/pythonPathUtils.js +5 -1
  85. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  86. package/dist/analyzer/regions.js +3 -3
  87. package/dist/analyzer/regions.js.map +1 -1
  88. package/dist/analyzer/scope.js +8 -8
  89. package/dist/analyzer/scope.js.map +1 -1
  90. package/dist/analyzer/scopeUtils.js +1 -1
  91. package/dist/analyzer/scopeUtils.js.map +1 -1
  92. package/dist/analyzer/service.js +5 -1
  93. package/dist/analyzer/service.js.map +1 -1
  94. package/dist/analyzer/sourceFile.js +25 -21
  95. package/dist/analyzer/sourceFile.js.map +1 -1
  96. package/dist/analyzer/sourceMapper.d.ts +2 -2
  97. package/dist/analyzer/sourceMapper.js +15 -8
  98. package/dist/analyzer/sourceMapper.js.map +1 -1
  99. package/dist/analyzer/staticExpressions.js +40 -40
  100. package/dist/analyzer/staticExpressions.js.map +1 -1
  101. package/dist/analyzer/symbol.d.ts +1 -1
  102. package/dist/analyzer/symbol.js +26 -26
  103. package/dist/analyzer/symbol.js.map +1 -1
  104. package/dist/analyzer/symbolUtils.js +1 -1
  105. package/dist/analyzer/symbolUtils.js.map +1 -1
  106. package/dist/analyzer/testWalker.js +5 -5
  107. package/dist/analyzer/testWalker.js.map +1 -1
  108. package/dist/analyzer/tracePrinter.d.ts +1 -1
  109. package/dist/analyzer/tracePrinter.js +35 -31
  110. package/dist/analyzer/tracePrinter.js.map +1 -1
  111. package/dist/analyzer/typeCacheUtils.js +5 -1
  112. package/dist/analyzer/typeCacheUtils.js.map +1 -1
  113. package/dist/analyzer/typeDocStringUtils.js +13 -9
  114. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  115. package/dist/analyzer/typeEvaluator.js +1272 -1176
  116. package/dist/analyzer/typeEvaluator.js.map +1 -1
  117. package/dist/analyzer/typeEvaluatorTypes.d.ts +3 -1
  118. package/dist/analyzer/typeEvaluatorTypes.js +3 -1
  119. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  120. package/dist/analyzer/typeGuards.d.ts +1 -1
  121. package/dist/analyzer/typeGuards.js +95 -67
  122. package/dist/analyzer/typeGuards.js.map +1 -1
  123. package/dist/analyzer/typePrinter.d.ts +1 -1
  124. package/dist/analyzer/typePrinter.js +80 -76
  125. package/dist/analyzer/typePrinter.js.map +1 -1
  126. package/dist/analyzer/typeStubWriter.js +26 -22
  127. package/dist/analyzer/typeStubWriter.js.map +1 -1
  128. package/dist/analyzer/typeUtils.js +163 -123
  129. package/dist/analyzer/typeUtils.js.map +1 -1
  130. package/dist/analyzer/typeVarContext.d.ts +1 -0
  131. package/dist/analyzer/typeVarContext.js +12 -9
  132. package/dist/analyzer/typeVarContext.js.map +1 -1
  133. package/dist/analyzer/typeWalker.js +10 -10
  134. package/dist/analyzer/typedDicts.js +74 -70
  135. package/dist/analyzer/typedDicts.js.map +1 -1
  136. package/dist/analyzer/types.d.ts +17 -12
  137. package/dist/analyzer/types.js +191 -181
  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 +7 -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.js +1 -1
  149. package/dist/commands/commands.js.map +1 -1
  150. package/dist/commands/dumpFileDebugInfoCommand.js +196 -196
  151. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  152. package/dist/commands/quickActionCommand.js +1 -1
  153. package/dist/commands/quickActionCommand.js.map +1 -1
  154. package/dist/common/charCodes.js +1 -1
  155. package/dist/common/charCodes.js.map +1 -1
  156. package/dist/common/chokidarFileWatcherProvider.js +5 -1
  157. package/dist/common/chokidarFileWatcherProvider.js.map +1 -1
  158. package/dist/common/collectionUtils.d.ts +3 -3
  159. package/dist/common/collectionUtils.js +3 -3
  160. package/dist/common/collectionUtils.js.map +1 -1
  161. package/dist/common/commandLineOptions.d.ts +1 -1
  162. package/dist/common/commandLineOptions.js +5 -5
  163. package/dist/common/commandLineOptions.js.map +1 -1
  164. package/dist/common/configOptions.d.ts +1 -1
  165. package/dist/common/configOptions.js +11 -7
  166. package/dist/common/configOptions.js.map +1 -1
  167. package/dist/common/console.js +7 -3
  168. package/dist/common/console.js.map +1 -1
  169. package/dist/common/core.d.ts +2 -2
  170. package/dist/common/core.js +6 -6
  171. package/dist/common/core.js.map +1 -1
  172. package/dist/common/diagnostic.js +6 -6
  173. package/dist/common/diagnostic.js.map +1 -1
  174. package/dist/common/diagnosticRules.js +1 -1
  175. package/dist/common/diagnosticRules.js.map +1 -1
  176. package/dist/common/diagnosticSink.js +12 -12
  177. package/dist/common/diagnosticSink.js.map +1 -1
  178. package/dist/common/editAction.d.ts +1 -1
  179. package/dist/common/editAction.js +2 -2
  180. package/dist/common/editAction.js.map +1 -1
  181. package/dist/common/envVarUtils.js +5 -1
  182. package/dist/common/envVarUtils.js.map +1 -1
  183. package/dist/common/extensibility.js +1 -1
  184. package/dist/common/extensibility.js.map +1 -1
  185. package/dist/common/fileBasedCancellationUtils.js +5 -1
  186. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  187. package/dist/common/fileSystem.d.ts +1 -0
  188. package/dist/common/fileSystem.js +2 -2
  189. package/dist/common/fileSystem.js.map +1 -1
  190. package/dist/common/fileWatcher.d.ts +2 -2
  191. package/dist/common/fullAccessHost.js +10 -6
  192. package/dist/common/fullAccessHost.js.map +1 -1
  193. package/dist/common/host.d.ts +1 -1
  194. package/dist/common/host.js +2 -2
  195. package/dist/common/host.js.map +1 -1
  196. package/dist/common/lspUtils.js +7 -7
  197. package/dist/common/lspUtils.js.map +1 -1
  198. package/dist/common/memUtils.d.ts +1 -1
  199. package/dist/common/pathUtils.js +12 -8
  200. package/dist/common/pathUtils.js.map +1 -1
  201. package/dist/common/pythonVersion.js +1 -1
  202. package/dist/common/pythonVersion.js.map +1 -1
  203. package/dist/common/realFileSystem.js +5 -1
  204. package/dist/common/realFileSystem.js.map +1 -1
  205. package/dist/common/serviceProvider.d.ts +1 -1
  206. package/dist/common/serviceProvider.js +5 -1
  207. package/dist/common/serviceProvider.js.map +1 -1
  208. package/dist/common/serviceProviderExtensions.js +1 -1
  209. package/dist/common/serviceProviderExtensions.js.map +1 -1
  210. package/dist/common/stringUtils.js +5 -5
  211. package/dist/common/stringUtils.js.map +1 -1
  212. package/dist/common/textEditTracker.js +11 -7
  213. package/dist/common/textEditTracker.js.map +1 -1
  214. package/dist/common/textRange.js +3 -3
  215. package/dist/common/textRange.js.map +1 -1
  216. package/dist/languageServerBase.d.ts +3 -3
  217. package/dist/languageServerBase.js +19 -19
  218. package/dist/languageServerBase.js.map +1 -1
  219. package/dist/languageService/autoImporter.d.ts +3 -3
  220. package/dist/languageService/autoImporter.js +12 -8
  221. package/dist/languageService/autoImporter.js.map +1 -1
  222. package/dist/languageService/callHierarchyProvider.js +27 -23
  223. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  224. package/dist/languageService/codeActionProvider.js +8 -8
  225. package/dist/languageService/codeActionProvider.js.map +1 -1
  226. package/dist/languageService/completionProvider.js +171 -173
  227. package/dist/languageService/completionProvider.js.map +1 -1
  228. package/dist/languageService/completionProviderUtils.js +9 -9
  229. package/dist/languageService/completionProviderUtils.js.map +1 -1
  230. package/dist/languageService/definitionProvider.js +14 -10
  231. package/dist/languageService/definitionProvider.js.map +1 -1
  232. package/dist/languageService/documentHighlightProvider.js +7 -3
  233. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  234. package/dist/languageService/documentSymbolCollector.d.ts +1 -1
  235. package/dist/languageService/documentSymbolCollector.js +21 -17
  236. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  237. package/dist/languageService/hoverProvider.js +30 -26
  238. package/dist/languageService/hoverProvider.js.map +1 -1
  239. package/dist/languageService/importSorter.js +1 -1
  240. package/dist/languageService/importSorter.js.map +1 -1
  241. package/dist/languageService/quickActions.js +10 -6
  242. package/dist/languageService/quickActions.js.map +1 -1
  243. package/dist/languageService/referencesProvider.d.ts +1 -1
  244. package/dist/languageService/referencesProvider.js +24 -20
  245. package/dist/languageService/referencesProvider.js.map +1 -1
  246. package/dist/languageService/signatureHelpProvider.js +8 -4
  247. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  248. package/dist/languageService/symbolIndexer.js +8 -4
  249. package/dist/languageService/symbolIndexer.js.map +1 -1
  250. package/dist/languageService/tooltipUtils.js +20 -16
  251. package/dist/languageService/tooltipUtils.js.map +1 -1
  252. package/dist/languageService/workspaceSymbolProvider.js +5 -1
  253. package/dist/languageService/workspaceSymbolProvider.js.map +1 -1
  254. package/dist/localization/localize.d.ts +10 -12
  255. package/dist/localization/localize.js +8 -5
  256. package/dist/localization/localize.js.map +1 -1
  257. package/dist/localization/package.nls.cs.json +5 -8
  258. package/dist/localization/package.nls.de.json +5 -8
  259. package/dist/localization/package.nls.en-us.json +12 -9
  260. package/dist/localization/package.nls.es.json +5 -8
  261. package/dist/localization/package.nls.fr.json +5 -8
  262. package/dist/localization/package.nls.it.json +5 -8
  263. package/dist/localization/package.nls.ja.json +5 -8
  264. package/dist/localization/package.nls.ko.json +5 -8
  265. package/dist/localization/package.nls.pl.json +5 -8
  266. package/dist/localization/package.nls.pt-br.json +5 -8
  267. package/dist/localization/package.nls.qps-ploc.json +2 -5
  268. package/dist/localization/package.nls.ru.json +5 -8
  269. package/dist/localization/package.nls.tr.json +5 -8
  270. package/dist/localization/package.nls.zh-cn.json +5 -8
  271. package/dist/localization/package.nls.zh-tw.json +5 -8
  272. package/dist/parser/characterStream.js +3 -3
  273. package/dist/parser/characterStream.js.map +1 -1
  274. package/dist/parser/characters.js +13 -9
  275. package/dist/parser/characters.js.map +1 -1
  276. package/dist/parser/parseNodes.d.ts +12 -12
  277. package/dist/parser/parseNodes.js +193 -193
  278. package/dist/parser/parseNodes.js.map +1 -1
  279. package/dist/parser/parser.js +563 -559
  280. package/dist/parser/parser.js.map +1 -1
  281. package/dist/parser/stringTokenUtils.js +47 -47
  282. package/dist/parser/stringTokenUtils.js.map +1 -1
  283. package/dist/parser/tokenizer.js +288 -288
  284. package/dist/parser/tokenizer.js.map +1 -1
  285. package/dist/parser/tokenizerTypes.js +35 -35
  286. package/dist/parser/tokenizerTypes.js.map +1 -1
  287. package/dist/parser/unicode.d.ts +3 -3
  288. package/dist/pyright.js +38 -18
  289. package/dist/pyright.js.map +1 -1
  290. package/dist/pyrightFileSystem.d.ts +1 -0
  291. package/dist/pyrightFileSystem.js +1 -1
  292. package/dist/pyrightFileSystem.js.map +1 -1
  293. package/dist/readonlyAugmentedFileSystem.d.ts +1 -0
  294. package/dist/tests/chainedSourceFiles.test.js +5 -1
  295. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  296. package/dist/tests/checker.test.js +5 -1
  297. package/dist/tests/checker.test.js.map +1 -1
  298. package/dist/tests/collectionUtils.test.js +5 -1
  299. package/dist/tests/collectionUtils.test.js.map +1 -1
  300. package/dist/tests/common.test.js +5 -1
  301. package/dist/tests/common.test.js.map +1 -1
  302. package/dist/tests/config.test.js +7 -5
  303. package/dist/tests/config.test.js.map +1 -1
  304. package/dist/tests/debug.test.js +8 -4
  305. package/dist/tests/debug.test.js.map +1 -1
  306. package/dist/tests/deferred.test.js +5 -1
  307. package/dist/tests/deferred.test.js.map +1 -1
  308. package/dist/tests/diagnosticOverrides.test.js +5 -1
  309. package/dist/tests/diagnosticOverrides.test.js.map +1 -1
  310. package/dist/tests/docStringConversion.test.js +0 -22
  311. package/dist/tests/docStringConversion.test.js.map +1 -1
  312. package/dist/tests/docStringUtils.test.js +5 -1
  313. package/dist/tests/docStringUtils.test.js.map +1 -1
  314. package/dist/tests/filesystem.test.js +5 -1
  315. package/dist/tests/filesystem.test.js.map +1 -1
  316. package/dist/tests/fourSlashParser.test.js +5 -1
  317. package/dist/tests/fourSlashParser.test.js.map +1 -1
  318. package/dist/tests/fourSlashRunner.test.js +5 -1
  319. package/dist/tests/fourSlashRunner.test.js.map +1 -1
  320. package/dist/tests/fourslash/completions.params.fourslash.js +11 -0
  321. package/dist/tests/fourslash/completions.params.fourslash.js.map +1 -1
  322. package/dist/tests/fourslash/hover.docstring.split.fourslash.js +10 -0
  323. package/dist/tests/fourslash/hover.docstring.split.fourslash.js.map +1 -1
  324. package/dist/tests/harness/fourslash/fourSlashParser.js +13 -13
  325. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  326. package/dist/tests/harness/fourslash/fourSlashTypes.js +11 -7
  327. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  328. package/dist/tests/harness/fourslash/runner.d.ts +1 -1
  329. package/dist/tests/harness/fourslash/runner.js +5 -1
  330. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  331. package/dist/tests/harness/fourslash/testLanguageService.js +5 -1
  332. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  333. package/dist/tests/harness/fourslash/testState.Consts.js +6 -2
  334. package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
  335. package/dist/tests/harness/fourslash/testState.js +17 -13
  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/sourceFile.test.js +5 -1
  367. package/dist/tests/sourceFile.test.js.map +1 -1
  368. package/dist/tests/sourceMapperUtils.test.js +5 -1
  369. package/dist/tests/sourceMapperUtils.test.js.map +1 -1
  370. package/dist/tests/stringUtils.test.js +10 -6
  371. package/dist/tests/stringUtils.test.js.map +1 -1
  372. package/dist/tests/symbolNameUtils.test.js +5 -1
  373. package/dist/tests/symbolNameUtils.test.js.map +1 -1
  374. package/dist/tests/testState.test.js +5 -1
  375. package/dist/tests/testState.test.js.map +1 -1
  376. package/dist/tests/testUtils.js +11 -7
  377. package/dist/tests/testUtils.js.map +1 -1
  378. package/dist/tests/textRange.test.js +5 -1
  379. package/dist/tests/textRange.test.js.map +1 -1
  380. package/dist/tests/tokenizer.test.js +463 -459
  381. package/dist/tests/tokenizer.test.js.map +1 -1
  382. package/dist/tests/typeEvaluator1.test.js +18 -2
  383. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  384. package/dist/tests/typeEvaluator2.test.js +19 -3
  385. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  386. package/dist/tests/typeEvaluator3.test.js +11 -3
  387. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  388. package/dist/tests/typeEvaluator4.test.js +11 -3
  389. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  390. package/dist/tests/typeEvaluator5.test.js +5 -1
  391. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  392. package/dist/tests/typePrinter.test.js +44 -40
  393. package/dist/tests/typePrinter.test.js.map +1 -1
  394. package/dist/tests/workspaceEditUtils.test.js +5 -1
  395. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  396. package/dist/tests/zipfs.test.js +5 -1
  397. package/dist/tests/zipfs.test.js.map +1 -1
  398. package/dist/workspaceFactory.js +2 -2
  399. package/dist/workspaceFactory.js.map +1 -1
  400. package/package.json +2 -2
@@ -42,6 +42,7 @@ export declare const enum EvaluatorFlags {
42
42
  AllowUnpackedTypedDict = 8388608,
43
43
  DisallowPep695TypeAlias = 16777216,
44
44
  SkipConvertParamSpecToRuntimeObject = 33554432,
45
+ DisallowNonTypeSpecialForms = 67108864,
45
46
  CallBaseDefaults = 16777218,
46
47
  IndexBaseDefaults = 2,
47
48
  MemberAccessBaseDefaults = 16777218
@@ -113,7 +114,7 @@ export interface FunctionArgumentWithType extends FunctionArgumentBase {
113
114
  export interface FunctionArgumentWithExpression extends FunctionArgumentBase {
114
115
  valueExpression: ExpressionNode;
115
116
  }
116
- export declare type FunctionArgument = FunctionArgumentWithType | FunctionArgumentWithExpression;
117
+ export type FunctionArgument = FunctionArgumentWithType | FunctionArgumentWithExpression;
117
118
  export interface EffectiveTypeResult {
118
119
  type: Type;
119
120
  isIncomplete: boolean;
@@ -155,6 +156,7 @@ export interface ExpectedTypeOptions {
155
156
  allowForwardReference?: boolean;
156
157
  allowTypeVarsWithoutScopeId?: boolean;
157
158
  enforceTypeAnnotationRules?: boolean;
159
+ disallowProtocolAndTypedDict?: boolean;
158
160
  }
159
161
  export interface ExpectedTypeResult {
160
162
  type: Type;
@@ -81,11 +81,13 @@ var EvaluatorFlags;
81
81
  // If evaluation is a TypeVarType that is a ParamSpec, do
82
82
  // not convert it to its corresponding ParamSpec runtime object.
83
83
  EvaluatorFlags[EvaluatorFlags["SkipConvertParamSpecToRuntimeObject"] = 33554432] = "SkipConvertParamSpecToRuntimeObject";
84
+ // Protocol and TypedDict are not allowed in this context.
85
+ EvaluatorFlags[EvaluatorFlags["DisallowNonTypeSpecialForms"] = 67108864] = "DisallowNonTypeSpecialForms";
84
86
  // Defaults used for evaluating the LHS of a call expression.
85
87
  EvaluatorFlags[EvaluatorFlags["CallBaseDefaults"] = 16777218] = "CallBaseDefaults";
86
88
  // Defaults used for evaluating the LHS of a member access expression.
87
89
  EvaluatorFlags[EvaluatorFlags["IndexBaseDefaults"] = 2] = "IndexBaseDefaults";
88
90
  // Defaults used for evaluating the LHS of a member access expression.
89
91
  EvaluatorFlags[EvaluatorFlags["MemberAccessBaseDefaults"] = 16777218] = "MemberAccessBaseDefaults";
90
- })(EvaluatorFlags = exports.EvaluatorFlags || (exports.EvaluatorFlags = {}));
92
+ })(EvaluatorFlags || (exports.EvaluatorFlags = EvaluatorFlags = {}));
91
93
  //# sourceMappingURL=typeEvaluatorTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA8CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,cAsGjB;AAtGD,WAAkB,cAAc;IAC5B,mDAAQ,CAAA;IAER,uDAAuD;IACvD,mFAA6B,CAAA;IAE7B,0DAA0D;IAC1D,gEAAgE;IAChE,SAAS;IACT,yEAAwB,CAAA;IAExB,yDAAyD;IACzD,uFAA+B,CAAA;IAE/B,kCAAkC;IAClC,iGAAoC,CAAA;IAEpC,0CAA0C;IAC1C,sEAAsB,CAAA;IAEtB,6CAA6C;IAC7C,8EAA0B,CAAA;IAE1B,gDAAgD;IAChD,oFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,4BAA4B;IAC5B,+FAAkC,CAAA;IAElC,gEAAgE;IAChE,6DAA6D;IAC7D,qBAAqB;IACrB,2FAAgC,CAAA;IAEhC,qEAAqE;IACrE,qFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,gDAAgD;IAChD,wFAA+B,CAAA;IAE/B,8DAA8D;IAC9D,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,oEAAoE;IACpE,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,gHAA2C,CAAA;IAE3C,yDAAyD;IACzD,6DAA6D;IAC7D,uDAAuD;IACvD,iHAA2C,CAAA;IAE3C,mDAAmD;IACnD,2FAAgC,CAAA;IAEhC,6CAA6C;IAC7C,gFAA0B,CAAA;IAE1B,mEAAmE;IACnE,wFAA8B,CAAA;IAE9B,iEAAiE;IACjE,iCAAiC;IACjC,4FAAgC,CAAA;IAEhC,wDAAwD;IACxD,2EAAuB,CAAA;IAEvB,uDAAuD;IACvD,iHAA0C,CAAA;IAE1C,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6GAAwC,CAAA;IAExC,yCAAyC;IACzC,6FAAgC,CAAA;IAEhC,yDAAyD;IACzD,gGAAiC,CAAA;IAEjC,yDAAyD;IACzD,gEAAgE;IAChE,wHAA6C,CAAA;IAE7C,6DAA6D;IAC7D,kFAA4D,CAAA;IAE5D,sEAAsE;IACtE,6EAAmC,CAAA;IAEnC,sEAAsE;IACtE,kGAAoE,CAAA;AACxE,CAAC,EAtGiB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAsG/B"}
1
+ {"version":3,"file":"typeEvaluatorTypes.js","sourceRoot":"","sources":["../../../src/analyzer/typeEvaluatorTypes.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA8CH,gEAAgE;AAChE,kDAAkD;AACrC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAE7C,IAAkB,cAyGjB;AAzGD,WAAkB,cAAc;IAC5B,mDAAQ,CAAA;IAER,uDAAuD;IACvD,mFAA6B,CAAA;IAE7B,0DAA0D;IAC1D,gEAAgE;IAChE,SAAS;IACT,yEAAwB,CAAA;IAExB,yDAAyD;IACzD,uFAA+B,CAAA;IAE/B,kCAAkC;IAClC,iGAAoC,CAAA;IAEpC,0CAA0C;IAC1C,sEAAsB,CAAA;IAEtB,6CAA6C;IAC7C,8EAA0B,CAAA;IAE1B,gDAAgD;IAChD,oFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,4BAA4B;IAC5B,+FAAkC,CAAA;IAElC,gEAAgE;IAChE,6DAA6D;IAC7D,qBAAqB;IACrB,2FAAgC,CAAA;IAEhC,qEAAqE;IACrE,qFAA6B,CAAA;IAE7B,2DAA2D;IAC3D,gDAAgD;IAChD,wFAA+B,CAAA;IAE/B,8DAA8D;IAC9D,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,oEAAoE;IACpE,0BAA0B;IAC1B,oGAAqC,CAAA;IAErC,yDAAyD;IACzD,2DAA2D;IAC3D,mCAAmC;IACnC,gHAA2C,CAAA;IAE3C,yDAAyD;IACzD,6DAA6D;IAC7D,uDAAuD;IACvD,iHAA2C,CAAA;IAE3C,mDAAmD;IACnD,2FAAgC,CAAA;IAEhC,6CAA6C;IAC7C,gFAA0B,CAAA;IAE1B,mEAAmE;IACnE,wFAA8B,CAAA;IAE9B,iEAAiE;IACjE,iCAAiC;IACjC,4FAAgC,CAAA;IAEhC,wDAAwD;IACxD,2EAAuB,CAAA;IAEvB,uDAAuD;IACvD,iHAA0C,CAAA;IAE1C,6DAA6D;IAC7D,2DAA2D;IAC3D,oDAAoD;IACpD,6GAAwC,CAAA;IAExC,yCAAyC;IACzC,6FAAgC,CAAA;IAEhC,yDAAyD;IACzD,gGAAiC,CAAA;IAEjC,yDAAyD;IACzD,gEAAgE;IAChE,wHAA6C,CAAA;IAE7C,0DAA0D;IAC1D,wGAAqC,CAAA;IAErC,6DAA6D;IAC7D,kFAA4D,CAAA;IAE5D,sEAAsE;IACtE,6EAAmC,CAAA;IAEnC,sEAAsE;IACtE,kGAAoE,CAAA;AACxE,CAAC,EAzGiB,cAAc,8BAAd,cAAc,QAyG/B"}
@@ -5,7 +5,7 @@ export interface TypeNarrowingResult {
5
5
  type: Type;
6
6
  isIncomplete: boolean;
7
7
  }
8
- export declare type TypeNarrowingCallback = (type: Type) => TypeNarrowingResult | undefined;
8
+ export type TypeNarrowingCallback = (type: Type) => TypeNarrowingResult | undefined;
9
9
  export declare function getTypeNarrowingCallback(evaluator: TypeEvaluator, reference: ExpressionNode, testExpression: ExpressionNode, isPositiveTest: boolean, recursionCount?: number): TypeNarrowingCallback | undefined;
10
10
  export declare function isIsinstanceFilterSuperclass(evaluator: TypeEvaluator, varType: Type, concreteVarType: ClassType, filterType: Type, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
11
11
  export declare function isIsinstanceFilterSubclass(evaluator: TypeEvaluator, varType: ClassType, concreteFilterType: ClassType, isInstanceCheck: boolean): boolean;
@@ -11,7 +11,11 @@
11
11
  */
12
12
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
13
  if (k2 === undefined) k2 = k;
14
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
15
19
  }) : (function(o, m, k, k2) {
16
20
  if (k2 === undefined) k2 = k;
17
21
  o[k2] = m[k];
@@ -50,25 +54,25 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
50
54
  return undefined;
51
55
  }
52
56
  recursionCount++;
53
- if (testExpression.nodeType === 4 /* AssignmentExpression */) {
57
+ if (testExpression.nodeType === 4 /* ParseNodeType.AssignmentExpression */) {
54
58
  return getTypeNarrowingCallbackForAssignmentExpression(evaluator, reference, testExpression, isPositiveTest, recursionCount);
55
59
  }
56
- if (testExpression.nodeType === 7 /* BinaryOperation */) {
57
- const isOrIsNotOperator = testExpression.operator === 39 /* Is */ || testExpression.operator === 40 /* IsNot */;
58
- const equalsOrNotEqualsOperator = testExpression.operator === 12 /* Equals */ || testExpression.operator === 28 /* NotEquals */;
60
+ if (testExpression.nodeType === 7 /* ParseNodeType.BinaryOperation */) {
61
+ const isOrIsNotOperator = testExpression.operator === 39 /* OperatorType.Is */ || testExpression.operator === 40 /* OperatorType.IsNot */;
62
+ const equalsOrNotEqualsOperator = testExpression.operator === 12 /* OperatorType.Equals */ || testExpression.operator === 28 /* OperatorType.NotEquals */;
59
63
  if (isOrIsNotOperator || equalsOrNotEqualsOperator) {
60
64
  // Invert the "isPositiveTest" value if this is an "is not" operation.
61
- const adjIsPositiveTest = testExpression.operator === 39 /* Is */ || testExpression.operator === 12 /* Equals */
65
+ const adjIsPositiveTest = testExpression.operator === 39 /* OperatorType.Is */ || testExpression.operator === 12 /* OperatorType.Equals */
62
66
  ? isPositiveTest
63
67
  : !isPositiveTest;
64
68
  // Look for "X is None", "X is not None", "X == None", and "X != None".
65
69
  // These are commonly-used patterns used in control flow.
66
- if (testExpression.rightExpression.nodeType === 11 /* Constant */ &&
67
- testExpression.rightExpression.constType === 26 /* None */) {
70
+ if (testExpression.rightExpression.nodeType === 11 /* ParseNodeType.Constant */ &&
71
+ testExpression.rightExpression.constType === 26 /* KeywordType.None */) {
68
72
  // Allow the LHS to be either a simple expression or an assignment
69
73
  // expression that assigns to a simple name.
70
74
  let leftExpression = testExpression.leftExpression;
71
- if (leftExpression.nodeType === 4 /* AssignmentExpression */) {
75
+ if (leftExpression.nodeType === 4 /* ParseNodeType.AssignmentExpression */) {
72
76
  leftExpression = leftExpression.name;
73
77
  }
74
78
  if (ParseTreeUtils.isMatchingExpression(reference, leftExpression)) {
@@ -76,13 +80,13 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
76
80
  return { type: narrowTypeForIsNone(evaluator, type, adjIsPositiveTest), isIncomplete: false };
77
81
  };
78
82
  }
79
- if (leftExpression.nodeType === 24 /* Index */ &&
83
+ if (leftExpression.nodeType === 24 /* ParseNodeType.Index */ &&
80
84
  ParseTreeUtils.isMatchingExpression(reference, leftExpression.baseExpression) &&
81
85
  leftExpression.items.length === 1 &&
82
86
  !leftExpression.trailingComma &&
83
- leftExpression.items[0].argumentCategory === 0 /* Simple */ &&
87
+ leftExpression.items[0].argumentCategory === 0 /* ArgumentCategory.Simple */ &&
84
88
  !leftExpression.items[0].name &&
85
- leftExpression.items[0].valueExpression.nodeType === 40 /* Number */ &&
89
+ leftExpression.items[0].valueExpression.nodeType === 40 /* ParseNodeType.Number */ &&
86
90
  leftExpression.items[0].valueExpression.isInteger &&
87
91
  !leftExpression.items[0].valueExpression.isImaginary) {
88
92
  const indexValue = leftExpression.items[0].valueExpression.value;
@@ -97,11 +101,11 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
97
101
  }
98
102
  }
99
103
  // Look for "X is ...", "X is not ...", "X == ...", and "X != ...".
100
- if (testExpression.rightExpression.nodeType === 18 /* Ellipsis */) {
104
+ if (testExpression.rightExpression.nodeType === 18 /* ParseNodeType.Ellipsis */) {
101
105
  // Allow the LHS to be either a simple expression or an assignment
102
106
  // expression that assigns to a simple name.
103
107
  let leftExpression = testExpression.leftExpression;
104
- if (leftExpression.nodeType === 4 /* AssignmentExpression */) {
108
+ if (leftExpression.nodeType === 4 /* ParseNodeType.AssignmentExpression */) {
105
109
  leftExpression = leftExpression.name;
106
110
  }
107
111
  if (ParseTreeUtils.isMatchingExpression(reference, leftExpression)) {
@@ -114,12 +118,12 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
114
118
  }
115
119
  }
116
120
  // Look for "type(X) is Y", "type(X) is not Y", "type(X) == Y" or "type(X) != Y".
117
- if (testExpression.leftExpression.nodeType === 9 /* Call */) {
121
+ if (testExpression.leftExpression.nodeType === 9 /* ParseNodeType.Call */) {
118
122
  if (testExpression.leftExpression.arguments.length === 1 &&
119
- testExpression.leftExpression.arguments[0].argumentCategory === 0 /* Simple */) {
123
+ testExpression.leftExpression.arguments[0].argumentCategory === 0 /* ArgumentCategory.Simple */) {
120
124
  const arg0Expr = testExpression.leftExpression.arguments[0].valueExpression;
121
125
  if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
122
- const callType = evaluator.getTypeOfExpression(testExpression.leftExpression.leftExpression, 16777218 /* CallBaseDefaults */).type;
126
+ const callType = evaluator.getTypeOfExpression(testExpression.leftExpression.leftExpression, 16777218 /* EvaluatorFlags.CallBaseDefaults */).type;
123
127
  if ((0, types_1.isInstantiableClass)(callType) && types_1.ClassType.isBuiltIn(callType, 'type')) {
124
128
  const classTypeResult = evaluator.getTypeOfExpression(testExpression.rightExpression);
125
129
  const classType = evaluator.makeTopLevelTypeVarsConcrete(classTypeResult.type);
@@ -162,10 +166,10 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
162
166
  }
163
167
  }
164
168
  // Look for X[<literal>] is <literal> or X[<literal>] is not <literal>.
165
- if (testExpression.leftExpression.nodeType === 24 /* Index */ &&
169
+ if (testExpression.leftExpression.nodeType === 24 /* ParseNodeType.Index */ &&
166
170
  testExpression.leftExpression.items.length === 1 &&
167
171
  !testExpression.leftExpression.trailingComma &&
168
- testExpression.leftExpression.items[0].argumentCategory === 0 /* Simple */ &&
172
+ testExpression.leftExpression.items[0].argumentCategory === 0 /* ArgumentCategory.Simple */ &&
169
173
  ParseTreeUtils.isMatchingExpression(reference, testExpression.leftExpression.baseExpression)) {
170
174
  const indexTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression.items[0].valueExpression);
171
175
  const indexType = indexTypeResult.type;
@@ -208,7 +212,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
208
212
  }
209
213
  if (equalsOrNotEqualsOperator) {
210
214
  // Look for X == <literal> or X != <literal>
211
- const adjIsPositiveTest = testExpression.operator === 12 /* Equals */ ? isPositiveTest : !isPositiveTest;
215
+ const adjIsPositiveTest = testExpression.operator === 12 /* OperatorType.Equals */ ? isPositiveTest : !isPositiveTest;
212
216
  if (ParseTreeUtils.isMatchingExpression(reference, testExpression.leftExpression)) {
213
217
  const rightTypeResult = evaluator.getTypeOfExpression(testExpression.rightExpression);
214
218
  const rightType = rightTypeResult.type;
@@ -223,10 +227,10 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
223
227
  }
224
228
  }
225
229
  // Look for X[<literal>] == <literal> or X[<literal>] != <literal>
226
- if (testExpression.leftExpression.nodeType === 24 /* Index */ &&
230
+ if (testExpression.leftExpression.nodeType === 24 /* ParseNodeType.Index */ &&
227
231
  testExpression.leftExpression.items.length === 1 &&
228
232
  !testExpression.leftExpression.trailingComma &&
229
- testExpression.leftExpression.items[0].argumentCategory === 0 /* Simple */ &&
233
+ testExpression.leftExpression.items[0].argumentCategory === 0 /* ArgumentCategory.Simple */ &&
230
234
  ParseTreeUtils.isMatchingExpression(reference, testExpression.leftExpression.baseExpression)) {
231
235
  const indexTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression.items[0].valueExpression);
232
236
  const indexType = indexTypeResult.type;
@@ -255,11 +259,11 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
255
259
  }
256
260
  // Look for len(x) == <literal> or len(x) != <literal>
257
261
  if (equalsOrNotEqualsOperator &&
258
- testExpression.leftExpression.nodeType === 9 /* Call */ &&
262
+ testExpression.leftExpression.nodeType === 9 /* ParseNodeType.Call */ &&
259
263
  testExpression.leftExpression.arguments.length === 1) {
260
264
  const arg0Expr = testExpression.leftExpression.arguments[0].valueExpression;
261
265
  if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
262
- const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression.leftExpression, 16777218 /* CallBaseDefaults */);
266
+ const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression.leftExpression, 16777218 /* EvaluatorFlags.CallBaseDefaults */);
263
267
  const callType = callTypeResult.type;
264
268
  if ((0, types_1.isFunction)(callType) && callType.details.fullName === 'builtins.len') {
265
269
  const rightTypeResult = evaluator.getTypeOfExpression(testExpression.rightExpression);
@@ -280,7 +284,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
280
284
  }
281
285
  // Look for X.Y == <literal> or X.Y != <literal>
282
286
  if (equalsOrNotEqualsOperator &&
283
- testExpression.leftExpression.nodeType === 35 /* MemberAccess */ &&
287
+ testExpression.leftExpression.nodeType === 35 /* ParseNodeType.MemberAccess */ &&
284
288
  ParseTreeUtils.isMatchingExpression(reference, testExpression.leftExpression.leftExpression)) {
285
289
  const rightTypeResult = evaluator.getTypeOfExpression(testExpression.rightExpression);
286
290
  const rightType = rightTypeResult.type;
@@ -296,7 +300,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
296
300
  }
297
301
  // Look for X.Y is <literal> or X.Y is not <literal> where <literal> is
298
302
  // an enum or bool literal
299
- if (testExpression.leftExpression.nodeType === 35 /* MemberAccess */ &&
303
+ if (testExpression.leftExpression.nodeType === 35 /* ParseNodeType.MemberAccess */ &&
300
304
  ParseTreeUtils.isMatchingExpression(reference, testExpression.leftExpression.leftExpression)) {
301
305
  const rightTypeResult = evaluator.getTypeOfExpression(testExpression.rightExpression);
302
306
  const rightType = rightTypeResult.type;
@@ -314,10 +318,10 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
314
318
  }
315
319
  // Look for X.Y is None or X.Y is not None
316
320
  // These are commonly-used patterns used in control flow.
317
- if (testExpression.leftExpression.nodeType === 35 /* MemberAccess */ &&
321
+ if (testExpression.leftExpression.nodeType === 35 /* ParseNodeType.MemberAccess */ &&
318
322
  ParseTreeUtils.isMatchingExpression(reference, testExpression.leftExpression.leftExpression) &&
319
- testExpression.rightExpression.nodeType === 11 /* Constant */ &&
320
- testExpression.rightExpression.constType === 26 /* None */) {
323
+ testExpression.rightExpression.nodeType === 11 /* ParseNodeType.Constant */ &&
324
+ testExpression.rightExpression.constType === 26 /* KeywordType.None */) {
321
325
  const memberName = testExpression.leftExpression.memberName;
322
326
  return (type) => {
323
327
  return {
@@ -327,12 +331,12 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
327
331
  };
328
332
  }
329
333
  }
330
- if (testExpression.operator === 41 /* In */ || testExpression.operator === 42 /* NotIn */) {
334
+ if (testExpression.operator === 41 /* OperatorType.In */ || testExpression.operator === 42 /* OperatorType.NotIn */) {
331
335
  // Look for "x in y" or "x not in y" where y is one of several built-in types.
332
336
  if (ParseTreeUtils.isMatchingExpression(reference, testExpression.leftExpression)) {
333
337
  const rightTypeResult = evaluator.getTypeOfExpression(testExpression.rightExpression);
334
338
  const rightType = rightTypeResult.type;
335
- const adjIsPositiveTest = testExpression.operator === 41 /* In */ ? isPositiveTest : !isPositiveTest;
339
+ const adjIsPositiveTest = testExpression.operator === 41 /* OperatorType.In */ ? isPositiveTest : !isPositiveTest;
336
340
  return (type) => {
337
341
  return {
338
342
  type: narrowTypeForContainerType(evaluator, type, rightType, adjIsPositiveTest),
@@ -346,7 +350,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
346
350
  const leftTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression);
347
351
  const leftType = leftTypeResult.type;
348
352
  if ((0, types_1.isClassInstance)(leftType) && types_1.ClassType.isBuiltIn(leftType, 'str') && (0, typeUtils_1.isLiteralType)(leftType)) {
349
- const adjIsPositiveTest = testExpression.operator === 41 /* In */ ? isPositiveTest : !isPositiveTest;
353
+ const adjIsPositiveTest = testExpression.operator === 41 /* OperatorType.In */ ? isPositiveTest : !isPositiveTest;
350
354
  return (type) => {
351
355
  return {
352
356
  type: narrowTypeForTypedDictKey(evaluator, type, types_1.ClassType.cloneAsInstantiable(leftType), adjIsPositiveTest),
@@ -357,7 +361,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
357
361
  }
358
362
  }
359
363
  }
360
- if (testExpression.nodeType === 9 /* Call */) {
364
+ if (testExpression.nodeType === 9 /* ParseNodeType.Call */) {
361
365
  // Look for "isinstance(X, Y)" or "issubclass(X, Y)".
362
366
  if (testExpression.arguments.length === 2) {
363
367
  // Make sure the first parameter is a supported expression type
@@ -366,15 +370,15 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
366
370
  const arg0Expr = testExpression.arguments[0].valueExpression;
367
371
  const arg1Expr = testExpression.arguments[1].valueExpression;
368
372
  if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
369
- const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* CallBaseDefaults */);
373
+ const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* EvaluatorFlags.CallBaseDefaults */);
370
374
  const callType = callTypeResult.type;
371
375
  if ((0, types_1.isFunction)(callType) &&
372
376
  (callType.details.builtInName === 'isinstance' || callType.details.builtInName === 'issubclass')) {
373
377
  const isInstanceCheck = callType.details.builtInName === 'isinstance';
374
- const arg1TypeResult = evaluator.getTypeOfExpression(arg1Expr, 512 /* AllowMissingTypeArgs */ |
375
- 8 /* EvaluateStringLiteralAsType */ |
376
- 32 /* DisallowParamSpec */ |
377
- 64 /* DisallowTypeVarTuple */);
378
+ const arg1TypeResult = evaluator.getTypeOfExpression(arg1Expr, 512 /* EvaluatorFlags.AllowMissingTypeArgs */ |
379
+ 8 /* EvaluatorFlags.EvaluateStringLiteralAsType */ |
380
+ 32 /* EvaluatorFlags.DisallowParamSpec */ |
381
+ 64 /* EvaluatorFlags.DisallowTypeVarTuple */);
378
382
  const arg1Type = arg1TypeResult.type;
379
383
  const classTypeList = getIsInstanceClassTypes(arg1Type);
380
384
  const isIncomplete = !!callTypeResult.isIncomplete || !!arg1TypeResult.isIncomplete;
@@ -413,7 +417,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
413
417
  if (testExpression.arguments.length === 1) {
414
418
  const arg0Expr = testExpression.arguments[0].valueExpression;
415
419
  if (ParseTreeUtils.isMatchingExpression(reference, arg0Expr)) {
416
- const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* CallBaseDefaults */);
420
+ const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* EvaluatorFlags.CallBaseDefaults */);
417
421
  const callType = callTypeResult.type;
418
422
  if ((0, types_1.isFunction)(callType) && callType.details.builtInName === 'callable') {
419
423
  return (type) => {
@@ -432,7 +436,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
432
436
  // Look for "bool(X)"
433
437
  if (testExpression.arguments.length === 1 && !testExpression.arguments[0].name) {
434
438
  if (ParseTreeUtils.isMatchingExpression(reference, testExpression.arguments[0].valueExpression)) {
435
- const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* CallBaseDefaults */);
439
+ const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* EvaluatorFlags.CallBaseDefaults */);
436
440
  const callType = callTypeResult.type;
437
441
  if ((0, types_1.isInstantiableClass)(callType) && types_1.ClassType.isBuiltIn(callType, 'bool')) {
438
442
  return (type) => {
@@ -455,7 +459,7 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
455
459
  (0, types_1.isClassInstance)(type.details.declaredReturnType) &&
456
460
  types_1.ClassType.isBuiltIn(type.details.declaredReturnType, 'TypeGuard'));
457
461
  };
458
- const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* CallBaseDefaults */);
462
+ const callTypeResult = evaluator.getTypeOfExpression(testExpression.leftExpression, 16777218 /* EvaluatorFlags.CallBaseDefaults */);
459
463
  const callType = callTypeResult.type;
460
464
  if ((0, types_1.isFunction)(callType) && isFunctionReturnTypeGuard(callType)) {
461
465
  isPossiblyTypeGuard = true;
@@ -505,8 +509,8 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
505
509
  // We normally won't find a "not" operator here because they are stripped out
506
510
  // by the binder when it creates condition flow nodes, but we can find this
507
511
  // in the case of local variables type narrowing.
508
- if (reference.nodeType === 38 /* Name */) {
509
- if (testExpression.nodeType === 55 /* UnaryOperation */ && testExpression.operator === 38 /* Not */) {
512
+ if (reference.nodeType === 38 /* ParseNodeType.Name */) {
513
+ if (testExpression.nodeType === 55 /* ParseNodeType.UnaryOperation */ && testExpression.operator === 38 /* OperatorType.Not */) {
510
514
  return getTypeNarrowingCallback(evaluator, reference, testExpression.expression, !isPositiveTest, recursionCount);
511
515
  }
512
516
  }
@@ -514,8 +518,8 @@ function getTypeNarrowingCallback(evaluator, reference, testExpression, isPositi
514
518
  }
515
519
  exports.getTypeNarrowingCallback = getTypeNarrowingCallback;
516
520
  function getTypeNarrowingCallbackForAliasedCondition(evaluator, reference, testExpression, isPositiveTest, recursionCount) {
517
- if (testExpression.nodeType !== 38 /* Name */ ||
518
- reference.nodeType !== 38 /* Name */ ||
521
+ if (testExpression.nodeType !== 38 /* ParseNodeType.Name */ ||
522
+ reference.nodeType !== 38 /* ParseNodeType.Name */ ||
519
523
  testExpression === reference) {
520
524
  return undefined;
521
525
  }
@@ -524,7 +528,7 @@ function getTypeNarrowingCallbackForAliasedCondition(evaluator, reference, testE
524
528
  // we need to validate that it is not modified between the test expression
525
529
  // evaluation and the conditional check.
526
530
  const testExprDecl = getDeclsForLocalVar(evaluator, testExpression, testExpression);
527
- if (!testExprDecl || testExprDecl.length !== 1 || testExprDecl[0].type !== 1 /* Variable */) {
531
+ if (!testExprDecl || testExprDecl.length !== 1 || testExprDecl[0].type !== 1 /* DeclarationType.Variable */) {
528
532
  return undefined;
529
533
  }
530
534
  const referenceDecls = getDeclsForLocalVar(evaluator, reference, testExpression);
@@ -565,7 +569,7 @@ function getTypeNarrowingCallbackForAliasedCondition(evaluator, reference, testE
565
569
  // the current scope.
566
570
  function getDeclsForLocalVar(evaluator, name, reachableFrom) {
567
571
  const scope = (0, scopeUtils_1.getScopeForNode)(name);
568
- if ((scope === null || scope === void 0 ? void 0 : scope.type) !== 1 /* Function */ && (scope === null || scope === void 0 ? void 0 : scope.type) !== 3 /* Module */) {
572
+ if ((scope === null || scope === void 0 ? void 0 : scope.type) !== 1 /* ScopeType.Function */ && (scope === null || scope === void 0 ? void 0 : scope.type) !== 3 /* ScopeType.Module */) {
569
573
  return undefined;
570
574
  }
571
575
  const symbol = scope.lookUpSymbol(name.value);
@@ -574,14 +578,14 @@ function getDeclsForLocalVar(evaluator, name, reachableFrom) {
574
578
  }
575
579
  const decls = symbol.getDeclarations();
576
580
  if (decls.length === 0 ||
577
- decls.some((decl) => decl.type !== 1 /* Variable */ && decl.type !== 2 /* Parameter */)) {
581
+ decls.some((decl) => decl.type !== 1 /* DeclarationType.Variable */ && decl.type !== 2 /* DeclarationType.Parameter */)) {
578
582
  return undefined;
579
583
  }
580
584
  // If there are any assignments within different scopes (e.g. via a "global" or
581
585
  // "nonlocal" reference), don't consider it a local variable.
582
586
  let prevDeclScope;
583
587
  if (decls.some((decl) => {
584
- const nodeToConsider = decl.type === 2 /* Parameter */ ? decl.node.name : decl.node;
588
+ const nodeToConsider = decl.type === 2 /* DeclarationType.Parameter */ ? decl.node.name : decl.node;
585
589
  const declScopeNode = ParseTreeUtils.getExecutionScopeNode(nodeToConsider);
586
590
  if (prevDeclScope && declScopeNode !== prevDeclScope) {
587
591
  return true;
@@ -830,8 +834,8 @@ function getIsInstanceClassTypes(argType) {
830
834
  }
831
835
  else if ((0, types_1.isFunction)(subtype) &&
832
836
  subtype.details.parameters.length === 2 &&
833
- subtype.details.parameters[0].category === 1 /* ArgsList */ &&
834
- subtype.details.parameters[1].category === 2 /* KwargsDict */) {
837
+ subtype.details.parameters[0].category === 1 /* ParameterCategory.ArgsList */ &&
838
+ subtype.details.parameters[1].category === 2 /* ParameterCategory.KwargsDict */) {
835
839
  classTypeList.push(subtype);
836
840
  }
837
841
  else {
@@ -908,7 +912,7 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
908
912
  let expandedTypes = (0, typeUtils_1.mapSubtypes)(type, (subtype) => {
909
913
  return (0, typeUtils_1.transformPossibleRecursiveTypeAlias)(subtype);
910
914
  });
911
- expandedTypes = evaluator.expandPromotionTypes(errorNode, type);
915
+ expandedTypes = evaluator.expandPromotionTypes(errorNode, expandedTypes);
912
916
  // Filters the varType by the parameters of the isinstance
913
917
  // and returns the list of types the varType could be after
914
918
  // applying the filter.
@@ -946,13 +950,19 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
946
950
  if (filterIsSuperclass) {
947
951
  // If the variable type is a subclass of the isinstance filter,
948
952
  // we haven't learned anything new about the variable type.
949
- filteredTypes.push((0, typeUtils_1.addConditionToType)(concreteVarType, conditions));
953
+ // If the varType is a Self or type[Self], retain the unnarrowedType.
954
+ if ((0, types_1.isTypeVar)(varType) && varType.details.isSynthesizedSelf) {
955
+ filteredTypes.push((0, typeUtils_1.addConditionToType)(varType, conditions));
956
+ }
957
+ else {
958
+ filteredTypes.push((0, typeUtils_1.addConditionToType)(concreteVarType, conditions));
959
+ }
950
960
  }
951
961
  else if (filterIsSubclass) {
952
962
  if (evaluator.assignType(concreteVarType, concreteFilterType,
953
963
  /* diag */ undefined,
954
964
  /* destTypeVarContext */ undefined,
955
- /* srcTypeVarContext */ undefined, 512 /* IgnoreTypeVarScope */ | 4096 /* IgnoreProtocolAssignmentCheck */)) {
965
+ /* srcTypeVarContext */ undefined, 512 /* AssignTypeFlags.IgnoreTypeVarScope */ | 4096 /* AssignTypeFlags.IgnoreProtocolAssignmentCheck */)) {
956
966
  // If the variable type is a superclass of the isinstance
957
967
  // filter, we can narrow the type to the subclass.
958
968
  let specializedFilterType = filterType;
@@ -993,7 +1003,7 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
993
1003
  effectiveMetaclass = concreteFilterType.details.effectiveMetaclass;
994
1004
  }
995
1005
  }
996
- let newClassType = types_1.ClassType.createInstantiable(className, ParseTreeUtils.getClassFullName(errorNode, fileInfo.moduleName, className), fileInfo.moduleName, fileInfo.filePath, 0 /* None */, ParseTreeUtils.getTypeSourceId(errorNode),
1006
+ let newClassType = types_1.ClassType.createInstantiable(className, ParseTreeUtils.getClassFullName(errorNode, fileInfo.moduleName, className), fileInfo.moduleName, fileInfo.filePath, 0 /* ClassTypeFlags.None */, ParseTreeUtils.getTypeSourceId(errorNode),
997
1007
  /* declaredMetaclass */ undefined, effectiveMetaclass, concreteVarType.details.docString);
998
1008
  newClassType.details.baseClasses = [
999
1009
  types_1.ClassType.cloneAsInstantiable(concreteVarType),
@@ -1075,7 +1085,7 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
1075
1085
  isCallable = true;
1076
1086
  }
1077
1087
  else {
1078
- isCallable = !!(0, typeUtils_1.lookUpClassMember)(concreteVarType, '__call__', 16 /* SkipInstanceMembers */);
1088
+ isCallable = !!(0, typeUtils_1.lookUpClassMember)(concreteVarType, '__call__', 16 /* MemberAccessFlags.SkipInstanceMembers */);
1079
1089
  }
1080
1090
  }
1081
1091
  if (isCallable) {
@@ -1124,7 +1134,16 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
1124
1134
  if ((0, types_1.isInstantiableClass)(concreteFilterType)) {
1125
1135
  const filterMetaclass = concreteFilterType.details.effectiveMetaclass;
1126
1136
  if (filterMetaclass && (0, types_1.isInstantiableClass)(filterMetaclass)) {
1127
- const isMetaclassOverlap = evaluator.assignType(metaclassType, types_1.ClassType.cloneAsInstance(filterMetaclass));
1137
+ let isMetaclassOverlap = evaluator.assignType(metaclassType, types_1.ClassType.cloneAsInstance(filterMetaclass));
1138
+ // Handle the special case where the metaclass for the filter is type.
1139
+ // This will normally be treated as type[Any], which is compatible with
1140
+ // any metaclass, but we specifically want to treat type as the class
1141
+ // type[object] in this case.
1142
+ if (types_1.ClassType.isBuiltIn(filterMetaclass, 'type') && !filterMetaclass.isTypeArgumentExplicit) {
1143
+ if (!types_1.ClassType.isBuiltIn(metaclassType, 'type')) {
1144
+ isMetaclassOverlap = false;
1145
+ }
1146
+ }
1128
1147
  if (isMetaclassOverlap) {
1129
1148
  if (isPositiveTest) {
1130
1149
  filteredTypes.push(filterType);
@@ -1167,7 +1186,7 @@ function narrowTypeForIsInstance(evaluator, type, classTypeList, isInstanceCheck
1167
1186
  if (evaluator.assignType(varType, (0, typeUtils_1.convertToInstance)(concreteFilterType),
1168
1187
  /* diag */ undefined,
1169
1188
  /* destTypeVarContext */ undefined,
1170
- /* srcTypeVarContext */ undefined, 512 /* IgnoreTypeVarScope */)) {
1189
+ /* srcTypeVarContext */ undefined, 512 /* AssignTypeFlags.IgnoreTypeVarScope */)) {
1171
1190
  // If the filter type is a Callable, use the original type. If the
1172
1191
  // filter type is a callback protocol, use the filter type.
1173
1192
  if ((0, types_1.isFunction)(filterType)) {
@@ -1445,6 +1464,14 @@ function narrowTypeForContainerElementType(evaluator, referenceType, elementType
1445
1464
  canNarrow = false;
1446
1465
  return referenceType;
1447
1466
  }
1467
+ // Handle the special case where the reference type is a dict or Mapping and
1468
+ // the element type is a TypedDict. In this case, we can't say whether there
1469
+ // is a type overlap, so don't apply narrowing.
1470
+ if ((0, types_1.isClassInstance)(referenceType) && types_1.ClassType.isBuiltIn(referenceType, ['dict', 'Mapping'])) {
1471
+ if ((0, types_1.isClassInstance)(concreteElementType) && types_1.ClassType.isTypedDictClass(concreteElementType)) {
1472
+ return concreteElementType;
1473
+ }
1474
+ }
1448
1475
  if (evaluator.assignType(referenceType, concreteElementType)) {
1449
1476
  return concreteElementType;
1450
1477
  }
@@ -1558,6 +1585,7 @@ exports.narrowTypeForDiscriminatedTupleComparison = narrowTypeForDiscriminatedTu
1558
1585
  // literal value.
1559
1586
  function narrowTypeForDiscriminatedLiteralFieldComparison(evaluator, referenceType, memberName, literalType, isPositiveTest) {
1560
1587
  const narrowedType = (0, typeUtils_1.mapSubtypes)(referenceType, (subtype) => {
1588
+ var _a;
1561
1589
  let memberInfo;
1562
1590
  if ((0, types_1.isClassInstance)(subtype)) {
1563
1591
  memberInfo = (0, typeUtils_1.lookUpObjectMember)(subtype, memberName);
@@ -1570,7 +1598,7 @@ function narrowTypeForDiscriminatedLiteralFieldComparison(evaluator, referenceTy
1570
1598
  // Handle the case where the field is a property
1571
1599
  // that has a declared literal return type for its getter.
1572
1600
  if ((0, types_1.isClassInstance)(subtype) && (0, types_1.isClassInstance)(memberType) && (0, typeUtils_1.isProperty)(memberType)) {
1573
- const getterType = memberType.fgetFunction;
1601
+ const getterType = (_a = memberType.fgetInfo) === null || _a === void 0 ? void 0 : _a.methodType;
1574
1602
  if (getterType && getterType.details.declaredReturnType) {
1575
1603
  const getterReturnType = types_1.FunctionType.getSpecializedReturnType(getterType);
1576
1604
  if (getterReturnType) {
@@ -1773,14 +1801,14 @@ exports.enumerateLiteralsForType = enumerateLiteralsForType;
1773
1801
  function narrowTypeForCallable(evaluator, type, isPositiveTest, errorNode, allowIntersections) {
1774
1802
  return evaluator.mapSubtypesExpandTypeVars(type, /* conditionFilter */ undefined, (subtype) => {
1775
1803
  switch (subtype.category) {
1776
- case 4 /* Function */:
1777
- case 5 /* OverloadedFunction */: {
1804
+ case 4 /* TypeCategory.Function */:
1805
+ case 5 /* TypeCategory.OverloadedFunction */: {
1778
1806
  return isPositiveTest ? subtype : undefined;
1779
1807
  }
1780
- case 7 /* Module */: {
1808
+ case 7 /* TypeCategory.Module */: {
1781
1809
  return isPositiveTest ? undefined : subtype;
1782
1810
  }
1783
- case 6 /* Class */: {
1811
+ case 6 /* TypeCategory.Class */: {
1784
1812
  if ((0, typeUtils_1.isNoneInstance)(subtype)) {
1785
1813
  return isPositiveTest ? undefined : subtype;
1786
1814
  }
@@ -1788,7 +1816,7 @@ function narrowTypeForCallable(evaluator, type, isPositiveTest, errorNode, allow
1788
1816
  return isPositiveTest ? subtype : undefined;
1789
1817
  }
1790
1818
  // See if the object is callable.
1791
- const callMemberType = (0, typeUtils_1.lookUpClassMember)(subtype, '__call__', 16 /* SkipInstanceMembers */);
1819
+ const callMemberType = (0, typeUtils_1.lookUpClassMember)(subtype, '__call__', 16 /* MemberAccessFlags.SkipInstanceMembers */);
1792
1820
  if (!callMemberType) {
1793
1821
  if (!isPositiveTest) {
1794
1822
  return subtype;
@@ -1799,7 +1827,7 @@ function narrowTypeForCallable(evaluator, type, isPositiveTest, errorNode, allow
1799
1827
  // new intersection type.
1800
1828
  const className = `<callable subtype of ${subtype.details.name}>`;
1801
1829
  const fileInfo = (0, analyzerNodeInfo_1.getFileInfo)(errorNode);
1802
- let newClassType = types_1.ClassType.createInstantiable(className, ParseTreeUtils.getClassFullName(errorNode, fileInfo.moduleName, className), fileInfo.moduleName, fileInfo.filePath, 0 /* None */, ParseTreeUtils.getTypeSourceId(errorNode),
1830
+ let newClassType = types_1.ClassType.createInstantiable(className, ParseTreeUtils.getClassFullName(errorNode, fileInfo.moduleName, className), fileInfo.moduleName, fileInfo.filePath, 0 /* ClassTypeFlags.None */, ParseTreeUtils.getTypeSourceId(errorNode),
1803
1831
  /* declaredMetaclass */ undefined, subtype.details.effectiveMetaclass, subtype.details.docString);
1804
1832
  newClassType.details.baseClasses = [types_1.ClassType.cloneAsInstantiable(subtype)];
1805
1833
  (0, typeUtils_1.computeMroLinearization)(newClassType);
@@ -1807,7 +1835,7 @@ function narrowTypeForCallable(evaluator, type, isPositiveTest, errorNode, allow
1807
1835
  // Add a __call__ method to the new class.
1808
1836
  const callMethod = types_1.FunctionType.createSynthesizedInstance('__call__');
1809
1837
  const selfParam = {
1810
- category: 0 /* Simple */,
1838
+ category: 0 /* ParameterCategory.Simple */,
1811
1839
  name: 'self',
1812
1840
  type: types_1.ClassType.cloneAsInstance(newClassType),
1813
1841
  hasDeclaredType: true,
@@ -1815,7 +1843,7 @@ function narrowTypeForCallable(evaluator, type, isPositiveTest, errorNode, allow
1815
1843
  types_1.FunctionType.addParameter(callMethod, selfParam);
1816
1844
  types_1.FunctionType.addDefaultParameters(callMethod);
1817
1845
  callMethod.details.declaredReturnType = types_1.UnknownType.create();
1818
- newClassType.details.fields.set('__call__', symbol_1.Symbol.createWithType(4 /* ClassMember */, callMethod));
1846
+ newClassType.details.fields.set('__call__', symbol_1.Symbol.createWithType(4 /* SymbolFlags.ClassMember */, callMethod));
1819
1847
  return types_1.ClassType.cloneAsInstance(newClassType);
1820
1848
  }
1821
1849
  return undefined;