@zzzen/pyright-internal 1.1.255 → 1.2.0-dev.20220703

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 (1456) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -0
  3. package/dist/analyzer/aliasDeclarationUtils.js +2 -2
  4. package/dist/analyzer/analyzerFileInfo.d.ts +1 -1
  5. package/dist/analyzer/analyzerNodeInfo.d.ts +4 -1
  6. package/dist/analyzer/analyzerNodeInfo.js +12 -1
  7. package/dist/analyzer/analyzerNodeInfo.js.map +1 -1
  8. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
  9. package/dist/analyzer/backgroundAnalysisProgram.js +3 -0
  10. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  11. package/dist/analyzer/binder.d.ts +6 -1
  12. package/dist/analyzer/binder.js +142 -32
  13. package/dist/analyzer/binder.js.map +1 -1
  14. package/dist/analyzer/checker.d.ts +4 -1
  15. package/dist/analyzer/checker.js +144 -73
  16. package/dist/analyzer/checker.js.map +1 -1
  17. package/dist/analyzer/codeFlowUtils.js +33 -0
  18. package/dist/analyzer/codeFlowUtils.js.map +1 -1
  19. package/dist/analyzer/constraintSolver.js +6 -3
  20. package/dist/analyzer/constraintSolver.js.map +1 -1
  21. package/dist/analyzer/dataClasses.js +6 -4
  22. package/dist/analyzer/dataClasses.js.map +1 -1
  23. package/dist/analyzer/declaration.d.ts +18 -6
  24. package/dist/analyzer/declaration.js +25 -5
  25. package/dist/analyzer/declaration.js.map +1 -1
  26. package/dist/analyzer/declarationUtils.d.ts +1 -1
  27. package/dist/analyzer/declarationUtils.js +19 -16
  28. package/dist/analyzer/declarationUtils.js.map +1 -1
  29. package/dist/analyzer/importResult.js +7 -0
  30. package/dist/analyzer/importResult.js.map +1 -1
  31. package/dist/analyzer/importStatementUtils.js +10 -1
  32. package/dist/analyzer/importStatementUtils.js.map +1 -1
  33. package/dist/analyzer/namedTuples.js +1 -1
  34. package/dist/analyzer/namedTuples.js.map +1 -1
  35. package/dist/analyzer/packageTypeReport.js +10 -1
  36. package/dist/analyzer/packageTypeReport.js.map +1 -1
  37. package/dist/analyzer/packageTypeVerifier.js +6 -6
  38. package/dist/analyzer/parseTreeUtils.d.ts +3 -3
  39. package/dist/analyzer/parseTreeUtils.js +27 -13
  40. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  41. package/dist/analyzer/parseTreeWalker.d.ts +4 -1
  42. package/dist/analyzer/parseTreeWalker.js +19 -1
  43. package/dist/analyzer/parseTreeWalker.js.map +1 -1
  44. package/dist/analyzer/program.d.ts +2 -1
  45. package/dist/analyzer/program.js +27 -23
  46. package/dist/analyzer/program.js.map +1 -1
  47. package/dist/analyzer/properties.js +2 -0
  48. package/dist/analyzer/properties.js.map +1 -1
  49. package/dist/analyzer/protocols.d.ts +0 -1
  50. package/dist/analyzer/protocols.js +4 -64
  51. package/dist/analyzer/protocols.js.map +1 -1
  52. package/dist/analyzer/scope.js +22 -1
  53. package/dist/analyzer/scope.js.map +1 -1
  54. package/dist/analyzer/service.d.ts +20 -8
  55. package/dist/analyzer/service.js +39 -19
  56. package/dist/analyzer/service.js.map +1 -1
  57. package/dist/analyzer/sourceFile.js +1 -1
  58. package/dist/analyzer/sourceFile.js.map +1 -1
  59. package/dist/analyzer/sourceFileInfoUtils.d.ts +2 -0
  60. package/dist/analyzer/sourceFileInfoUtils.js +15 -0
  61. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -0
  62. package/dist/analyzer/symbol.d.ts +3 -1
  63. package/dist/analyzer/symbol.js +39 -1
  64. package/dist/analyzer/symbol.js.map +1 -1
  65. package/dist/analyzer/tracePrinter.js +8 -4
  66. package/dist/analyzer/tracePrinter.js.map +1 -1
  67. package/dist/analyzer/typeDocStringUtils.js +11 -3
  68. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  69. package/dist/analyzer/typeEvaluator.js +610 -208
  70. package/dist/analyzer/typeEvaluator.js.map +1 -1
  71. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -1
  72. package/dist/analyzer/typeEvaluatorTypes.js +65 -1
  73. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  74. package/dist/analyzer/typeEvaluatorWithTracker.js +2 -0
  75. package/dist/analyzer/typeEvaluatorWithTracker.js.map +1 -1
  76. package/dist/analyzer/typeGuards.d.ts +2 -0
  77. package/dist/analyzer/typeGuards.js +113 -69
  78. package/dist/analyzer/typeGuards.js.map +1 -1
  79. package/dist/analyzer/typePrinter.js +27 -2
  80. package/dist/analyzer/typePrinter.js.map +1 -1
  81. package/dist/analyzer/typeStubWriter.d.ts +4 -1
  82. package/dist/analyzer/typeStubWriter.js +36 -0
  83. package/dist/analyzer/typeStubWriter.js.map +1 -1
  84. package/dist/analyzer/typeUtils.js +129 -33
  85. package/dist/analyzer/typeUtils.js.map +1 -1
  86. package/dist/analyzer/typedDicts.js +2 -1
  87. package/dist/analyzer/typedDicts.js.map +1 -1
  88. package/dist/analyzer/types.d.ts +12 -4
  89. package/dist/analyzer/types.js +215 -6
  90. package/dist/analyzer/types.js.map +1 -1
  91. package/dist/backgroundAnalysisBase.d.ts +1 -1
  92. package/dist/commands/commands.js +9 -0
  93. package/dist/commands/commands.js.map +1 -1
  94. package/dist/common/commandLineOptions.js +8 -1
  95. package/dist/common/commandLineOptions.js.map +1 -1
  96. package/dist/common/core.js +7 -1
  97. package/dist/common/core.js.map +1 -1
  98. package/dist/common/diagnostic.js +9 -1
  99. package/dist/common/diagnostic.js.map +1 -1
  100. package/dist/common/host.js +7 -1
  101. package/dist/common/host.js.map +1 -1
  102. package/dist/common/pathUtils.d.ts +1 -0
  103. package/dist/common/pathUtils.js +34 -1
  104. package/dist/common/pathUtils.js.map +1 -1
  105. package/dist/common/stringUtils.d.ts +1 -0
  106. package/dist/common/stringUtils.js +8 -1
  107. package/dist/common/stringUtils.js.map +1 -1
  108. package/dist/languageServerBase.d.ts +10 -3
  109. package/dist/languageServerBase.js +40 -14
  110. package/dist/languageServerBase.js.map +1 -1
  111. package/dist/languageService/analyzerServiceExecutor.js +3 -0
  112. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  113. package/dist/languageService/autoImporter.js +2 -1
  114. package/dist/languageService/autoImporter.js.map +1 -1
  115. package/dist/languageService/callHierarchyProvider.js +9 -9
  116. package/dist/languageService/completionProvider.d.ts +2 -2
  117. package/dist/languageService/completionProvider.js +22 -18
  118. package/dist/languageService/completionProvider.js.map +1 -1
  119. package/dist/languageService/definitionProvider.js +3 -3
  120. package/dist/languageService/documentSymbolCollector.js +1 -1
  121. package/dist/languageService/documentSymbolProvider.js +10 -7
  122. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  123. package/dist/languageService/hoverProvider.js +19 -5
  124. package/dist/languageService/hoverProvider.js.map +1 -1
  125. package/dist/languageService/referencesProvider.js +8 -5
  126. package/dist/languageService/referencesProvider.js.map +1 -1
  127. package/dist/languageService/tooltipUtils.js +1 -1
  128. package/dist/localization/localize.d.ts +27 -0
  129. package/dist/localization/localize.js +16 -0
  130. package/dist/localization/localize.js.map +1 -1
  131. package/dist/localization/package.nls.en-us.json +18 -2
  132. package/dist/parser/parseNodes.d.ts +44 -5
  133. package/dist/parser/parseNodes.js +191 -4
  134. package/dist/parser/parseNodes.js.map +1 -1
  135. package/dist/parser/parser.d.ts +3 -1
  136. package/dist/parser/parser.js +155 -24
  137. package/dist/parser/parser.js.map +1 -1
  138. package/dist/parser/stringTokenUtils.js +8 -1
  139. package/dist/parser/stringTokenUtils.js.map +1 -1
  140. package/dist/parser/tokenizer.js +4 -3
  141. package/dist/parser/tokenizer.js.map +1 -1
  142. package/dist/parser/tokenizerTypes.d.ts +5 -3
  143. package/dist/parser/tokenizerTypes.js +157 -1
  144. package/dist/parser/tokenizerTypes.js.map +1 -1
  145. package/dist/pyright.js +6 -1
  146. package/dist/pyright.js.map +1 -1
  147. package/dist/tests/chainedSourceFiles.test.js +12 -9
  148. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  149. package/dist/tests/checker.test.js +4 -0
  150. package/dist/tests/checker.test.js.map +1 -1
  151. package/dist/tests/config.test.js +14 -13
  152. package/dist/tests/config.test.js.map +1 -1
  153. package/dist/tests/debug.test.js +6 -0
  154. package/dist/tests/debug.test.js.map +1 -1
  155. package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.d.ts +1 -0
  156. package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js +53 -0
  157. package/dist/tests/fourslash/completions.autoimport.lib.alias.fourslash.js.map +1 -0
  158. package/dist/tests/fourslash/fourslash.d.ts +16 -0
  159. package/dist/tests/fourslash/hover.class.docString.fourslash.d.ts +1 -0
  160. package/dist/tests/fourslash/hover.class.docString.fourslash.js +24 -0
  161. package/dist/tests/fourslash/hover.class.docString.fourslash.js.map +1 -0
  162. package/dist/tests/harness/fourslash/fourSlashParser.js +6 -0
  163. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  164. package/dist/tests/harness/fourslash/fourSlashTypes.js +19 -1
  165. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  166. package/dist/tests/harness/fourslash/testLanguageService.js +9 -1
  167. package/dist/tests/harness/fourslash/testLanguageService.js.map +1 -1
  168. package/dist/tests/harness/fourslash/testState.Consts.d.ts +1 -0
  169. package/dist/tests/harness/fourslash/testState.Consts.js +1 -0
  170. package/dist/tests/harness/fourslash/testState.Consts.js.map +1 -1
  171. package/dist/tests/harness/fourslash/testState.d.ts +4 -3
  172. package/dist/tests/harness/fourslash/testState.js +27 -11
  173. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  174. package/dist/tests/harness/vfs/pathValidation.js +25 -1
  175. package/dist/tests/harness/vfs/pathValidation.js.map +1 -1
  176. package/dist/tests/pathUtils.test.js +17 -0
  177. package/dist/tests/pathUtils.test.js.map +1 -1
  178. package/dist/tests/testUtils.js +1 -1
  179. package/dist/tests/testUtils.js.map +1 -1
  180. package/dist/tests/typeEvaluator1.test.js +9 -1
  181. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  182. package/dist/tests/typeEvaluator2.test.js +9 -1
  183. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  184. package/dist/tests/typeEvaluator3.test.js +4 -0
  185. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  186. package/dist/tests/typeEvaluator5.test.d.ts +1 -0
  187. package/dist/tests/typeEvaluator5.test.js +112 -0
  188. package/dist/tests/typeEvaluator5.test.js.map +1 -0
  189. package/dist/workspaceMap.d.ts +2 -1
  190. package/dist/workspaceMap.js +25 -3
  191. package/dist/workspaceMap.js.map +1 -1
  192. package/package.json +45 -45
  193. package/src/analyzer/aliasDeclarationUtils.ts +0 -169
  194. package/src/analyzer/analysis.ts +0 -92
  195. package/src/analyzer/analyzerFileInfo.ts +0 -56
  196. package/src/analyzer/analyzerNodeInfo.ts +0 -198
  197. package/src/analyzer/backgroundAnalysisProgram.ts +0 -311
  198. package/src/analyzer/binder.ts +0 -4081
  199. package/src/analyzer/checker.ts +0 -5507
  200. package/src/analyzer/circularDependency.ts +0 -52
  201. package/src/analyzer/codeFlowEngine.ts +0 -1548
  202. package/src/analyzer/codeFlowTypes.ts +0 -266
  203. package/src/analyzer/codeFlowUtils.ts +0 -436
  204. package/src/analyzer/commentUtils.ts +0 -174
  205. package/src/analyzer/constraintSolver.ts +0 -926
  206. package/src/analyzer/constructorTransform.ts +0 -317
  207. package/src/analyzer/dataClasses.ts +0 -999
  208. package/src/analyzer/declaration.ts +0 -252
  209. package/src/analyzer/declarationUtils.ts +0 -238
  210. package/src/analyzer/docStringConversion.ts +0 -850
  211. package/src/analyzer/docStringUtils.ts +0 -112
  212. package/src/analyzer/functionTransform.ts +0 -137
  213. package/src/analyzer/importResolver.ts +0 -2308
  214. package/src/analyzer/importResult.ts +0 -98
  215. package/src/analyzer/importStatementUtils.ts +0 -834
  216. package/src/analyzer/namedTuples.ts +0 -422
  217. package/src/analyzer/packageTypeReport.ts +0 -108
  218. package/src/analyzer/packageTypeVerifier.ts +0 -1466
  219. package/src/analyzer/parentDirectoryCache.ts +0 -88
  220. package/src/analyzer/parseTreeCleaner.ts +0 -35
  221. package/src/analyzer/parseTreeUtils.ts +0 -2165
  222. package/src/analyzer/parseTreeWalker.ts +0 -663
  223. package/src/analyzer/patternMatching.ts +0 -1356
  224. package/src/analyzer/program.ts +0 -2778
  225. package/src/analyzer/properties.ts +0 -534
  226. package/src/analyzer/protocols.ts +0 -660
  227. package/src/analyzer/pyTypedUtils.ts +0 -52
  228. package/src/analyzer/pythonPathUtils.ts +0 -201
  229. package/src/analyzer/scope.ts +0 -202
  230. package/src/analyzer/scopeUtils.ts +0 -81
  231. package/src/analyzer/service.ts +0 -1679
  232. package/src/analyzer/sourceFile.ts +0 -1401
  233. package/src/analyzer/sourceMapper.ts +0 -717
  234. package/src/analyzer/staticExpressions.ts +0 -308
  235. package/src/analyzer/symbol.ts +0 -249
  236. package/src/analyzer/symbolNameUtils.ts +0 -50
  237. package/src/analyzer/symbolUtils.ts +0 -49
  238. package/src/analyzer/testWalker.ts +0 -101
  239. package/src/analyzer/tracePrinter.ts +0 -264
  240. package/src/analyzer/typeCache.ts +0 -181
  241. package/src/analyzer/typeDocStringUtils.ts +0 -371
  242. package/src/analyzer/typeEvaluator.ts +0 -23395
  243. package/src/analyzer/typeEvaluatorTypes.ts +0 -452
  244. package/src/analyzer/typeEvaluatorWithTracker.ts +0 -161
  245. package/src/analyzer/typeGuards.ts +0 -1828
  246. package/src/analyzer/typePrinter.ts +0 -807
  247. package/src/analyzer/typeStubWriter.ts +0 -727
  248. package/src/analyzer/typeUtils.ts +0 -3126
  249. package/src/analyzer/typeVarContext.ts +0 -330
  250. package/src/analyzer/typedDicts.ts +0 -950
  251. package/src/analyzer/types.ts +0 -2857
  252. package/src/backgroundAnalysis.ts +0 -49
  253. package/src/backgroundAnalysisBase.ts +0 -606
  254. package/src/backgroundThreadBase.ts +0 -143
  255. package/src/commands/commandController.ts +0 -62
  256. package/src/commands/commandResult.ts +0 -21
  257. package/src/commands/commands.ts +0 -16
  258. package/src/commands/createTypeStub.ts +0 -56
  259. package/src/commands/quickActionCommand.ts +0 -40
  260. package/src/commands/restartServer.ts +0 -20
  261. package/src/common/cancellationUtils.ts +0 -71
  262. package/src/common/chokidarFileWatcherProvider.ts +0 -74
  263. package/src/common/collectionUtils.ts +0 -379
  264. package/src/common/commandLineOptions.ts +0 -132
  265. package/src/common/configOptions.ts +0 -1291
  266. package/src/common/console.ts +0 -201
  267. package/src/common/core.ts +0 -152
  268. package/src/common/crypto.ts +0 -60
  269. package/src/common/debug.ts +0 -144
  270. package/src/common/deferred.ts +0 -78
  271. package/src/common/diagnostic.ts +0 -191
  272. package/src/common/diagnosticRules.ts +0 -80
  273. package/src/common/diagnosticSink.ts +0 -150
  274. package/src/common/editAction.ts +0 -46
  275. package/src/common/extensibility.ts +0 -35
  276. package/src/common/extensions.ts +0 -21
  277. package/src/common/fileBasedCancellationUtils.ts +0 -274
  278. package/src/common/fileSystem.ts +0 -152
  279. package/src/common/fullAccessHost.ts +0 -203
  280. package/src/common/host.ts +0 -49
  281. package/src/common/logTracker.ts +0 -157
  282. package/src/common/lspUtils.ts +0 -18
  283. package/src/common/memUtils.ts +0 -36
  284. package/src/common/pathConsts.ts +0 -16
  285. package/src/common/pathUtils.ts +0 -987
  286. package/src/common/positionUtils.ts +0 -78
  287. package/src/common/progressReporter.ts +0 -53
  288. package/src/common/pythonVersion.ts +0 -74
  289. package/src/common/realFileSystem.ts +0 -433
  290. package/src/common/stringUtils.ts +0 -161
  291. package/src/common/textEditUtils.ts +0 -31
  292. package/src/common/textRange.ts +0 -225
  293. package/src/common/textRangeCollection.ts +0 -122
  294. package/src/common/timing.ts +0 -105
  295. package/src/common/uriParser.ts +0 -26
  296. package/src/common/workspaceEditUtils.ts +0 -100
  297. package/src/languageServerBase.ts +0 -1556
  298. package/src/languageService/analyzerServiceExecutor.ts +0 -144
  299. package/src/languageService/autoImporter.ts +0 -926
  300. package/src/languageService/callHierarchyProvider.ts +0 -476
  301. package/src/languageService/codeActionProvider.ts +0 -85
  302. package/src/languageService/completionProvider.ts +0 -3103
  303. package/src/languageService/definitionProvider.ts +0 -235
  304. package/src/languageService/documentHighlightProvider.ts +0 -61
  305. package/src/languageService/documentSymbolCollector.ts +0 -466
  306. package/src/languageService/documentSymbolProvider.ts +0 -466
  307. package/src/languageService/hoverProvider.ts +0 -499
  308. package/src/languageService/importAdder.ts +0 -437
  309. package/src/languageService/importSorter.ts +0 -196
  310. package/src/languageService/indentationUtils.ts +0 -813
  311. package/src/languageService/quickActions.ts +0 -113
  312. package/src/languageService/referencesProvider.ts +0 -316
  313. package/src/languageService/renameModuleProvider.ts +0 -1400
  314. package/src/languageService/signatureHelpProvider.ts +0 -227
  315. package/src/languageService/tooltipUtils.ts +0 -147
  316. package/src/localization/localize.ts +0 -1272
  317. package/src/localization/package.nls.de.json +0 -3
  318. package/src/localization/package.nls.en-us.json +0 -636
  319. package/src/localization/package.nls.es.json +0 -3
  320. package/src/localization/package.nls.fr.json +0 -3
  321. package/src/localization/package.nls.ja.json +0 -3
  322. package/src/localization/package.nls.ru.json +0 -3
  323. package/src/localization/package.nls.zh-cn.json +0 -3
  324. package/src/localization/package.nls.zh-tw.json +0 -3
  325. package/src/nodeMain.ts +0 -21
  326. package/src/nodeServer.ts +0 -30
  327. package/src/parser/characterStream.ts +0 -145
  328. package/src/parser/characters.ts +0 -285
  329. package/src/parser/parseNodes.ts +0 -2338
  330. package/src/parser/parser.ts +0 -4859
  331. package/src/parser/stringTokenUtils.ts +0 -564
  332. package/src/parser/tokenizer.ts +0 -1379
  333. package/src/parser/tokenizerTypes.ts +0 -420
  334. package/src/parser/unicode.ts +0 -2917
  335. package/src/pyright.ts +0 -824
  336. package/src/pyrightFileSystem.ts +0 -237
  337. package/src/readonlyAugmentedFileSystem.ts +0 -204
  338. package/src/server.ts +0 -298
  339. package/src/tests/chainedSourceFiles.test.ts +0 -183
  340. package/src/tests/checker.test.ts +0 -445
  341. package/src/tests/collectionUtils.test.ts +0 -178
  342. package/src/tests/common.test.ts +0 -117
  343. package/src/tests/config.test.ts +0 -291
  344. package/src/tests/debug.test.ts +0 -120
  345. package/src/tests/deferred.test.ts +0 -54
  346. package/src/tests/diagnosticOverrides.test.ts +0 -104
  347. package/src/tests/docStringConversion.test.ts +0 -823
  348. package/src/tests/docStringUtils.test.ts +0 -57
  349. package/src/tests/documentSymbolCollector.test.ts +0 -735
  350. package/src/tests/filesystem.test.ts +0 -215
  351. package/src/tests/fourSlashParser.test.ts +0 -330
  352. package/src/tests/fourSlashRunner.test.ts +0 -36
  353. package/src/tests/fourslash/completions.autoimport.Lib.Found.Type.fourslash.ts +0 -33
  354. package/src/tests/fourslash/completions.autoimport.Lib.Found.duplication.fourslash.ts +0 -47
  355. package/src/tests/fourslash/completions.autoimport.Lib.NotFound.fourslash.ts +0 -14
  356. package/src/tests/fourslash/completions.autoimport.disabled.fourslash.ts +0 -25
  357. package/src/tests/fourslash/completions.autoimport.duplicates.fourslash.ts +0 -36
  358. package/src/tests/fourslash/completions.autoimport.fourslash.ts +0 -29
  359. package/src/tests/fourslash/completions.autoimport.fromImport.fourslash.ts +0 -130
  360. package/src/tests/fourslash/completions.autoimport.plainText.fourslash.ts +0 -29
  361. package/src/tests/fourslash/completions.autoimport.shadow.fourslash.ts +0 -48
  362. package/src/tests/fourslash/completions.autoimport.submodule.fourslash.ts +0 -31
  363. package/src/tests/fourslash/completions.autoimport.topLevel.fourslash.ts +0 -57
  364. package/src/tests/fourslash/completions.builtinDocstrings.fourslash.ts +0 -117
  365. package/src/tests/fourslash/completions.builtinOverride.fourslash.ts +0 -22
  366. package/src/tests/fourslash/completions.call.stringLiteral.fourslash.ts +0 -55
  367. package/src/tests/fourslash/completions.call.typedDict.fourslash.ts +0 -247
  368. package/src/tests/fourslash/completions.call.typedDict.list.fourslash.ts +0 -163
  369. package/src/tests/fourslash/completions.call.typedDict.states.fourslash.ts +0 -135
  370. package/src/tests/fourslash/completions.classVariable.fourslash.ts +0 -37
  371. package/src/tests/fourslash/completions.comment.fourslash.ts +0 -28
  372. package/src/tests/fourslash/completions.declNames.class.fourslash.ts +0 -35
  373. package/src/tests/fourslash/completions.declNames.exception.fourslash.ts +0 -18
  374. package/src/tests/fourslash/completions.declNames.for.fourslash.ts +0 -30
  375. package/src/tests/fourslash/completions.declNames.importAlias.fourslash.ts +0 -15
  376. package/src/tests/fourslash/completions.declNames.lambda.fourslash.ts +0 -45
  377. package/src/tests/fourslash/completions.declNames.method.fourslash.ts +0 -71
  378. package/src/tests/fourslash/completions.declNames.overload.fourslash.ts +0 -156
  379. package/src/tests/fourslash/completions.declNames.topLevelOverload.fourslash.ts +0 -141
  380. package/src/tests/fourslash/completions.dictionary.keys.complex.fourslash.ts +0 -76
  381. package/src/tests/fourslash/completions.dictionary.keys.expression.fourslash.ts +0 -63
  382. package/src/tests/fourslash/completions.dictionary.keys.literalTypes.fourslash.ts +0 -161
  383. package/src/tests/fourslash/completions.dictionary.keys.simple.fourslash.ts +0 -151
  384. package/src/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.ts +0 -116
  385. package/src/tests/fourslash/completions.dictionary.keys.symbols.fourslash.ts +0 -53
  386. package/src/tests/fourslash/completions.enums.members.fourslash.ts +0 -44
  387. package/src/tests/fourslash/completions.excluded.fourslash.ts +0 -12
  388. package/src/tests/fourslash/completions.fourslash.ts +0 -51
  389. package/src/tests/fourslash/completions.fstring.fourslash.ts +0 -33
  390. package/src/tests/fourslash/completions.fstring.stringLiteral.fourslash.ts +0 -96
  391. package/src/tests/fourslash/completions.fuzzyMatching.fourslash.ts +0 -30
  392. package/src/tests/fourslash/completions.importDunderNames.fourslash.ts +0 -31
  393. package/src/tests/fourslash/completions.importSubmodule.fourslash.ts +0 -26
  394. package/src/tests/fourslash/completions.importsDuplicates.fourslash.ts +0 -23
  395. package/src/tests/fourslash/completions.inList.fourslash.ts +0 -33
  396. package/src/tests/fourslash/completions.included.fourslash.ts +0 -12
  397. package/src/tests/fourslash/completions.indexer.keys.getitem.fourslash.ts +0 -57
  398. package/src/tests/fourslash/completions.inherited.function.docFromStub.fourslash.ts +0 -28
  399. package/src/tests/fourslash/completions.inherited.overload.docFromScrWithStub.fourslash.ts +0 -52
  400. package/src/tests/fourslash/completions.inherited.overload.docFromStub.fourslash.ts +0 -53
  401. package/src/tests/fourslash/completions.inherited.property.docFromSrc.fourslash.ts +0 -104
  402. package/src/tests/fourslash/completions.inherited.property.docFromStub.fourslash.ts +0 -108
  403. package/src/tests/fourslash/completions.keywords.pythonVersion.fourslash.ts +0 -72
  404. package/src/tests/fourslash/completions.libCodeAndStub.fourslash.ts +0 -79
  405. package/src/tests/fourslash/completions.libCodeNoStub.fourslash.ts +0 -69
  406. package/src/tests/fourslash/completions.libStub.fourslash.ts +0 -69
  407. package/src/tests/fourslash/completions.literals.fourslash.ts +0 -33
  408. package/src/tests/fourslash/completions.localCode.fourslash.ts +0 -74
  409. package/src/tests/fourslash/completions.moduleContext.UnknownMemberOnInstance.fourslash.ts +0 -17
  410. package/src/tests/fourslash/completions.moduleContext.UnknownStaticFunctionOnClass.fourslash.ts +0 -57
  411. package/src/tests/fourslash/completions.moduleContext.libCodeNoStub.fourslash.ts +0 -30
  412. package/src/tests/fourslash/completions.overloads.fourslash.ts +0 -40
  413. package/src/tests/fourslash/completions.override.default.fourslash.ts +0 -47
  414. package/src/tests/fourslash/completions.override.default.importStub.ts +0 -50
  415. package/src/tests/fourslash/completions.override.default.imported.fourslash.ts +0 -61
  416. package/src/tests/fourslash/completions.override.default.stub.fourslash.ts +0 -47
  417. package/src/tests/fourslash/completions.override.fourslash.ts +0 -47
  418. package/src/tests/fourslash/completions.override.property.fourslash.ts +0 -31
  419. package/src/tests/fourslash/completions.override.property.stub.fourslash.ts +0 -31
  420. package/src/tests/fourslash/completions.override.staticAndClassmethod.fourslash.ts +0 -64
  421. package/src/tests/fourslash/completions.override.stub.fourslash.ts +0 -47
  422. package/src/tests/fourslash/completions.override2.fourslash.ts +0 -71
  423. package/src/tests/fourslash/completions.parameters.fourslash.ts +0 -23
  424. package/src/tests/fourslash/completions.params.fourslash.ts +0 -24
  425. package/src/tests/fourslash/completions.parentFolder.fourslash.ts +0 -17
  426. package/src/tests/fourslash/completions.parentFolders.fourslash.ts +0 -77
  427. package/src/tests/fourslash/completions.plainText.fourslash.ts +0 -34
  428. package/src/tests/fourslash/completions.private.fourslash.ts +0 -64
  429. package/src/tests/fourslash/completions.property.fourslash.ts +0 -28
  430. package/src/tests/fourslash/completions.propertyDocStrings.fourslash.ts +0 -64
  431. package/src/tests/fourslash/completions.self.fourslash.ts +0 -43
  432. package/src/tests/fourslash/completions.stringLiteral.escape.fourslash.ts +0 -71
  433. package/src/tests/fourslash/completions.stringLiteral.fourslash.ts +0 -79
  434. package/src/tests/fourslash/completions.typeAlias.fourslash.ts +0 -29
  435. package/src/tests/fourslash/completions.typeshed.fourslash.ts +0 -9
  436. package/src/tests/fourslash/completions.vardecls.fourslash.ts +0 -40
  437. package/src/tests/fourslash/completions.variableDocStrings.fourslash.ts +0 -69
  438. package/src/tests/fourslash/completions.wildcardimports.fourslash.ts +0 -116
  439. package/src/tests/fourslash/completions.with.fourslash.ts +0 -26
  440. package/src/tests/fourslash/diagnostics.missingModuleSource.fourslash.ts +0 -69
  441. package/src/tests/fourslash/findDefinitions.builtinClass.fourslash.ts +0 -29
  442. package/src/tests/fourslash/findDefinitions.classes.fourslash.ts +0 -101
  443. package/src/tests/fourslash/findDefinitions.definitionFilter.preferSource.fourslash.ts +0 -29
  444. package/src/tests/fourslash/findDefinitions.definitionFilter.preferSource.onlyStubs.ts +0 -24
  445. package/src/tests/fourslash/findDefinitions.definitionFilter.preferStub.fourslash.ts +0 -29
  446. package/src/tests/fourslash/findDefinitions.definitionFilter.preferStub.onlySource.fourslash.ts +0 -25
  447. package/src/tests/fourslash/findDefinitions.fields.fourslash.ts +0 -131
  448. package/src/tests/fourslash/findDefinitions.functions.fourslash.ts +0 -87
  449. package/src/tests/fourslash/findDefinitions.methods.fourslash.ts +0 -162
  450. package/src/tests/fourslash/findDefinitions.modules.fourslash.ts +0 -50
  451. package/src/tests/fourslash/findDefinitions.namespaceImport.fourslash.ts +0 -40
  452. package/src/tests/fourslash/findDefinitions.overloads.fourslash.ts +0 -223
  453. package/src/tests/fourslash/findDefinitions.parameters.fourslash.ts +0 -162
  454. package/src/tests/fourslash/findDefinitions.sourceAndStub.function.fourslash.ts +0 -26
  455. package/src/tests/fourslash/findDefinitions.sourceAndStub.innerClass.fourslash.ts +0 -32
  456. package/src/tests/fourslash/findDefinitions.sourceAndStub.innerClassMethod.fourslash.ts +0 -33
  457. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClass.fourslash.ts +0 -28
  458. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClassMethod.fourslash.ts +0 -29
  459. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClassPropertyReadOnly.fourslash.ts +0 -31
  460. package/src/tests/fourslash/findDefinitions.sourceAndStub.outerClassPropertyReadWrite.fourslash.ts +0 -36
  461. package/src/tests/fourslash/findDefinitions.sourceOnly.class.fourslash.ts +0 -29
  462. package/src/tests/fourslash/findDefinitions.sourceOnly.function1.fourslash.ts +0 -28
  463. package/src/tests/fourslash/findDefinitions.sourceOnly.function2.fourslash.ts +0 -28
  464. package/src/tests/fourslash/findDefinitions.sourceOnly.relativeImport1.fourslash.ts +0 -22
  465. package/src/tests/fourslash/findDefinitions.sourceOnly.relativeImport2.fourslash.ts +0 -22
  466. package/src/tests/fourslash/findDefinitions.stubOnly.fourslash.ts +0 -61
  467. package/src/tests/fourslash/findDefinitions.stubPackages.fourslash.ts +0 -71
  468. package/src/tests/fourslash/findDefinitions.typedDict.keys.fourslash.ts +0 -99
  469. package/src/tests/fourslash/findDefinitions.variables.fourslash.ts +0 -88
  470. package/src/tests/fourslash/findDefinitions.wildcardimports.fourslash.ts +0 -117
  471. package/src/tests/fourslash/findTypeDefinitions.builtinClass.fourslash.ts +0 -26
  472. package/src/tests/fourslash/findTypeDefinitions.classes.fourslash.ts +0 -72
  473. package/src/tests/fourslash/findTypeDefinitions.unions.fourslash.ts +0 -26
  474. package/src/tests/fourslash/findallreferences.classPropertyReadWrite.ts +0 -39
  475. package/src/tests/fourslash/findallreferences.fourslash.ts +0 -34
  476. package/src/tests/fourslash/findallreferences.importalias.fourslash.ts +0 -34
  477. package/src/tests/fourslash/findallreferences.invokedFromLibrary.fourslash.ts +0 -52
  478. package/src/tests/fourslash/findallreferences.module.nested.fourslash.ts +0 -67
  479. package/src/tests/fourslash/findallreferences.modules.duplicated.fourslash.ts +0 -59
  480. package/src/tests/fourslash/findallreferences.modules.fourslash.ts +0 -46
  481. package/src/tests/fourslash/findallreferences.modules.shadow.fourslash.ts +0 -95
  482. package/src/tests/fourslash/findallreferences.openFiles.fourslash.ts +0 -37
  483. package/src/tests/fourslash/findallreferences.parameter.fourslash.ts +0 -24
  484. package/src/tests/fourslash/findallreferences.sourceAndStub.class.fourslash.ts +0 -33
  485. package/src/tests/fourslash/findallreferences.sourceAndStub.classMethod.fourslash.ts +0 -37
  486. package/src/tests/fourslash/findallreferences.sourceAndStub.classPropertyReadOnly.fourslash.ts +0 -40
  487. package/src/tests/fourslash/findallreferences.sourceAndStub.classPropertyReadWrite.fourslash.skip.ts +0 -48
  488. package/src/tests/fourslash/findallreferences.sourceAndStub.function.fourslash.ts +0 -35
  489. package/src/tests/fourslash/findallreferences.variable.fourslash.ts +0 -24
  490. package/src/tests/fourslash/fourslash.ts +0 -411
  491. package/src/tests/fourslash/highlightreferences.attributes.fourslash.ts +0 -31
  492. package/src/tests/fourslash/hover.builtinDocstrings.fourslash.ts +0 -64
  493. package/src/tests/fourslash/hover.classNoInit.fourslash.ts +0 -14
  494. package/src/tests/fourslash/hover.docFromScr.stringFormat.fourslash.ts +0 -52
  495. package/src/tests/fourslash/hover.docFromSrc.fourslash.ts +0 -83
  496. package/src/tests/fourslash/hover.docFromSrc.pkg-vs-module1.fourslash.ts +0 -26
  497. package/src/tests/fourslash/hover.docFromSrc.pkg-vs-module2.fourslash.ts +0 -26
  498. package/src/tests/fourslash/hover.docFromSrc.relativeImport1.fourslash.ts +0 -23
  499. package/src/tests/fourslash/hover.docFromSrc.relativeImport2.fourslash.ts +0 -22
  500. package/src/tests/fourslash/hover.docFromSrc.relativeImport3.fourslash.ts +0 -46
  501. package/src/tests/fourslash/hover.docFromSrc.stubs-package.fourslash.ts +0 -29
  502. package/src/tests/fourslash/hover.docFromSrc.typeshed.fourslash.ts +0 -20
  503. package/src/tests/fourslash/hover.docstring.links.fourslash.ts +0 -12
  504. package/src/tests/fourslash/hover.docstring.overloads.fourslash.ts +0 -41
  505. package/src/tests/fourslash/hover.docstring.split.fourslash.ts +0 -24
  506. package/src/tests/fourslash/hover.fourslash.ts +0 -20
  507. package/src/tests/fourslash/hover.import.django.view.fourslash.ts +0 -27
  508. package/src/tests/fourslash/hover.import.fourslash.ts +0 -11
  509. package/src/tests/fourslash/hover.inherited.docFromSrc.fourslash.ts +0 -63
  510. package/src/tests/fourslash/hover.inherited.docFromSrcWithStub.fourslash.ts +0 -54
  511. package/src/tests/fourslash/hover.inherited.docFromStub.fourslash.ts +0 -42
  512. package/src/tests/fourslash/hover.inherited.overload.docFromSrcWithStub.fourslash.ts +0 -46
  513. package/src/tests/fourslash/hover.inherited.overload.docFromStub.fourslash.ts +0 -47
  514. package/src/tests/fourslash/hover.inherited.property.docFromSrcWithStub.fourslash.ts +0 -87
  515. package/src/tests/fourslash/hover.inherited.property.docFromStub.fourslash.ts +0 -91
  516. package/src/tests/fourslash/hover.init.fourslash.ts +0 -39
  517. package/src/tests/fourslash/hover.libCodeAndStub.fourslash.ts +0 -52
  518. package/src/tests/fourslash/hover.libCodeNoStub.fourslash.ts +0 -41
  519. package/src/tests/fourslash/hover.libStub.fourslash.ts +0 -41
  520. package/src/tests/fourslash/hover.optionalAliasParameter.fourslash.ts +0 -14
  521. package/src/tests/fourslash/hover.plainText.fourslash.ts +0 -21
  522. package/src/tests/fourslash/hover.typedDict.key.fourslash.ts +0 -51
  523. package/src/tests/fourslash/hover.variable.docString.fourslash.ts +0 -41
  524. package/src/tests/fourslash/hover.wildcardimports.fourslash.ts +0 -80
  525. package/src/tests/fourslash/import.publicSymbols.fourslash.ts +0 -65
  526. package/src/tests/fourslash/import.pytyped.dunderAll.fourslash.ts +0 -77
  527. package/src/tests/fourslash/import.pytyped.privateSymbols.fourslash.ts +0 -65
  528. package/src/tests/fourslash/import.pytyped.typeCheckingBasic.fourslash.ts +0 -38
  529. package/src/tests/fourslash/import.pytyped.typeCheckingOff.fourslash.ts +0 -38
  530. package/src/tests/fourslash/import.wildcard.fourslash.ts +0 -27
  531. package/src/tests/fourslash/importnotresolved.fourslash.ts +0 -13
  532. package/src/tests/fourslash/missingModuleSource.disablingInStrictMode.fourslash.ts +0 -20
  533. package/src/tests/fourslash/missingModuleSource.fourslash.ts +0 -14
  534. package/src/tests/fourslash/missingTypeStub.codeAction.fourslash.ts +0 -33
  535. package/src/tests/fourslash/missingTypeStub.command.multipart.fourslash.ts +0 -48
  536. package/src/tests/fourslash/missingTypeStub.command.singlefile.fourslash.ts +0 -38
  537. package/src/tests/fourslash/missingTypeStub.command.singlepart.fourslash.ts +0 -38
  538. package/src/tests/fourslash/missingTypeStub.fourslash.ts +0 -20
  539. package/src/tests/fourslash/missingTypeStub.invokeCodeAction.fourslash.ts +0 -36
  540. package/src/tests/fourslash/noerrors.fourslash.ts +0 -9
  541. package/src/tests/fourslash/orderImports1.command.fourslash.ts +0 -20
  542. package/src/tests/fourslash/orderImports2.command.fourslash.ts +0 -24
  543. package/src/tests/fourslash/rename.externallyHidden.fourslash.ts +0 -24
  544. package/src/tests/fourslash/rename.externallyHidden.params.fourslash.ts +0 -24
  545. package/src/tests/fourslash/rename.fourslash.ts +0 -29
  546. package/src/tests/fourslash/rename.library.fourslash.ts +0 -29
  547. package/src/tests/fourslash/rename.library.sourceAndStub.fourslash.ts +0 -33
  548. package/src/tests/fourslash/rename.multipleDecl.fourslash.ts +0 -21
  549. package/src/tests/fourslash/rename.sourceAndStub.fourslash.ts +0 -37
  550. package/src/tests/fourslash/rename.string.excluded.fourslash.ts +0 -43
  551. package/src/tests/fourslash/rename.string.fourslash.ts +0 -26
  552. package/src/tests/fourslash/signature.builtinDocstrings.fourslash.ts +0 -63
  553. package/src/tests/fourslash/signature.complicated.fourslash.ts +0 -100
  554. package/src/tests/fourslash/signature.cornercases.fourslash.ts +0 -23
  555. package/src/tests/fourslash/signature.docstrings.fourslash.ts +0 -43
  556. package/src/tests/fourslash/signature.docstrings.overloaded.fourslash.ts +0 -50
  557. package/src/tests/fourslash/signature.docstrings.wildcardimports.fourslash.ts +0 -122
  558. package/src/tests/fourslash/signature.overload.fourslash.ts +0 -64
  559. package/src/tests/fourslash/signature.simple.fourslash.ts +0 -104
  560. package/src/tests/harness/fourslash/fourSlashParser.ts +0 -441
  561. package/src/tests/harness/fourslash/fourSlashTypes.ts +0 -134
  562. package/src/tests/harness/fourslash/runner.ts +0 -99
  563. package/src/tests/harness/fourslash/testLanguageService.ts +0 -142
  564. package/src/tests/harness/fourslash/testState.Consts.ts +0 -29
  565. package/src/tests/harness/fourslash/testState.ts +0 -1993
  566. package/src/tests/harness/testAccessHost.ts +0 -23
  567. package/src/tests/harness/testHost.ts +0 -177
  568. package/src/tests/harness/utils.ts +0 -355
  569. package/src/tests/harness/vfs/factory.ts +0 -199
  570. package/src/tests/harness/vfs/filesystem.ts +0 -1893
  571. package/src/tests/harness/vfs/pathValidation.ts +0 -154
  572. package/src/tests/importAdder.test.ts +0 -1361
  573. package/src/tests/importResolver.test.ts +0 -534
  574. package/src/tests/importStatementUtils.test.ts +0 -526
  575. package/src/tests/indentationUtils.ptvs.test.ts +0 -388
  576. package/src/tests/indentationUtils.reindent.test.ts +0 -403
  577. package/src/tests/indentationUtils.test.ts +0 -455
  578. package/src/tests/ipythonMode.test.ts +0 -365
  579. package/src/tests/localizer.test.ts +0 -47
  580. package/src/tests/parseTreeUtils.test.ts +0 -281
  581. package/src/tests/parser.test.ts +0 -99
  582. package/src/tests/pathUtils.test.ts +0 -321
  583. package/src/tests/pyrightFileSystem.test.ts +0 -183
  584. package/src/tests/renameModule.folder.test.ts +0 -261
  585. package/src/tests/renameModule.fromImports.test.ts +0 -952
  586. package/src/tests/renameModule.imports.test.ts +0 -450
  587. package/src/tests/renameModule.misc.test.ts +0 -765
  588. package/src/tests/renameModule.relativePath.test.ts +0 -277
  589. package/src/tests/renameModuleTestUtils.ts +0 -210
  590. package/src/tests/samples/abstractClass1.py +0 -51
  591. package/src/tests/samples/abstractClass2.py +0 -25
  592. package/src/tests/samples/abstractClass3.py +0 -30
  593. package/src/tests/samples/abstractClass4.py +0 -30
  594. package/src/tests/samples/abstractClass5.py +0 -42
  595. package/src/tests/samples/abstractClass6.py +0 -25
  596. package/src/tests/samples/abstractClass7.py +0 -22
  597. package/src/tests/samples/abstractClass8.py +0 -27
  598. package/src/tests/samples/annotated1.py +0 -72
  599. package/src/tests/samples/annotatedVar1.py +0 -22
  600. package/src/tests/samples/annotatedVar2.py +0 -28
  601. package/src/tests/samples/annotatedVar3.py +0 -54
  602. package/src/tests/samples/annotatedVar4.py +0 -24
  603. package/src/tests/samples/annotatedVar5.py +0 -37
  604. package/src/tests/samples/annotatedVar6.py +0 -22
  605. package/src/tests/samples/annotatedVar7.py +0 -13
  606. package/src/tests/samples/annotatedVar8.py +0 -29
  607. package/src/tests/samples/annotations1.py +0 -98
  608. package/src/tests/samples/annotations2.py +0 -33
  609. package/src/tests/samples/annotations3.py +0 -43
  610. package/src/tests/samples/annotations4.py +0 -54
  611. package/src/tests/samples/annotations5.py +0 -9
  612. package/src/tests/samples/annotations6.py +0 -29
  613. package/src/tests/samples/assert1.py +0 -22
  614. package/src/tests/samples/assertType1.py +0 -46
  615. package/src/tests/samples/assignment1.py +0 -58
  616. package/src/tests/samples/assignment10.py +0 -14
  617. package/src/tests/samples/assignment2.py +0 -40
  618. package/src/tests/samples/assignment3.py +0 -46
  619. package/src/tests/samples/assignment4.py +0 -20
  620. package/src/tests/samples/assignment5.py +0 -16
  621. package/src/tests/samples/assignment6.py +0 -25
  622. package/src/tests/samples/assignment7.py +0 -13
  623. package/src/tests/samples/assignment8.py +0 -40
  624. package/src/tests/samples/assignment9.py +0 -25
  625. package/src/tests/samples/assignmentExpr1.py +0 -23
  626. package/src/tests/samples/assignmentExpr2.py +0 -49
  627. package/src/tests/samples/assignmentExpr3.py +0 -27
  628. package/src/tests/samples/assignmentExpr4.py +0 -49
  629. package/src/tests/samples/assignmentExpr5.py +0 -15
  630. package/src/tests/samples/assignmentExpr6.py +0 -10
  631. package/src/tests/samples/assignmentExpr7.py +0 -13
  632. package/src/tests/samples/assignmentExpr8.py +0 -11
  633. package/src/tests/samples/assignmentExpr9.py +0 -28
  634. package/src/tests/samples/async1.py +0 -49
  635. package/src/tests/samples/augmentedAssignment1.py +0 -62
  636. package/src/tests/samples/augmentedAssignment2.py +0 -23
  637. package/src/tests/samples/augmentedAssignment3.py +0 -8
  638. package/src/tests/samples/await1.py +0 -23
  639. package/src/tests/samples/await2.py +0 -25
  640. package/src/tests/samples/badToken1.py +0 -6
  641. package/src/tests/samples/builtins1.py +0 -2
  642. package/src/tests/samples/call1.py +0 -93
  643. package/src/tests/samples/call2.py +0 -118
  644. package/src/tests/samples/call3.py +0 -168
  645. package/src/tests/samples/call4.py +0 -13
  646. package/src/tests/samples/call5.py +0 -95
  647. package/src/tests/samples/call6.py +0 -35
  648. package/src/tests/samples/call7.py +0 -57
  649. package/src/tests/samples/callSite1.py +0 -6
  650. package/src/tests/samples/callSite2.py +0 -12
  651. package/src/tests/samples/callable1.py +0 -53
  652. package/src/tests/samples/callable2.py +0 -58
  653. package/src/tests/samples/callable3.py +0 -28
  654. package/src/tests/samples/callable4.py +0 -32
  655. package/src/tests/samples/callable5.py +0 -40
  656. package/src/tests/samples/callable6.py +0 -83
  657. package/src/tests/samples/callbackProtocol1.py +0 -119
  658. package/src/tests/samples/callbackProtocol2.py +0 -29
  659. package/src/tests/samples/callbackProtocol3.py +0 -23
  660. package/src/tests/samples/callbackProtocol4.py +0 -73
  661. package/src/tests/samples/callbackProtocol5.py +0 -66
  662. package/src/tests/samples/callbackProtocol6.py +0 -66
  663. package/src/tests/samples/callbackProtocol7.py +0 -16
  664. package/src/tests/samples/callbackProtocol8.py +0 -16
  665. package/src/tests/samples/capturedVariable1.py +0 -106
  666. package/src/tests/samples/circular1.py +0 -16
  667. package/src/tests/samples/circular2.py +0 -38
  668. package/src/tests/samples/circularBaseClass.py +0 -17
  669. package/src/tests/samples/classGetItem1.py +0 -30
  670. package/src/tests/samples/classVar1.py +0 -41
  671. package/src/tests/samples/classVar2.py +0 -29
  672. package/src/tests/samples/classVar3.py +0 -46
  673. package/src/tests/samples/classVar4.py +0 -36
  674. package/src/tests/samples/classes1.py +0 -50
  675. package/src/tests/samples/classes3.py +0 -48
  676. package/src/tests/samples/classes4.py +0 -15
  677. package/src/tests/samples/classes5.py +0 -260
  678. package/src/tests/samples/classes6.py +0 -16
  679. package/src/tests/samples/classes7.py +0 -18
  680. package/src/tests/samples/classes8.py +0 -47
  681. package/src/tests/samples/codeFlow1.py +0 -65
  682. package/src/tests/samples/codeFlow2.py +0 -26
  683. package/src/tests/samples/codeFlow3.py +0 -8
  684. package/src/tests/samples/codeFlow4.py +0 -133
  685. package/src/tests/samples/codeFlow5.py +0 -10
  686. package/src/tests/samples/codeFlow6.py +0 -35
  687. package/src/tests/samples/codeFlow7.py +0 -35
  688. package/src/tests/samples/comparison1.py +0 -77
  689. package/src/tests/samples/comparison2.py +0 -37
  690. package/src/tests/samples/complex1.py +0 -17
  691. package/src/tests/samples/constant1.py +0 -40
  692. package/src/tests/samples/constants1.py +0 -64
  693. package/src/tests/samples/constructor1.py +0 -30
  694. package/src/tests/samples/constructor10.py +0 -19
  695. package/src/tests/samples/constructor11.py +0 -32
  696. package/src/tests/samples/constructor12.py +0 -20
  697. package/src/tests/samples/constructor13.py +0 -15
  698. package/src/tests/samples/constructor2.py +0 -180
  699. package/src/tests/samples/constructor3.py +0 -18
  700. package/src/tests/samples/constructor4.py +0 -25
  701. package/src/tests/samples/constructor5.py +0 -25
  702. package/src/tests/samples/constructor6.py +0 -70
  703. package/src/tests/samples/constructor7.py +0 -11
  704. package/src/tests/samples/constructor8.py +0 -99
  705. package/src/tests/samples/constructor9.py +0 -19
  706. package/src/tests/samples/coroutines1.py +0 -60
  707. package/src/tests/samples/coroutines2.py +0 -20
  708. package/src/tests/samples/coroutines3.py +0 -37
  709. package/src/tests/samples/dataclass1.py +0 -44
  710. package/src/tests/samples/dataclass10.py +0 -45
  711. package/src/tests/samples/dataclass11.py +0 -53
  712. package/src/tests/samples/dataclass12.py +0 -32
  713. package/src/tests/samples/dataclass13.py +0 -42
  714. package/src/tests/samples/dataclass14.py +0 -38
  715. package/src/tests/samples/dataclass15.py +0 -58
  716. package/src/tests/samples/dataclass16.py +0 -21
  717. package/src/tests/samples/dataclass17.py +0 -46
  718. package/src/tests/samples/dataclass18.py +0 -57
  719. package/src/tests/samples/dataclass19.py +0 -44
  720. package/src/tests/samples/dataclass2.py +0 -30
  721. package/src/tests/samples/dataclass20.py +0 -71
  722. package/src/tests/samples/dataclass21.py +0 -13
  723. package/src/tests/samples/dataclass3.py +0 -18
  724. package/src/tests/samples/dataclass4.py +0 -64
  725. package/src/tests/samples/dataclass5.py +0 -81
  726. package/src/tests/samples/dataclass6.py +0 -29
  727. package/src/tests/samples/dataclass7.py +0 -93
  728. package/src/tests/samples/dataclass8.py +0 -22
  729. package/src/tests/samples/dataclass9.py +0 -24
  730. package/src/tests/samples/dataclassPostInit1.py +0 -61
  731. package/src/tests/samples/dataclassTransform1.py +0 -71
  732. package/src/tests/samples/dataclassTransform2.py +0 -78
  733. package/src/tests/samples/dataclassTransform3.py +0 -83
  734. package/src/tests/samples/dataclassTransform4.py +0 -87
  735. package/src/tests/samples/decorator1.py +0 -20
  736. package/src/tests/samples/decorator2.py +0 -31
  737. package/src/tests/samples/decorator3.py +0 -27
  738. package/src/tests/samples/decorator4.py +0 -37
  739. package/src/tests/samples/decorator5.py +0 -29
  740. package/src/tests/samples/decorator6.py +0 -34
  741. package/src/tests/samples/defaultInitializer1.py +0 -26
  742. package/src/tests/samples/deprecated1.py +0 -37
  743. package/src/tests/samples/descriptor1.py +0 -134
  744. package/src/tests/samples/descriptor2.py +0 -29
  745. package/src/tests/samples/dictionary1.py +0 -42
  746. package/src/tests/samples/dictionary2.py +0 -14
  747. package/src/tests/samples/dictionary3.py +0 -30
  748. package/src/tests/samples/dictionary4.py +0 -106
  749. package/src/tests/samples/dunderAll1.py +0 -32
  750. package/src/tests/samples/dunderAll2.py +0 -16
  751. package/src/tests/samples/dunderAll3.pyi +0 -16
  752. package/src/tests/samples/duplicateDeclaration1.py +0 -115
  753. package/src/tests/samples/duplicateDeclaration2.py +0 -45
  754. package/src/tests/samples/duplicateImports1.py +0 -13
  755. package/src/tests/samples/ellipsis1.pyi +0 -48
  756. package/src/tests/samples/emptyContainers1.py +0 -89
  757. package/src/tests/samples/enums1.py +0 -52
  758. package/src/tests/samples/enums2.py +0 -15
  759. package/src/tests/samples/enums3.py +0 -24
  760. package/src/tests/samples/enums4.py +0 -23
  761. package/src/tests/samples/enums5.py +0 -16
  762. package/src/tests/samples/enums6.py +0 -33
  763. package/src/tests/samples/enums7.py +0 -54
  764. package/src/tests/samples/enums8.py +0 -14
  765. package/src/tests/samples/expressions1.py +0 -54
  766. package/src/tests/samples/expressions2.py +0 -29
  767. package/src/tests/samples/expressions3.py +0 -26
  768. package/src/tests/samples/expressions4.py +0 -23
  769. package/src/tests/samples/expressions5.py +0 -70
  770. package/src/tests/samples/expressions6.py +0 -14
  771. package/src/tests/samples/expressions7.py +0 -40
  772. package/src/tests/samples/expressions8.py +0 -26
  773. package/src/tests/samples/expressions9.py +0 -14
  774. package/src/tests/samples/final1.py +0 -14
  775. package/src/tests/samples/final2.py +0 -86
  776. package/src/tests/samples/final3.py +0 -179
  777. package/src/tests/samples/final4.pyi +0 -21
  778. package/src/tests/samples/final5.py +0 -18
  779. package/src/tests/samples/forLoop1.py +0 -88
  780. package/src/tests/samples/forLoop2.py +0 -48
  781. package/src/tests/samples/fstring1.py +0 -66
  782. package/src/tests/samples/fstring2.py +0 -12
  783. package/src/tests/samples/fstring3.py +0 -35
  784. package/src/tests/samples/fstring4.py +0 -17
  785. package/src/tests/samples/fstring5.py +0 -17
  786. package/src/tests/samples/fstring6.py +0 -14
  787. package/src/tests/samples/function1.py +0 -12
  788. package/src/tests/samples/function10.py +0 -20
  789. package/src/tests/samples/function11.py +0 -36
  790. package/src/tests/samples/function2.py +0 -7
  791. package/src/tests/samples/function3.py +0 -82
  792. package/src/tests/samples/function4.py +0 -13
  793. package/src/tests/samples/function6.py +0 -24
  794. package/src/tests/samples/function7.py +0 -13
  795. package/src/tests/samples/function8.py +0 -38
  796. package/src/tests/samples/function9.py +0 -75
  797. package/src/tests/samples/functionAnnotation1.py +0 -61
  798. package/src/tests/samples/functionAnnotation2.py +0 -26
  799. package/src/tests/samples/functionAnnotation3.py +0 -37
  800. package/src/tests/samples/functionAnnotation4.py +0 -22
  801. package/src/tests/samples/functionMember1.py +0 -18
  802. package/src/tests/samples/functionMember2.py +0 -45
  803. package/src/tests/samples/generators1.py +0 -122
  804. package/src/tests/samples/generators10.py +0 -18
  805. package/src/tests/samples/generators11.py +0 -27
  806. package/src/tests/samples/generators12.py +0 -25
  807. package/src/tests/samples/generators13.py +0 -65
  808. package/src/tests/samples/generators14.py +0 -19
  809. package/src/tests/samples/generators15.py +0 -26
  810. package/src/tests/samples/generators2.py +0 -31
  811. package/src/tests/samples/generators3.py +0 -42
  812. package/src/tests/samples/generators4.py +0 -33
  813. package/src/tests/samples/generators5.py +0 -24
  814. package/src/tests/samples/generators6.py +0 -14
  815. package/src/tests/samples/generators7.py +0 -18
  816. package/src/tests/samples/generators8.py +0 -12
  817. package/src/tests/samples/generators9.py +0 -19
  818. package/src/tests/samples/generic1.py +0 -41
  819. package/src/tests/samples/genericTypes1.py +0 -12
  820. package/src/tests/samples/genericTypes10.py +0 -38
  821. package/src/tests/samples/genericTypes11.py +0 -26
  822. package/src/tests/samples/genericTypes12.py +0 -14
  823. package/src/tests/samples/genericTypes13.py +0 -27
  824. package/src/tests/samples/genericTypes14.py +0 -22
  825. package/src/tests/samples/genericTypes15.py +0 -13
  826. package/src/tests/samples/genericTypes16.py +0 -15
  827. package/src/tests/samples/genericTypes17.py +0 -24
  828. package/src/tests/samples/genericTypes18.py +0 -135
  829. package/src/tests/samples/genericTypes19.py +0 -32
  830. package/src/tests/samples/genericTypes2.py +0 -40
  831. package/src/tests/samples/genericTypes20.py +0 -44
  832. package/src/tests/samples/genericTypes21.py +0 -29
  833. package/src/tests/samples/genericTypes22.py +0 -23
  834. package/src/tests/samples/genericTypes23.py +0 -27
  835. package/src/tests/samples/genericTypes24.py +0 -32
  836. package/src/tests/samples/genericTypes25.py +0 -37
  837. package/src/tests/samples/genericTypes26.py +0 -31
  838. package/src/tests/samples/genericTypes27.py +0 -14
  839. package/src/tests/samples/genericTypes28.py +0 -51
  840. package/src/tests/samples/genericTypes29.py +0 -24
  841. package/src/tests/samples/genericTypes3.py +0 -13
  842. package/src/tests/samples/genericTypes30.py +0 -32
  843. package/src/tests/samples/genericTypes31.py +0 -30
  844. package/src/tests/samples/genericTypes32.py +0 -25
  845. package/src/tests/samples/genericTypes33.py +0 -46
  846. package/src/tests/samples/genericTypes34.py +0 -54
  847. package/src/tests/samples/genericTypes35.py +0 -45
  848. package/src/tests/samples/genericTypes36.py +0 -35
  849. package/src/tests/samples/genericTypes37.py +0 -26
  850. package/src/tests/samples/genericTypes38.py +0 -15
  851. package/src/tests/samples/genericTypes39.py +0 -82
  852. package/src/tests/samples/genericTypes4.py +0 -37
  853. package/src/tests/samples/genericTypes40.py +0 -38
  854. package/src/tests/samples/genericTypes41.py +0 -16
  855. package/src/tests/samples/genericTypes42.py +0 -32
  856. package/src/tests/samples/genericTypes43.py +0 -24
  857. package/src/tests/samples/genericTypes44.py +0 -33
  858. package/src/tests/samples/genericTypes45.py +0 -43
  859. package/src/tests/samples/genericTypes46.py +0 -66
  860. package/src/tests/samples/genericTypes47.py +0 -39
  861. package/src/tests/samples/genericTypes48.py +0 -18
  862. package/src/tests/samples/genericTypes49.py +0 -41
  863. package/src/tests/samples/genericTypes5.py +0 -42
  864. package/src/tests/samples/genericTypes50.py +0 -62
  865. package/src/tests/samples/genericTypes51.py +0 -55
  866. package/src/tests/samples/genericTypes52.py +0 -34
  867. package/src/tests/samples/genericTypes53.py +0 -42
  868. package/src/tests/samples/genericTypes54.py +0 -31
  869. package/src/tests/samples/genericTypes55.py +0 -61
  870. package/src/tests/samples/genericTypes56.py +0 -19
  871. package/src/tests/samples/genericTypes57.py +0 -30
  872. package/src/tests/samples/genericTypes58.py +0 -52
  873. package/src/tests/samples/genericTypes59.py +0 -71
  874. package/src/tests/samples/genericTypes6.py +0 -49
  875. package/src/tests/samples/genericTypes60.py +0 -27
  876. package/src/tests/samples/genericTypes61.py +0 -34
  877. package/src/tests/samples/genericTypes62.py +0 -26
  878. package/src/tests/samples/genericTypes63.py +0 -32
  879. package/src/tests/samples/genericTypes64.py +0 -16
  880. package/src/tests/samples/genericTypes65.py +0 -15
  881. package/src/tests/samples/genericTypes66.py +0 -30
  882. package/src/tests/samples/genericTypes67.py +0 -57
  883. package/src/tests/samples/genericTypes68.py +0 -14
  884. package/src/tests/samples/genericTypes69.py +0 -45
  885. package/src/tests/samples/genericTypes7.py +0 -24
  886. package/src/tests/samples/genericTypes70.py +0 -31
  887. package/src/tests/samples/genericTypes71.py +0 -72
  888. package/src/tests/samples/genericTypes72.py +0 -24
  889. package/src/tests/samples/genericTypes73.py +0 -14
  890. package/src/tests/samples/genericTypes74.py +0 -23
  891. package/src/tests/samples/genericTypes75.py +0 -45
  892. package/src/tests/samples/genericTypes76.py +0 -107
  893. package/src/tests/samples/genericTypes77.py +0 -26
  894. package/src/tests/samples/genericTypes78.py +0 -23
  895. package/src/tests/samples/genericTypes79.py +0 -37
  896. package/src/tests/samples/genericTypes8.py +0 -26
  897. package/src/tests/samples/genericTypes80.py +0 -10
  898. package/src/tests/samples/genericTypes81.py +0 -32
  899. package/src/tests/samples/genericTypes82.py +0 -19
  900. package/src/tests/samples/genericTypes83.py +0 -28
  901. package/src/tests/samples/genericTypes84.py +0 -11
  902. package/src/tests/samples/genericTypes85.py +0 -20
  903. package/src/tests/samples/genericTypes86.py +0 -15
  904. package/src/tests/samples/genericTypes87.py +0 -21
  905. package/src/tests/samples/genericTypes88.py +0 -25
  906. package/src/tests/samples/genericTypes89.py +0 -17
  907. package/src/tests/samples/genericTypes9.py +0 -109
  908. package/src/tests/samples/genericTypes90.py +0 -12
  909. package/src/tests/samples/genericTypes91.py +0 -20
  910. package/src/tests/samples/import1.py +0 -7
  911. package/src/tests/samples/import10.py +0 -11
  912. package/src/tests/samples/import11.py +0 -11
  913. package/src/tests/samples/import12.py +0 -5
  914. package/src/tests/samples/import13.py +0 -6
  915. package/src/tests/samples/import14.py +0 -10
  916. package/src/tests/samples/import2.py +0 -27
  917. package/src/tests/samples/import3.py +0 -8
  918. package/src/tests/samples/import4.py +0 -15
  919. package/src/tests/samples/import5.py +0 -6
  920. package/src/tests/samples/import6.py +0 -17
  921. package/src/tests/samples/import7.py +0 -14
  922. package/src/tests/samples/import8.py +0 -7
  923. package/src/tests/samples/import9.py +0 -7
  924. package/src/tests/samples/inconsistentConstructor1.py +0 -23
  925. package/src/tests/samples/inconsistentSpaceTab1.py +0 -9
  926. package/src/tests/samples/inconsistentSpaceTab2.py +0 -10
  927. package/src/tests/samples/index1.py +0 -97
  928. package/src/tests/samples/inferredTypes1.py +0 -25
  929. package/src/tests/samples/initVar1.py +0 -23
  930. package/src/tests/samples/initsubclass1.py +0 -46
  931. package/src/tests/samples/initsubclass2.py +0 -16
  932. package/src/tests/samples/isinstance1.py +0 -57
  933. package/src/tests/samples/isinstance10.py +0 -15
  934. package/src/tests/samples/isinstance2.py +0 -28
  935. package/src/tests/samples/isinstance3.py +0 -59
  936. package/src/tests/samples/isinstance4.py +0 -57
  937. package/src/tests/samples/isinstance5.py +0 -8
  938. package/src/tests/samples/isinstance6.py +0 -19
  939. package/src/tests/samples/isinstance7.py +0 -42
  940. package/src/tests/samples/isinstance9.py +0 -26
  941. package/src/tests/samples/kwargsUnpack1.py +0 -116
  942. package/src/tests/samples/lambda1.py +0 -77
  943. package/src/tests/samples/lambda2.py +0 -26
  944. package/src/tests/samples/lambda3.py +0 -34
  945. package/src/tests/samples/lambda4.py +0 -70
  946. package/src/tests/samples/lambda5.py +0 -23
  947. package/src/tests/samples/lambda6.py +0 -15
  948. package/src/tests/samples/lines1.py +0 -14
  949. package/src/tests/samples/list1.py +0 -90
  950. package/src/tests/samples/listComprehension1.py +0 -45
  951. package/src/tests/samples/listComprehension2.py +0 -17
  952. package/src/tests/samples/listComprehension3.py +0 -12
  953. package/src/tests/samples/listComprehension4.py +0 -15
  954. package/src/tests/samples/listComprehension5.py +0 -20
  955. package/src/tests/samples/listComprehension6.py +0 -14
  956. package/src/tests/samples/listComprehension7.py +0 -15
  957. package/src/tests/samples/listComprehension8.py +0 -15
  958. package/src/tests/samples/literalString1.py +0 -43
  959. package/src/tests/samples/literals1.py +0 -48
  960. package/src/tests/samples/literals2.py +0 -30
  961. package/src/tests/samples/literals3.py +0 -40
  962. package/src/tests/samples/literals4.py +0 -10
  963. package/src/tests/samples/literals5.py +0 -28
  964. package/src/tests/samples/literals6.py +0 -90
  965. package/src/tests/samples/literals7.py +0 -38
  966. package/src/tests/samples/loops1.py +0 -45
  967. package/src/tests/samples/loops10.py +0 -11
  968. package/src/tests/samples/loops11.py +0 -22
  969. package/src/tests/samples/loops12.py +0 -18
  970. package/src/tests/samples/loops13.py +0 -13
  971. package/src/tests/samples/loops14.py +0 -22
  972. package/src/tests/samples/loops15.py +0 -22
  973. package/src/tests/samples/loops16.py +0 -322
  974. package/src/tests/samples/loops17.py +0 -9
  975. package/src/tests/samples/loops18.py +0 -23
  976. package/src/tests/samples/loops19.py +0 -14
  977. package/src/tests/samples/loops2.py +0 -25
  978. package/src/tests/samples/loops20.py +0 -41
  979. package/src/tests/samples/loops21.py +0 -18
  980. package/src/tests/samples/loops22.py +0 -21
  981. package/src/tests/samples/loops23.py +0 -16
  982. package/src/tests/samples/loops24.py +0 -12
  983. package/src/tests/samples/loops25.py +0 -45
  984. package/src/tests/samples/loops26.py +0 -12
  985. package/src/tests/samples/loops3.py +0 -11
  986. package/src/tests/samples/loops4.py +0 -17
  987. package/src/tests/samples/loops5.py +0 -14
  988. package/src/tests/samples/loops6.py +0 -25
  989. package/src/tests/samples/loops7.py +0 -14
  990. package/src/tests/samples/loops8.py +0 -17
  991. package/src/tests/samples/loops9.py +0 -25
  992. package/src/tests/samples/match1.py +0 -190
  993. package/src/tests/samples/match10.py +0 -67
  994. package/src/tests/samples/match2.py +0 -340
  995. package/src/tests/samples/match3.py +0 -364
  996. package/src/tests/samples/match4.py +0 -100
  997. package/src/tests/samples/match5.py +0 -70
  998. package/src/tests/samples/match6.py +0 -64
  999. package/src/tests/samples/match7.py +0 -65
  1000. package/src/tests/samples/match8.py +0 -19
  1001. package/src/tests/samples/match9.py +0 -53
  1002. package/src/tests/samples/maxParseDepth1.py +0 -499
  1003. package/src/tests/samples/maxParseDepth2.py +0 -16
  1004. package/src/tests/samples/memberAccess1.py +0 -70
  1005. package/src/tests/samples/memberAccess10.py +0 -65
  1006. package/src/tests/samples/memberAccess11.py +0 -37
  1007. package/src/tests/samples/memberAccess12.py +0 -36
  1008. package/src/tests/samples/memberAccess13.py +0 -17
  1009. package/src/tests/samples/memberAccess14.py +0 -63
  1010. package/src/tests/samples/memberAccess15.py +0 -20
  1011. package/src/tests/samples/memberAccess16.py +0 -12
  1012. package/src/tests/samples/memberAccess17.py +0 -31
  1013. package/src/tests/samples/memberAccess18.py +0 -31
  1014. package/src/tests/samples/memberAccess2.py +0 -45
  1015. package/src/tests/samples/memberAccess3.py +0 -64
  1016. package/src/tests/samples/memberAccess4.py +0 -91
  1017. package/src/tests/samples/memberAccess5.py +0 -26
  1018. package/src/tests/samples/memberAccess6.py +0 -52
  1019. package/src/tests/samples/memberAccess7.py +0 -36
  1020. package/src/tests/samples/memberAccess8.py +0 -75
  1021. package/src/tests/samples/memberAccess9.py +0 -11
  1022. package/src/tests/samples/metaclass1.py +0 -7
  1023. package/src/tests/samples/metaclass2.py +0 -35
  1024. package/src/tests/samples/metaclass3.py +0 -43
  1025. package/src/tests/samples/metaclass4.py +0 -26
  1026. package/src/tests/samples/metaclass5.py +0 -33
  1027. package/src/tests/samples/metaclass6.py +0 -15
  1028. package/src/tests/samples/metaclass7.py +0 -38
  1029. package/src/tests/samples/metaclass8.py +0 -20
  1030. package/src/tests/samples/metaclass9.py +0 -77
  1031. package/src/tests/samples/methodOverride1.py +0 -507
  1032. package/src/tests/samples/methodOverride2.py +0 -74
  1033. package/src/tests/samples/methodOverride3.py +0 -111
  1034. package/src/tests/samples/methodOverride4.py +0 -36
  1035. package/src/tests/samples/missingSuper1.py +0 -73
  1036. package/src/tests/samples/module1.py +0 -13
  1037. package/src/tests/samples/module2.py +0 -7
  1038. package/src/tests/samples/mro1.py +0 -16
  1039. package/src/tests/samples/mro2.py +0 -45
  1040. package/src/tests/samples/mro3.py +0 -30
  1041. package/src/tests/samples/mro4.py +0 -30
  1042. package/src/tests/samples/nameBindings1.py +0 -48
  1043. package/src/tests/samples/nameBindings2.py +0 -9
  1044. package/src/tests/samples/nameBindings3.py +0 -36
  1045. package/src/tests/samples/nameBindings4.py +0 -10
  1046. package/src/tests/samples/nameBindings5.py +0 -53
  1047. package/src/tests/samples/namedTuples1.py +0 -103
  1048. package/src/tests/samples/namedTuples2.py +0 -56
  1049. package/src/tests/samples/namedTuples3.py +0 -15
  1050. package/src/tests/samples/namedTuples4.py +0 -24
  1051. package/src/tests/samples/namedTuples5.py +0 -15
  1052. package/src/tests/samples/namedTuples6.py +0 -31
  1053. package/src/tests/samples/namedTuples7.py +0 -27
  1054. package/src/tests/samples/never1.py +0 -12
  1055. package/src/tests/samples/never2.py +0 -43
  1056. package/src/tests/samples/newType1.py +0 -34
  1057. package/src/tests/samples/newType2.py +0 -25
  1058. package/src/tests/samples/newType3.py +0 -34
  1059. package/src/tests/samples/newType4.py +0 -8
  1060. package/src/tests/samples/none1.py +0 -29
  1061. package/src/tests/samples/none2.py +0 -22
  1062. package/src/tests/samples/noreturn1.py +0 -78
  1063. package/src/tests/samples/noreturn2.py +0 -37
  1064. package/src/tests/samples/noreturn3.py +0 -16
  1065. package/src/tests/samples/noreturn4.py +0 -29
  1066. package/src/tests/samples/operators1.py +0 -101
  1067. package/src/tests/samples/operators2.py +0 -30
  1068. package/src/tests/samples/operators3.py +0 -8
  1069. package/src/tests/samples/operators4.py +0 -22
  1070. package/src/tests/samples/operators5.py +0 -5
  1071. package/src/tests/samples/operators6.py +0 -10
  1072. package/src/tests/samples/operators7.py +0 -24
  1073. package/src/tests/samples/operators8.py +0 -125
  1074. package/src/tests/samples/optional1.py +0 -77
  1075. package/src/tests/samples/optional2.py +0 -23
  1076. package/src/tests/samples/overload1.py +0 -50
  1077. package/src/tests/samples/overload10.py +0 -48
  1078. package/src/tests/samples/overload2.py +0 -37
  1079. package/src/tests/samples/overload3.py +0 -29
  1080. package/src/tests/samples/overload4.py +0 -46
  1081. package/src/tests/samples/overload5.py +0 -333
  1082. package/src/tests/samples/overload6.py +0 -64
  1083. package/src/tests/samples/overload7.py +0 -376
  1084. package/src/tests/samples/overload8.py +0 -89
  1085. package/src/tests/samples/overload9.py +0 -19
  1086. package/src/tests/samples/package1/__init__.py +0 -3
  1087. package/src/tests/samples/package1/psyche/pysche.py +0 -4
  1088. package/src/tests/samples/package1/psyche.py +0 -4
  1089. package/src/tests/samples/package1/sub/__init__.py +0 -5
  1090. package/src/tests/samples/package1/sub.py +0 -4
  1091. package/src/tests/samples/package1/sub.pyi +0 -2
  1092. package/src/tests/samples/paramInference1.py +0 -27
  1093. package/src/tests/samples/paramNames1.py +0 -39
  1094. package/src/tests/samples/paramSpec1.py +0 -64
  1095. package/src/tests/samples/paramSpec10.py +0 -57
  1096. package/src/tests/samples/paramSpec11.py +0 -36
  1097. package/src/tests/samples/paramSpec12.py +0 -88
  1098. package/src/tests/samples/paramSpec13.py +0 -112
  1099. package/src/tests/samples/paramSpec14.py +0 -30
  1100. package/src/tests/samples/paramSpec15.py +0 -28
  1101. package/src/tests/samples/paramSpec16.py +0 -28
  1102. package/src/tests/samples/paramSpec17.py +0 -34
  1103. package/src/tests/samples/paramSpec18.py +0 -43
  1104. package/src/tests/samples/paramSpec19.py +0 -93
  1105. package/src/tests/samples/paramSpec2.py +0 -29
  1106. package/src/tests/samples/paramSpec20.py +0 -87
  1107. package/src/tests/samples/paramSpec21.py +0 -58
  1108. package/src/tests/samples/paramSpec22.py +0 -26
  1109. package/src/tests/samples/paramSpec23.py +0 -21
  1110. package/src/tests/samples/paramSpec24.py +0 -67
  1111. package/src/tests/samples/paramSpec25.py +0 -36
  1112. package/src/tests/samples/paramSpec26.py +0 -25
  1113. package/src/tests/samples/paramSpec27.py +0 -57
  1114. package/src/tests/samples/paramSpec28.py +0 -39
  1115. package/src/tests/samples/paramSpec29.py +0 -37
  1116. package/src/tests/samples/paramSpec3.py +0 -71
  1117. package/src/tests/samples/paramSpec30.py +0 -49
  1118. package/src/tests/samples/paramSpec31.py +0 -16
  1119. package/src/tests/samples/paramSpec32.py +0 -57
  1120. package/src/tests/samples/paramSpec33.py +0 -29
  1121. package/src/tests/samples/paramSpec34.py +0 -29
  1122. package/src/tests/samples/paramSpec35.py +0 -24
  1123. package/src/tests/samples/paramSpec36.py +0 -43
  1124. package/src/tests/samples/paramSpec37.py +0 -25
  1125. package/src/tests/samples/paramSpec4.py +0 -109
  1126. package/src/tests/samples/paramSpec5.py +0 -29
  1127. package/src/tests/samples/paramSpec6.py +0 -17
  1128. package/src/tests/samples/paramSpec7.py +0 -22
  1129. package/src/tests/samples/paramSpec8.py +0 -45
  1130. package/src/tests/samples/paramSpec9.py +0 -57
  1131. package/src/tests/samples/paramType1.py +0 -71
  1132. package/src/tests/samples/parameters1.py +0 -16
  1133. package/src/tests/samples/partial1.py +0 -163
  1134. package/src/tests/samples/partial2.py +0 -31
  1135. package/src/tests/samples/private1.py +0 -55
  1136. package/src/tests/samples/private2.py +0 -11
  1137. package/src/tests/samples/project1/pyrightconfig.json +0 -5
  1138. package/src/tests/samples/project1/sample1.py +0 -0
  1139. package/src/tests/samples/project1/subfolder1/sample2.py +0 -0
  1140. package/src/tests/samples/project1/subfolder1/subfolder1-1/sample3.py +0 -0
  1141. package/src/tests/samples/project2/pyrightconfig.json +0 -3
  1142. package/src/tests/samples/project3/pyrightconfig.json +0 -7
  1143. package/src/tests/samples/project4/presentfile.py +0 -0
  1144. package/src/tests/samples/project4/pyrightconfig.json +0 -11
  1145. package/src/tests/samples/project4/subfolder/presentfile2.py +0 -0
  1146. package/src/tests/samples/project4/subfolder/presentfile3.py +0 -0
  1147. package/src/tests/samples/project5/pyrightconfig.json +0 -4
  1148. package/src/tests/samples/project6/app1.py +0 -0
  1149. package/src/tests/samples/project6/app2.py +0 -0
  1150. package/src/tests/samples/project6/projectA/foo/__init__.py +0 -0
  1151. package/src/tests/samples/project6/projectA/foo/bar/__init__.py +0 -0
  1152. package/src/tests/samples/project6/projectB/foo/__init__.py +0 -0
  1153. package/src/tests/samples/project6/projectB/foo/baz/__init__.py +0 -0
  1154. package/src/tests/samples/project_src/src/module1.py +0 -0
  1155. package/src/tests/samples/project_src_is_pkg/src/__init__.py +0 -0
  1156. package/src/tests/samples/project_src_is_pkg/src/module1.py +0 -0
  1157. package/src/tests/samples/project_src_with_config_extra_paths/pyrightconfig.json +0 -3
  1158. package/src/tests/samples/project_src_with_config_extra_paths/src/module1.py +0 -0
  1159. package/src/tests/samples/project_src_with_config_no_extra_paths/pyrightconfig.json +0 -2
  1160. package/src/tests/samples/project_src_with_config_no_extra_paths/src/module1.py +0 -0
  1161. package/src/tests/samples/project_src_with_extra_paths/src/_vendored/vendored1.py +0 -1
  1162. package/src/tests/samples/project_src_with_extra_paths/src/module1.py +0 -2
  1163. package/src/tests/samples/project_with_pyproject_toml/pyproject.toml +0 -7
  1164. package/src/tests/samples/project_with_venv_auto_detect_exclude/myvenv/Lib/site-packages/library1.py +0 -0
  1165. package/src/tests/samples/project_with_venv_auto_detect_exclude/myvenv/pyvenv.cfg +0 -0
  1166. package/src/tests/samples/project_with_venv_auto_detect_exclude/pyrightconfig.json +0 -2
  1167. package/src/tests/samples/project_with_venv_auto_detect_exclude/sample1.py +0 -0
  1168. package/src/tests/samples/project_with_venv_auto_detect_exclude/subfolder1/sample2.py +0 -0
  1169. package/src/tests/samples/project_with_venv_auto_detect_exclude/subfolder1/subfolder1-1/sample3.py +0 -0
  1170. package/src/tests/samples/project_with_venv_auto_detect_include/excluded/excluded1.py +0 -0
  1171. package/src/tests/samples/project_with_venv_auto_detect_include/myvenv/Lib/site-packages/library1.py +0 -0
  1172. package/src/tests/samples/project_with_venv_auto_detect_include/myvenv/pyvenv.cfg +0 -0
  1173. package/src/tests/samples/project_with_venv_auto_detect_include/pyrightconfig.json +0 -3
  1174. package/src/tests/samples/project_with_venv_auto_detect_include/sample1.py +0 -0
  1175. package/src/tests/samples/project_with_venv_auto_detect_include/subfolder1/sample2.py +0 -0
  1176. package/src/tests/samples/project_with_venv_auto_detect_include/subfolder1/subfolder1-1/sample3.py +0 -0
  1177. package/src/tests/samples/properties1.py +0 -64
  1178. package/src/tests/samples/properties10.py +0 -19
  1179. package/src/tests/samples/properties11.py +0 -45
  1180. package/src/tests/samples/properties12.py +0 -23
  1181. package/src/tests/samples/properties13.py +0 -15
  1182. package/src/tests/samples/properties2.py +0 -34
  1183. package/src/tests/samples/properties3.py +0 -93
  1184. package/src/tests/samples/properties4.py +0 -17
  1185. package/src/tests/samples/properties5.py +0 -29
  1186. package/src/tests/samples/properties6.py +0 -35
  1187. package/src/tests/samples/properties7.py +0 -30
  1188. package/src/tests/samples/properties8.py +0 -26
  1189. package/src/tests/samples/properties9.py +0 -24
  1190. package/src/tests/samples/protocol1.py +0 -132
  1191. package/src/tests/samples/protocol10.py +0 -36
  1192. package/src/tests/samples/protocol11.py +0 -32
  1193. package/src/tests/samples/protocol12.py +0 -12
  1194. package/src/tests/samples/protocol13.py +0 -26
  1195. package/src/tests/samples/protocol14.py +0 -27
  1196. package/src/tests/samples/protocol15.py +0 -27
  1197. package/src/tests/samples/protocol16.py +0 -22
  1198. package/src/tests/samples/protocol17.py +0 -94
  1199. package/src/tests/samples/protocol18.py +0 -27
  1200. package/src/tests/samples/protocol19.py +0 -39
  1201. package/src/tests/samples/protocol2.py +0 -38
  1202. package/src/tests/samples/protocol20.py +0 -22
  1203. package/src/tests/samples/protocol21.py +0 -26
  1204. package/src/tests/samples/protocol22.py +0 -43
  1205. package/src/tests/samples/protocol23.py +0 -41
  1206. package/src/tests/samples/protocol24.py +0 -74
  1207. package/src/tests/samples/protocol25.py +0 -31
  1208. package/src/tests/samples/protocol26.py +0 -40
  1209. package/src/tests/samples/protocol27.py +0 -76
  1210. package/src/tests/samples/protocol28.py +0 -32
  1211. package/src/tests/samples/protocol29.py +0 -26
  1212. package/src/tests/samples/protocol3.py +0 -110
  1213. package/src/tests/samples/protocol30.py +0 -30
  1214. package/src/tests/samples/protocol31.py +0 -22
  1215. package/src/tests/samples/protocol32.py +0 -67
  1216. package/src/tests/samples/protocol33.py +0 -39
  1217. package/src/tests/samples/protocol34.py +0 -21
  1218. package/src/tests/samples/protocol4.py +0 -22
  1219. package/src/tests/samples/protocol5.py +0 -25
  1220. package/src/tests/samples/protocol6.py +0 -65
  1221. package/src/tests/samples/protocol7.py +0 -24
  1222. package/src/tests/samples/protocol8.py +0 -34
  1223. package/src/tests/samples/protocol9.py +0 -35
  1224. package/src/tests/samples/protocolModule1.py +0 -15
  1225. package/src/tests/samples/protocolModule2.py +0 -83
  1226. package/src/tests/samples/protocolModule3.py +0 -14
  1227. package/src/tests/samples/protocolModule4.py +0 -26
  1228. package/src/tests/samples/pseudoGeneric1.py +0 -20
  1229. package/src/tests/samples/pyrightIgnore1.py +0 -11
  1230. package/src/tests/samples/pyrightIgnore2.py +0 -24
  1231. package/src/tests/samples/python2.py +0 -31
  1232. package/src/tests/samples/recursiveTypeAlias1.py +0 -79
  1233. package/src/tests/samples/recursiveTypeAlias2.py +0 -32
  1234. package/src/tests/samples/recursiveTypeAlias3.py +0 -26
  1235. package/src/tests/samples/recursiveTypeAlias4.py +0 -55
  1236. package/src/tests/samples/recursiveTypeAlias5.pyi +0 -10
  1237. package/src/tests/samples/recursiveTypeAlias6.py +0 -25
  1238. package/src/tests/samples/recursiveTypeAlias7.py +0 -15
  1239. package/src/tests/samples/recursiveTypeAlias8.py +0 -38
  1240. package/src/tests/samples/recursiveTypeAlias9.py +0 -22
  1241. package/src/tests/samples/required1.py +0 -47
  1242. package/src/tests/samples/required2.py +0 -56
  1243. package/src/tests/samples/required3.py +0 -22
  1244. package/src/tests/samples/returnTypes1.py +0 -26
  1245. package/src/tests/samples/revealedType1.py +0 -30
  1246. package/src/tests/samples/sample1.py +0 -6
  1247. package/src/tests/samples/self1.py +0 -93
  1248. package/src/tests/samples/self2.py +0 -195
  1249. package/src/tests/samples/self3.py +0 -9
  1250. package/src/tests/samples/self4.py +0 -18
  1251. package/src/tests/samples/self5.py +0 -26
  1252. package/src/tests/samples/setComprehension1.py +0 -34
  1253. package/src/tests/samples/slots1.py +0 -63
  1254. package/src/tests/samples/slots2.py +0 -38
  1255. package/src/tests/samples/slots3.py +0 -35
  1256. package/src/tests/samples/specialization1.py +0 -78
  1257. package/src/tests/samples/specialization2.py +0 -51
  1258. package/src/tests/samples/staticExpressions1.py +0 -52
  1259. package/src/tests/samples/strings1.py +0 -22
  1260. package/src/tests/samples/subscript1.py +0 -74
  1261. package/src/tests/samples/subscript2.py +0 -55
  1262. package/src/tests/samples/subscript3.py +0 -135
  1263. package/src/tests/samples/suiteExpectedColon1.py +0 -4
  1264. package/src/tests/samples/suiteExpectedColon2.py +0 -2
  1265. package/src/tests/samples/suiteExpectedColon3.py +0 -2
  1266. package/src/tests/samples/super1.py +0 -57
  1267. package/src/tests/samples/super2.py +0 -29
  1268. package/src/tests/samples/super3.py +0 -10
  1269. package/src/tests/samples/super4.py +0 -24
  1270. package/src/tests/samples/super5.py +0 -28
  1271. package/src/tests/samples/super6.py +0 -17
  1272. package/src/tests/samples/super7.py +0 -52
  1273. package/src/tests/samples/super8.py +0 -7
  1274. package/src/tests/samples/super9.py +0 -36
  1275. package/src/tests/samples/test_file1.py +0 -0
  1276. package/src/tests/samples/threePartVersion1.py +0 -33
  1277. package/src/tests/samples/totalOrdering1.py +0 -52
  1278. package/src/tests/samples/tryExcept1.py +0 -39
  1279. package/src/tests/samples/tryExcept10.py +0 -12
  1280. package/src/tests/samples/tryExcept2.py +0 -16
  1281. package/src/tests/samples/tryExcept3.py +0 -12
  1282. package/src/tests/samples/tryExcept4.py +0 -28
  1283. package/src/tests/samples/tryExcept5.py +0 -30
  1284. package/src/tests/samples/tryExcept6.py +0 -27
  1285. package/src/tests/samples/tryExcept7.py +0 -17
  1286. package/src/tests/samples/tryExcept8.py +0 -69
  1287. package/src/tests/samples/tryExcept9.py +0 -42
  1288. package/src/tests/samples/tupleUnpack1.py +0 -63
  1289. package/src/tests/samples/tupleUnpack2.py +0 -56
  1290. package/src/tests/samples/tupleUnpack3.py +0 -28
  1291. package/src/tests/samples/tuples1.py +0 -185
  1292. package/src/tests/samples/tuples10.py +0 -30
  1293. package/src/tests/samples/tuples11.py +0 -21
  1294. package/src/tests/samples/tuples12.py +0 -31
  1295. package/src/tests/samples/tuples13.py +0 -26
  1296. package/src/tests/samples/tuples15.py +0 -16
  1297. package/src/tests/samples/tuples16.py +0 -14
  1298. package/src/tests/samples/tuples2.py +0 -23
  1299. package/src/tests/samples/tuples3.py +0 -15
  1300. package/src/tests/samples/tuples4.py +0 -21
  1301. package/src/tests/samples/tuples5.py +0 -16
  1302. package/src/tests/samples/tuples6.py +0 -56
  1303. package/src/tests/samples/tuples7.py +0 -61
  1304. package/src/tests/samples/tuples8.py +0 -98
  1305. package/src/tests/samples/tuples9.py +0 -17
  1306. package/src/tests/samples/typeAlias1.py +0 -37
  1307. package/src/tests/samples/typeAlias10.py +0 -45
  1308. package/src/tests/samples/typeAlias11.py +0 -37
  1309. package/src/tests/samples/typeAlias12.py +0 -20
  1310. package/src/tests/samples/typeAlias13.py +0 -53
  1311. package/src/tests/samples/typeAlias14.py +0 -29
  1312. package/src/tests/samples/typeAlias15.py +0 -24
  1313. package/src/tests/samples/typeAlias16.py +0 -24
  1314. package/src/tests/samples/typeAlias2.py +0 -26
  1315. package/src/tests/samples/typeAlias3.py +0 -35
  1316. package/src/tests/samples/typeAlias4.py +0 -68
  1317. package/src/tests/samples/typeAlias5.py +0 -56
  1318. package/src/tests/samples/typeAlias6.py +0 -51
  1319. package/src/tests/samples/typeAlias7.py +0 -50
  1320. package/src/tests/samples/typeAlias8.py +0 -24
  1321. package/src/tests/samples/typeAlias9.py +0 -35
  1322. package/src/tests/samples/typeGuard1.py +0 -68
  1323. package/src/tests/samples/typeGuard2.py +0 -58
  1324. package/src/tests/samples/typeGuard3.py +0 -98
  1325. package/src/tests/samples/typeIgnore1.py +0 -10
  1326. package/src/tests/samples/typeIgnore2.py +0 -20
  1327. package/src/tests/samples/typeIgnore3.py +0 -22
  1328. package/src/tests/samples/typeIgnore4.py +0 -10
  1329. package/src/tests/samples/typeIgnore5.py +0 -7
  1330. package/src/tests/samples/typeNarrowing1.py +0 -56
  1331. package/src/tests/samples/typeNarrowing2.py +0 -14
  1332. package/src/tests/samples/typeNarrowing3.py +0 -47
  1333. package/src/tests/samples/typeNarrowing4.py +0 -24
  1334. package/src/tests/samples/typeNarrowing5.py +0 -19
  1335. package/src/tests/samples/typeNarrowing6.py +0 -27
  1336. package/src/tests/samples/typeNarrowing7.py +0 -71
  1337. package/src/tests/samples/typeNarrowingAssert1.py +0 -24
  1338. package/src/tests/samples/typeNarrowingCallable1.py +0 -78
  1339. package/src/tests/samples/typeNarrowingEnum1.py +0 -58
  1340. package/src/tests/samples/typeNarrowingEnum2.py +0 -71
  1341. package/src/tests/samples/typeNarrowingFalsy1.py +0 -50
  1342. package/src/tests/samples/typeNarrowingIn1.py +0 -97
  1343. package/src/tests/samples/typeNarrowingIsNone1.py +0 -56
  1344. package/src/tests/samples/typeNarrowingIsNone2.py +0 -8
  1345. package/src/tests/samples/typeNarrowingIsNoneTuple1.py +0 -42
  1346. package/src/tests/samples/typeNarrowingIsNoneTuple2.py +0 -35
  1347. package/src/tests/samples/typeNarrowingIsinstance1.py +0 -162
  1348. package/src/tests/samples/typeNarrowingIsinstance2.py +0 -14
  1349. package/src/tests/samples/typeNarrowingIsinstance3.py +0 -78
  1350. package/src/tests/samples/typeNarrowingIsinstance4.py +0 -50
  1351. package/src/tests/samples/typeNarrowingIsinstance5.py +0 -39
  1352. package/src/tests/samples/typeNarrowingIsinstance6.py +0 -77
  1353. package/src/tests/samples/typeNarrowingIsinstance7.py +0 -19
  1354. package/src/tests/samples/typeNarrowingIsinstance8.py +0 -19
  1355. package/src/tests/samples/typeNarrowingLiteral1.py +0 -35
  1356. package/src/tests/samples/typeNarrowingLiteral2.py +0 -63
  1357. package/src/tests/samples/typeNarrowingLiteralMember1.py +0 -140
  1358. package/src/tests/samples/typeNarrowingLocalConst1.py +0 -136
  1359. package/src/tests/samples/typeNarrowingNoneMember1.py +0 -102
  1360. package/src/tests/samples/typeNarrowingTuple1.py +0 -23
  1361. package/src/tests/samples/typeNarrowingTupleLength1.py +0 -47
  1362. package/src/tests/samples/typeNarrowingTypeIs1.py +0 -95
  1363. package/src/tests/samples/typeNarrowingTypedDict1.py +0 -99
  1364. package/src/tests/samples/typeNarrowingTypedDict2.py +0 -35
  1365. package/src/tests/samples/typeNarrowingTypedDict3.py +0 -45
  1366. package/src/tests/samples/typePromotions1.py +0 -30
  1367. package/src/tests/samples/typeVar1.py +0 -23
  1368. package/src/tests/samples/typeVar10.py +0 -21
  1369. package/src/tests/samples/typeVar11.py +0 -12
  1370. package/src/tests/samples/typeVar2.py +0 -26
  1371. package/src/tests/samples/typeVar3.py +0 -73
  1372. package/src/tests/samples/typeVar4.py +0 -45
  1373. package/src/tests/samples/typeVar5.py +0 -75
  1374. package/src/tests/samples/typeVar6.py +0 -115
  1375. package/src/tests/samples/typeVar7.py +0 -171
  1376. package/src/tests/samples/typeVar8.py +0 -30
  1377. package/src/tests/samples/typeVar9.py +0 -118
  1378. package/src/tests/samples/typedDict1.py +0 -63
  1379. package/src/tests/samples/typedDict10.py +0 -34
  1380. package/src/tests/samples/typedDict11.py +0 -12
  1381. package/src/tests/samples/typedDict12.py +0 -103
  1382. package/src/tests/samples/typedDict13.py +0 -14
  1383. package/src/tests/samples/typedDict14.py +0 -25
  1384. package/src/tests/samples/typedDict15.py +0 -53
  1385. package/src/tests/samples/typedDict16.py +0 -103
  1386. package/src/tests/samples/typedDict17.py +0 -24
  1387. package/src/tests/samples/typedDict18.py +0 -43
  1388. package/src/tests/samples/typedDict2.py +0 -56
  1389. package/src/tests/samples/typedDict3.py +0 -40
  1390. package/src/tests/samples/typedDict4.py +0 -68
  1391. package/src/tests/samples/typedDict5.py +0 -50
  1392. package/src/tests/samples/typedDict6.py +0 -77
  1393. package/src/tests/samples/typedDict7.py +0 -22
  1394. package/src/tests/samples/typedDict8.py +0 -19
  1395. package/src/tests/samples/typedDict9.py +0 -22
  1396. package/src/tests/samples/unbound1.py +0 -18
  1397. package/src/tests/samples/unbound2.py +0 -12
  1398. package/src/tests/samples/unbound3.py +0 -13
  1399. package/src/tests/samples/unbound4.py +0 -25
  1400. package/src/tests/samples/unicode1.py +0 -39
  1401. package/src/tests/samples/uninitializedVariable1.py +0 -27
  1402. package/src/tests/samples/unions1.py +0 -79
  1403. package/src/tests/samples/unions2.py +0 -15
  1404. package/src/tests/samples/unions3.py +0 -48
  1405. package/src/tests/samples/unions4.py +0 -20
  1406. package/src/tests/samples/unions5.py +0 -43
  1407. package/src/tests/samples/unnecessaryCast1.py +0 -13
  1408. package/src/tests/samples/unnecessaryIsInstance1.py +0 -91
  1409. package/src/tests/samples/unnecessaryIsSubclass1.py +0 -22
  1410. package/src/tests/samples/unpack1.py +0 -56
  1411. package/src/tests/samples/unpack2.py +0 -27
  1412. package/src/tests/samples/unpack3.py +0 -16
  1413. package/src/tests/samples/unpack4.py +0 -15
  1414. package/src/tests/samples/unreachable1.py +0 -112
  1415. package/src/tests/samples/unusedCallResult1.py +0 -67
  1416. package/src/tests/samples/unusedCoroutine1.py +0 -23
  1417. package/src/tests/samples/unusedExpression1.py +0 -34
  1418. package/src/tests/samples/unusedVariable1.py +0 -21
  1419. package/src/tests/samples/variadicTypeVar1.py +0 -51
  1420. package/src/tests/samples/variadicTypeVar10.py +0 -65
  1421. package/src/tests/samples/variadicTypeVar11.py +0 -72
  1422. package/src/tests/samples/variadicTypeVar12.py +0 -26
  1423. package/src/tests/samples/variadicTypeVar13.py +0 -35
  1424. package/src/tests/samples/variadicTypeVar14.py +0 -72
  1425. package/src/tests/samples/variadicTypeVar2.py +0 -63
  1426. package/src/tests/samples/variadicTypeVar3.py +0 -86
  1427. package/src/tests/samples/variadicTypeVar4.py +0 -71
  1428. package/src/tests/samples/variadicTypeVar5.py +0 -131
  1429. package/src/tests/samples/variadicTypeVar6.py +0 -78
  1430. package/src/tests/samples/variadicTypeVar7.py +0 -59
  1431. package/src/tests/samples/variadicTypeVar8.py +0 -116
  1432. package/src/tests/samples/variadicTypeVar9.py +0 -38
  1433. package/src/tests/samples/with1.py +0 -117
  1434. package/src/tests/samples/with2.py +0 -63
  1435. package/src/tests/samples/with3.py +0 -66
  1436. package/src/tests/samples/with4.py +0 -24
  1437. package/src/tests/samples/with5.py +0 -33
  1438. package/src/tests/samples/zipfs/bad.egg +0 -1
  1439. package/src/tests/samples/zipfs/bad.zip +0 -1
  1440. package/src/tests/samples/zipfs/basic.egg +0 -0
  1441. package/src/tests/samples/zipfs/basic.zip +0 -0
  1442. package/src/tests/samples/zipfs/corrupt.egg +0 -0
  1443. package/src/tests/samples/zipfs/corrupt.zip +0 -0
  1444. package/src/tests/sourceFile.test.ts +0 -25
  1445. package/src/tests/stringUtils.test.ts +0 -63
  1446. package/src/tests/symbolNameUtils.test.ts +0 -77
  1447. package/src/tests/testState.test.ts +0 -579
  1448. package/src/tests/testUtils.ts +0 -251
  1449. package/src/tests/tokenizer.test.ts +0 -1534
  1450. package/src/tests/typeEvaluator1.test.ts +0 -1372
  1451. package/src/tests/typeEvaluator2.test.ts +0 -1253
  1452. package/src/tests/typeEvaluator3.test.ts +0 -1279
  1453. package/src/tests/typeEvaluator4.test.ts +0 -1178
  1454. package/src/tests/updateSymbolReference.test.ts +0 -1107
  1455. package/src/tests/zipfs.test.ts +0 -116
  1456. package/src/workspaceMap.ts +0 -76
@@ -1,2165 +0,0 @@
1
- /*
2
- * parseTreeUtils.ts
3
- * Copyright (c) Microsoft Corporation.
4
- * Licensed under the MIT license.
5
- * Author: Eric Traut
6
- *
7
- * Utility routines for traversing a parse tree.
8
- */
9
-
10
- import * as AnalyzerNodeInfo from '../analyzer/analyzerNodeInfo';
11
- import { assertNever, fail } from '../common/debug';
12
- import { convertPositionToOffset, convertTextRangeToRange } from '../common/positionUtils';
13
- import { Position, Range } from '../common/textRange';
14
- import { TextRange } from '../common/textRange';
15
- import { TextRangeCollection } from '../common/textRangeCollection';
16
- import {
17
- ArgumentCategory,
18
- ArgumentNode,
19
- AssignmentExpressionNode,
20
- CallNode,
21
- ClassNode,
22
- EvaluationScopeNode,
23
- ExecutionScopeNode,
24
- ExpressionNode,
25
- FunctionNode,
26
- IndexNode,
27
- isExpressionNode,
28
- LambdaNode,
29
- MemberAccessNode,
30
- ModuleNode,
31
- NameNode,
32
- ParameterCategory,
33
- ParameterNode,
34
- ParseNode,
35
- ParseNodeType,
36
- StatementListNode,
37
- StatementNode,
38
- StringListNode,
39
- StringNode,
40
- SuiteNode,
41
- TypeAnnotationNode,
42
- } from '../parser/parseNodes';
43
- import { TokenizerOutput } from '../parser/tokenizer';
44
- import { KeywordType, OperatorType, StringToken, StringTokenFlags, Token, TokenType } from '../parser/tokenizerTypes';
45
- import { getScope } from './analyzerNodeInfo';
46
- import { ParseTreeWalker } from './parseTreeWalker';
47
-
48
- export const enum PrintExpressionFlags {
49
- None = 0,
50
-
51
- // Don't use string literals for forward declarations.
52
- ForwardDeclarations = 1 << 0,
53
-
54
- // By default, strings are truncated. If this flag
55
- // is specified, the full original string is used.
56
- DoNotLimitStringLength = 1 << 1,
57
- }
58
-
59
- // Returns the depth of the node as measured from the root
60
- // of the parse tree.
61
- export function getNodeDepth(node: ParseNode): number {
62
- let depth = 0;
63
- let curNode: ParseNode | undefined = node;
64
-
65
- while (curNode) {
66
- depth++;
67
- curNode = curNode.parent;
68
- }
69
-
70
- return depth;
71
- }
72
-
73
- // Returns the deepest node that contains the specified position.
74
- export function findNodeByPosition(
75
- node: ParseNode,
76
- position: Position,
77
- lines: TextRangeCollection<TextRange>
78
- ): ParseNode | undefined {
79
- const offset = convertPositionToOffset(position, lines);
80
- if (offset === undefined) {
81
- return undefined;
82
- }
83
-
84
- return findNodeByOffset(node, offset);
85
- }
86
-
87
- // Returns the deepest node that contains the specified offset.
88
- export function findNodeByOffset(node: ParseNode, offset: number): ParseNode | undefined {
89
- if (offset < node.start || offset > TextRange.getEnd(node)) {
90
- return undefined;
91
- }
92
-
93
- const parseTreeWalker = new ParseTreeWalker();
94
-
95
- // The range is found within this node. See if we can localize it
96
- // further by checking its children.
97
- const children = parseTreeWalker.visitNode(node);
98
- for (const child of children) {
99
- if (child) {
100
- const containingChild = findNodeByOffset(child, offset);
101
- if (containingChild) {
102
- // For augmented assignments, prefer the dest expression, which is a clone
103
- // of the left expression but is used to hold the type of the operation result.
104
- if (node.nodeType === ParseNodeType.AugmentedAssignment && containingChild === node.leftExpression) {
105
- return node.destExpression;
106
- }
107
-
108
- return containingChild;
109
- }
110
- }
111
- }
112
-
113
- return node;
114
- }
115
-
116
- export function getClassFullName(classNode: ParseNode, moduleName: string, className: string): string {
117
- const nameParts: string[] = [className];
118
-
119
- let curNode: ParseNode | undefined = classNode;
120
-
121
- // Walk the parse tree looking for classes.
122
- while (curNode) {
123
- curNode = getEnclosingClass(curNode);
124
- if (curNode) {
125
- nameParts.push(curNode.name.value);
126
- }
127
- }
128
-
129
- nameParts.push(moduleName);
130
-
131
- return nameParts.reverse().join('.');
132
- }
133
-
134
- // Create an ID that is based on the location within the file.
135
- // This allows us to disambiguate between different types that
136
- // don't have unique names (those that are not created with class
137
- // declarations).
138
- export function getTypeSourceId(node: ParseNode): number {
139
- return node.start;
140
- }
141
-
142
- export function printArgument(node: ArgumentNode, flags: PrintExpressionFlags) {
143
- let argStr = '';
144
- if (node.argumentCategory === ArgumentCategory.UnpackedList) {
145
- argStr = '*';
146
- } else if (node.argumentCategory === ArgumentCategory.UnpackedDictionary) {
147
- argStr = '**';
148
- }
149
- if (node.name) {
150
- argStr += node.name.value + '=';
151
- }
152
- argStr += printExpression(node.valueExpression, flags);
153
- return argStr;
154
- }
155
-
156
- export function printExpression(node: ExpressionNode, flags = PrintExpressionFlags.None): string {
157
- switch (node.nodeType) {
158
- case ParseNodeType.Name: {
159
- return node.value;
160
- }
161
-
162
- case ParseNodeType.MemberAccess: {
163
- return printExpression(node.leftExpression, flags) + '.' + node.memberName.value;
164
- }
165
-
166
- case ParseNodeType.Call: {
167
- return (
168
- printExpression(node.leftExpression, flags) +
169
- '(' +
170
- node.arguments.map((arg) => printArgument(arg, flags)).join(', ') +
171
- ')'
172
- );
173
- }
174
-
175
- case ParseNodeType.Index: {
176
- return (
177
- printExpression(node.baseExpression, flags) +
178
- '[' +
179
- node.items.map((item) => printArgument(item, flags)).join(', ') +
180
- (node.trailingComma ? ',' : '') +
181
- ']'
182
- );
183
- }
184
-
185
- case ParseNodeType.UnaryOperation: {
186
- return printOperator(node.operator) + printExpression(node.expression, flags);
187
- }
188
-
189
- case ParseNodeType.BinaryOperation: {
190
- const exprStr =
191
- printExpression(node.leftExpression, flags) +
192
- ' ' +
193
- printOperator(node.operator) +
194
- ' ' +
195
- printExpression(node.rightExpression, flags);
196
-
197
- return node.parenthesized ? `(${exprStr})` : exprStr;
198
- }
199
-
200
- case ParseNodeType.Number: {
201
- let value = node.value.toString();
202
-
203
- // If it's stored as a bigint, strip off the "n".
204
- if (value.endsWith('n')) {
205
- value = value.substring(0, value.length - 1);
206
- }
207
-
208
- if (node.isImaginary) {
209
- value += 'j';
210
- }
211
- return value;
212
- }
213
-
214
- case ParseNodeType.StringList: {
215
- if (flags & PrintExpressionFlags.ForwardDeclarations && node.typeAnnotation) {
216
- return printExpression(node.typeAnnotation, flags);
217
- } else {
218
- return node.strings
219
- .map((str) => {
220
- return printExpression(str, flags);
221
- })
222
- .join(' ');
223
- }
224
- }
225
-
226
- case ParseNodeType.String: {
227
- let exprString = '';
228
- if (node.token.flags & StringTokenFlags.Raw) {
229
- exprString += 'r';
230
- }
231
-
232
- if (node.token.flags & StringTokenFlags.Unicode) {
233
- exprString += 'u';
234
- }
235
-
236
- if (node.token.flags & StringTokenFlags.Bytes) {
237
- exprString += 'b';
238
- }
239
-
240
- if (node.token.flags & StringTokenFlags.Format) {
241
- exprString += 'f';
242
- }
243
-
244
- let escapedString = node.token.escapedValue;
245
- if ((flags & PrintExpressionFlags.DoNotLimitStringLength) === 0) {
246
- const maxStringLength = 32;
247
- escapedString = escapedString.substring(0, maxStringLength);
248
- }
249
-
250
- if (node.token.flags & StringTokenFlags.Triplicate) {
251
- if (node.token.flags & StringTokenFlags.SingleQuote) {
252
- exprString += `'''${escapedString}'''`;
253
- } else {
254
- exprString += `"""${escapedString}"""`;
255
- }
256
- } else {
257
- if (node.token.flags & StringTokenFlags.SingleQuote) {
258
- exprString += `'${escapedString}'`;
259
- } else {
260
- exprString += `"${escapedString}"`;
261
- }
262
- }
263
-
264
- return exprString;
265
- }
266
-
267
- case ParseNodeType.Assignment: {
268
- return printExpression(node.leftExpression, flags) + ' = ' + printExpression(node.rightExpression, flags);
269
- }
270
-
271
- case ParseNodeType.AssignmentExpression: {
272
- return printExpression(node.name, flags) + ' := ' + printExpression(node.rightExpression, flags);
273
- }
274
-
275
- case ParseNodeType.TypeAnnotation: {
276
- return printExpression(node.valueExpression, flags) + ': ' + printExpression(node.typeAnnotation, flags);
277
- }
278
-
279
- case ParseNodeType.AugmentedAssignment: {
280
- return (
281
- printExpression(node.leftExpression, flags) +
282
- ' ' +
283
- printOperator(node.operator) +
284
- ' ' +
285
- printExpression(node.rightExpression, flags)
286
- );
287
- }
288
-
289
- case ParseNodeType.Await: {
290
- return 'await ' + printExpression(node.expression, flags);
291
- }
292
-
293
- case ParseNodeType.Ternary: {
294
- return (
295
- printExpression(node.ifExpression, flags) +
296
- ' if ' +
297
- printExpression(node.testExpression, flags) +
298
- ' else ' +
299
- printExpression(node.elseExpression, flags)
300
- );
301
- }
302
-
303
- case ParseNodeType.List: {
304
- const expressions = node.entries.map((expr) => {
305
- return printExpression(expr, flags);
306
- });
307
- return `[${expressions.join(', ')}]`;
308
- }
309
-
310
- case ParseNodeType.Unpack: {
311
- return '*' + printExpression(node.expression, flags);
312
- }
313
-
314
- case ParseNodeType.Tuple: {
315
- const expressions = node.expressions.map((expr) => {
316
- return printExpression(expr, flags);
317
- });
318
- if (expressions.length === 1) {
319
- return `(${expressions[0]}, )`;
320
- }
321
- return `(${expressions.join(', ')})`;
322
- }
323
-
324
- case ParseNodeType.Yield: {
325
- if (node.expression) {
326
- return 'yield ' + printExpression(node.expression, flags);
327
- } else {
328
- return 'yield';
329
- }
330
- }
331
-
332
- case ParseNodeType.YieldFrom: {
333
- return 'yield from ' + printExpression(node.expression, flags);
334
- }
335
-
336
- case ParseNodeType.Ellipsis: {
337
- return '...';
338
- }
339
-
340
- case ParseNodeType.ListComprehension: {
341
- let listStr = '<ListExpression>';
342
-
343
- if (isExpressionNode(node.expression)) {
344
- listStr = printExpression(node.expression as ExpressionNode, flags);
345
- } else if (node.expression.nodeType === ParseNodeType.DictionaryKeyEntry) {
346
- const keyStr = printExpression(node.expression.keyExpression, flags);
347
- const valueStr = printExpression(node.expression.valueExpression, flags);
348
- listStr = `${keyStr}: ${valueStr}`;
349
- }
350
-
351
- listStr =
352
- listStr +
353
- ' ' +
354
- node.forIfNodes
355
- .map((expr) => {
356
- if (expr.nodeType === ParseNodeType.ListComprehensionFor) {
357
- return (
358
- `${expr.isAsync ? 'async ' : ''}for ` +
359
- printExpression(expr.targetExpression, flags) +
360
- ` in ${printExpression(expr.iterableExpression, flags)}`
361
- );
362
- } else {
363
- return `if ${printExpression(expr.testExpression, flags)}`;
364
- }
365
- })
366
- .join(' ');
367
-
368
- return node.isParenthesized ? `(${listStr}})` : listStr;
369
- }
370
-
371
- case ParseNodeType.Slice: {
372
- let result = '';
373
- if (node.startValue) {
374
- result += printExpression(node.startValue, flags);
375
- }
376
- if (node.endValue) {
377
- result += ': ' + printExpression(node.endValue, flags);
378
- }
379
- if (node.stepValue) {
380
- result += ': ' + printExpression(node.stepValue, flags);
381
- }
382
- return result;
383
- }
384
-
385
- case ParseNodeType.Lambda: {
386
- return (
387
- 'lambda ' +
388
- node.parameters
389
- .map((param) => {
390
- let paramStr = '';
391
-
392
- if (param.category === ParameterCategory.VarArgList) {
393
- paramStr += '*';
394
- } else if (param.category === ParameterCategory.VarArgDictionary) {
395
- paramStr += '**';
396
- }
397
-
398
- if (param.name) {
399
- paramStr += param.name.value;
400
- } else if (param.category === ParameterCategory.Simple) {
401
- paramStr += '/';
402
- }
403
-
404
- if (param.defaultValue) {
405
- paramStr += ' = ' + printExpression(param.defaultValue, flags);
406
- }
407
- return paramStr;
408
- })
409
- .join(', ') +
410
- ': ' +
411
- printExpression(node.expression, flags)
412
- );
413
- }
414
-
415
- case ParseNodeType.Constant: {
416
- if (node.constType === KeywordType.True) {
417
- return 'True';
418
- } else if (node.constType === KeywordType.False) {
419
- return 'False';
420
- } else if (node.constType === KeywordType.Debug) {
421
- return '__debug__';
422
- } else if (node.constType === KeywordType.None) {
423
- return 'None';
424
- }
425
- break;
426
- }
427
-
428
- case ParseNodeType.Dictionary: {
429
- const dictContents = `${node.entries.map((entry) => {
430
- if (entry.nodeType === ParseNodeType.DictionaryKeyEntry) {
431
- return (
432
- `${printExpression(entry.keyExpression, flags)}: ` +
433
- `${printExpression(entry.valueExpression, flags)}`
434
- );
435
- } else if (entry.nodeType === ParseNodeType.DictionaryExpandEntry) {
436
- return `**${printExpression(entry.expandExpression, flags)}`;
437
- } else {
438
- return printExpression(entry, flags);
439
- }
440
- })}`;
441
-
442
- if (dictContents) {
443
- return `{ ${dictContents} }`;
444
- }
445
-
446
- return '{}';
447
- }
448
-
449
- case ParseNodeType.Set: {
450
- return node.entries.map((entry) => printExpression(entry, flags)).join(', ');
451
- }
452
- }
453
-
454
- return '<Expression>';
455
- }
456
-
457
- export function printOperator(operator: OperatorType): string {
458
- const operatorMap: { [operator: number]: string } = {
459
- [OperatorType.Add]: '+',
460
- [OperatorType.AddEqual]: '+=',
461
- [OperatorType.Assign]: '=',
462
- [OperatorType.BitwiseAnd]: '&',
463
- [OperatorType.BitwiseAndEqual]: '&=',
464
- [OperatorType.BitwiseInvert]: '~',
465
- [OperatorType.BitwiseOr]: '|',
466
- [OperatorType.BitwiseOrEqual]: '|=',
467
- [OperatorType.BitwiseXor]: '^',
468
- [OperatorType.BitwiseXorEqual]: '^=',
469
- [OperatorType.Divide]: '/',
470
- [OperatorType.DivideEqual]: '/=',
471
- [OperatorType.Equals]: '==',
472
- [OperatorType.FloorDivide]: '//',
473
- [OperatorType.FloorDivideEqual]: '//=',
474
- [OperatorType.GreaterThan]: '>',
475
- [OperatorType.GreaterThanOrEqual]: '>=',
476
- [OperatorType.LeftShift]: '<<',
477
- [OperatorType.LeftShiftEqual]: '<<=',
478
- [OperatorType.LessOrGreaterThan]: '<>',
479
- [OperatorType.LessThan]: '<',
480
- [OperatorType.LessThanOrEqual]: '<=',
481
- [OperatorType.MatrixMultiply]: '@',
482
- [OperatorType.MatrixMultiplyEqual]: '@=',
483
- [OperatorType.Mod]: '%',
484
- [OperatorType.ModEqual]: '%=',
485
- [OperatorType.Multiply]: '*',
486
- [OperatorType.MultiplyEqual]: '*=',
487
- [OperatorType.NotEquals]: '!=',
488
- [OperatorType.Power]: '**',
489
- [OperatorType.PowerEqual]: '**=',
490
- [OperatorType.RightShift]: '>>',
491
- [OperatorType.RightShiftEqual]: '>>=',
492
- [OperatorType.Subtract]: '-',
493
- [OperatorType.SubtractEqual]: '-=',
494
- [OperatorType.And]: 'and',
495
- [OperatorType.Or]: 'or',
496
- [OperatorType.Not]: 'not',
497
- [OperatorType.Is]: 'is',
498
- [OperatorType.IsNot]: 'is not',
499
- [OperatorType.In]: 'in',
500
- [OperatorType.NotIn]: 'not in',
501
- };
502
-
503
- if (operatorMap[operator]) {
504
- return operatorMap[operator];
505
- }
506
-
507
- return 'unknown';
508
- }
509
-
510
- export function getEnclosingSuite(node: ParseNode): SuiteNode | undefined {
511
- let curNode = node.parent;
512
-
513
- while (curNode) {
514
- if (curNode.nodeType === ParseNodeType.Suite) {
515
- return curNode;
516
- }
517
- curNode = curNode.parent;
518
- }
519
-
520
- return undefined;
521
- }
522
-
523
- export function getEnclosingClass(node: ParseNode, stopAtFunction = false): ClassNode | undefined {
524
- let curNode = node.parent;
525
- while (curNode) {
526
- if (curNode.nodeType === ParseNodeType.Class) {
527
- return curNode;
528
- }
529
-
530
- if (curNode.nodeType === ParseNodeType.Module) {
531
- return undefined;
532
- }
533
-
534
- if (curNode.nodeType === ParseNodeType.Function) {
535
- if (stopAtFunction) {
536
- return undefined;
537
- }
538
- }
539
-
540
- curNode = curNode.parent;
541
- }
542
-
543
- return undefined;
544
- }
545
-
546
- export function getEnclosingModule(node: ParseNode): ModuleNode {
547
- let curNode = node.parent;
548
- while (curNode) {
549
- if (curNode.nodeType === ParseNodeType.Module) {
550
- return curNode;
551
- }
552
-
553
- curNode = curNode.parent;
554
- }
555
-
556
- fail('Module node not found');
557
- return undefined!;
558
- }
559
-
560
- export function getEnclosingClassOrModule(node: ParseNode, stopAtFunction = false): ClassNode | ModuleNode | undefined {
561
- let curNode = node.parent;
562
- while (curNode) {
563
- if (curNode.nodeType === ParseNodeType.Class) {
564
- return curNode;
565
- }
566
-
567
- if (curNode.nodeType === ParseNodeType.Module) {
568
- return curNode;
569
- }
570
-
571
- if (curNode.nodeType === ParseNodeType.Function) {
572
- if (stopAtFunction) {
573
- return undefined;
574
- }
575
- }
576
-
577
- curNode = curNode.parent;
578
- }
579
-
580
- return undefined;
581
- }
582
-
583
- export function getEnclosingFunction(node: ParseNode): FunctionNode | undefined {
584
- let curNode = node.parent;
585
- let prevNode: ParseNode | undefined;
586
-
587
- while (curNode) {
588
- if (curNode.nodeType === ParseNodeType.Function) {
589
- // Don't treat a decorator as being "enclosed" in the function.
590
- if (!curNode.decorators.some((decorator) => decorator === prevNode)) {
591
- return curNode;
592
- }
593
- }
594
-
595
- if (curNode.nodeType === ParseNodeType.Class) {
596
- return undefined;
597
- }
598
-
599
- prevNode = curNode;
600
- curNode = curNode.parent;
601
- }
602
-
603
- return undefined;
604
- }
605
-
606
- export function getEnclosingLambda(node: ParseNode): LambdaNode | undefined {
607
- let curNode = node.parent;
608
- while (curNode) {
609
- if (curNode.nodeType === ParseNodeType.Lambda) {
610
- return curNode;
611
- }
612
-
613
- if (curNode.nodeType === ParseNodeType.Suite) {
614
- return undefined;
615
- }
616
-
617
- curNode = curNode.parent;
618
- }
619
-
620
- return undefined;
621
- }
622
-
623
- export function getEnclosingClassOrFunction(node: ParseNode): FunctionNode | ClassNode | undefined {
624
- let curNode = node.parent;
625
- while (curNode) {
626
- if (curNode.nodeType === ParseNodeType.Function) {
627
- return curNode;
628
- }
629
-
630
- if (curNode.nodeType === ParseNodeType.Class) {
631
- return curNode;
632
- }
633
-
634
- curNode = curNode.parent;
635
- }
636
-
637
- return undefined;
638
- }
639
-
640
- export function getEnclosingSuiteOrModule(
641
- node: ParseNode,
642
- stopAtFunction = false,
643
- stopAtLambda = true
644
- ): SuiteNode | ModuleNode | undefined {
645
- let curNode = node.parent;
646
- while (curNode) {
647
- if (curNode.nodeType === ParseNodeType.Suite) {
648
- return curNode;
649
- }
650
-
651
- if (curNode.nodeType === ParseNodeType.Module) {
652
- return curNode;
653
- }
654
-
655
- if (curNode.nodeType === ParseNodeType.Lambda) {
656
- if (stopAtLambda) {
657
- return undefined;
658
- }
659
- }
660
-
661
- if (curNode.nodeType === ParseNodeType.Function) {
662
- if (stopAtFunction) {
663
- return undefined;
664
- }
665
- }
666
-
667
- curNode = curNode.parent;
668
- }
669
-
670
- return undefined;
671
- }
672
-
673
- export function getEvaluationNodeForAssignmentExpression(
674
- node: AssignmentExpressionNode
675
- ): LambdaNode | FunctionNode | ModuleNode | ClassNode | undefined {
676
- // PEP 572 indicates that the evaluation node for an assignment expression
677
- // target within a list comprehension is contained within a lambda,
678
- // function or module, but not a class.
679
- let sawListComprehension = false;
680
- let curNode: ParseNode | undefined = getEvaluationScopeNode(node);
681
-
682
- while (curNode !== undefined) {
683
- switch (curNode.nodeType) {
684
- case ParseNodeType.Function:
685
- case ParseNodeType.Lambda:
686
- case ParseNodeType.Module:
687
- return curNode;
688
-
689
- case ParseNodeType.Class:
690
- return sawListComprehension ? undefined : curNode;
691
-
692
- case ParseNodeType.ListComprehension:
693
- sawListComprehension = true;
694
- curNode = getEvaluationScopeNode(curNode.parent!);
695
- break;
696
-
697
- default:
698
- return undefined;
699
- }
700
- }
701
-
702
- return undefined;
703
- }
704
-
705
- // Returns the parse node corresponding to the scope that is used to evaluate
706
- // a symbol referenced in the specified node.
707
- export function getEvaluationScopeNode(node: ParseNode): EvaluationScopeNode {
708
- let prevNode: ParseNode | undefined;
709
- let prevPrevNode: ParseNode | undefined;
710
- let curNode: ParseNode | undefined = node;
711
- let isParamNameNode = false;
712
-
713
- while (curNode) {
714
- if (curNode.nodeType === ParseNodeType.Parameter && prevNode === curNode.name) {
715
- // Note that we passed through a parameter name node.
716
- isParamNameNode = true;
717
- }
718
-
719
- // We found a scope associated with this node. In most cases,
720
- // we'll return this scope, but in a few cases we need to return
721
- // the enclosing scope instead.
722
- switch (curNode.nodeType) {
723
- case ParseNodeType.Function: {
724
- if (curNode.parameters.some((param) => param === prevNode)) {
725
- if (isParamNameNode) {
726
- if (getScope(curNode) !== undefined) {
727
- return curNode;
728
- }
729
- }
730
- } else if (prevNode === curNode.suite) {
731
- if (getScope(curNode) !== undefined) {
732
- return curNode;
733
- }
734
- }
735
- break;
736
- }
737
-
738
- case ParseNodeType.Lambda: {
739
- if (curNode.parameters.some((param) => param === prevNode)) {
740
- if (isParamNameNode) {
741
- if (getScope(curNode) !== undefined) {
742
- return curNode;
743
- }
744
- }
745
- } else if (!prevNode || prevNode === curNode.expression) {
746
- if (getScope(curNode) !== undefined) {
747
- return curNode;
748
- }
749
- }
750
- break;
751
- }
752
-
753
- case ParseNodeType.Class: {
754
- if (prevNode === curNode.suite) {
755
- if (getScope(curNode) !== undefined) {
756
- return curNode;
757
- }
758
- }
759
- break;
760
- }
761
-
762
- case ParseNodeType.ListComprehension: {
763
- if (getScope(curNode) !== undefined) {
764
- // The iterable expression of the first subnode of a list comprehension
765
- // is evaluated within the scope of its parent.
766
- const isFirstIterableExpr =
767
- prevNode === curNode.forIfNodes[0] &&
768
- curNode.forIfNodes[0].nodeType === ParseNodeType.ListComprehensionFor &&
769
- curNode.forIfNodes[0].iterableExpression === prevPrevNode;
770
-
771
- if (!isFirstIterableExpr) {
772
- return curNode;
773
- }
774
- }
775
- break;
776
- }
777
-
778
- case ParseNodeType.Module: {
779
- if (getScope(curNode) !== undefined) {
780
- return curNode;
781
- }
782
- break;
783
- }
784
- }
785
-
786
- prevPrevNode = prevNode;
787
- prevNode = curNode;
788
- curNode = curNode.parent;
789
- }
790
-
791
- fail('Did not find evaluation scope');
792
- return undefined!;
793
- }
794
-
795
- // Returns the parse node corresponding to the function or class that
796
- // contains the specified typeVar reference.
797
- export function getTypeVarScopeNode(node: ParseNode, allowInFunctionSignature = false): EvaluationScopeNode {
798
- let prevNode: ParseNode | undefined;
799
- let curNode: ParseNode | undefined = node;
800
-
801
- while (curNode) {
802
- switch (curNode.nodeType) {
803
- case ParseNodeType.Function: {
804
- if (prevNode === curNode.suite || allowInFunctionSignature) {
805
- if (!curNode.decorators.some((decorator) => decorator === prevNode)) {
806
- return curNode;
807
- }
808
- }
809
- break;
810
- }
811
-
812
- case ParseNodeType.Class: {
813
- if (prevNode === curNode.suite) {
814
- if (!curNode.decorators.some((decorator) => decorator === prevNode)) {
815
- return curNode;
816
- }
817
- }
818
- break;
819
- }
820
- }
821
-
822
- prevNode = curNode;
823
- curNode = curNode.parent;
824
- }
825
-
826
- return undefined!;
827
- }
828
-
829
- // Returns the parse node corresponding to the scope that is used
830
- // for executing the code referenced in the specified node.
831
- export function getExecutionScopeNode(node: ParseNode): ExecutionScopeNode {
832
- let evaluationScope = getEvaluationScopeNode(node);
833
-
834
- // Classes are not considered execution scope because they are executed
835
- // within the context of their containing module or function. Likewise, list
836
- // comprehensions are executed within their container.
837
- while (
838
- evaluationScope.nodeType === ParseNodeType.Class ||
839
- evaluationScope.nodeType === ParseNodeType.ListComprehension
840
- ) {
841
- evaluationScope = getEvaluationScopeNode(evaluationScope.parent!);
842
- }
843
-
844
- return evaluationScope;
845
- }
846
-
847
- // Given a node within a type annotation expression, returns the type annotation
848
- // node that contains it (if applicable).
849
- export function getTypeAnnotationNode(node: ParseNode): TypeAnnotationNode | undefined {
850
- let prevNode = node;
851
- let curNode = node.parent;
852
-
853
- while (curNode) {
854
- if (curNode.nodeType === ParseNodeType.TypeAnnotation) {
855
- if (curNode.typeAnnotation === prevNode) {
856
- return curNode;
857
- }
858
-
859
- break;
860
- }
861
-
862
- prevNode = curNode;
863
- curNode = curNode.parent;
864
- }
865
-
866
- return undefined;
867
- }
868
-
869
- // PEP 591 spells out certain limited cases where an assignment target
870
- // can be annotated with a "Final" annotation. This function determines
871
- // whether Final is allowed for the specified node.
872
- export function isFinalAllowedForAssignmentTarget(targetNode: ExpressionNode): boolean {
873
- // Simple names always support Final.
874
- if (targetNode.nodeType === ParseNodeType.Name) {
875
- return true;
876
- }
877
-
878
- // Member access expressions like "self.x" are permitted only
879
- // within __init__ methods.
880
- if (targetNode.nodeType === ParseNodeType.MemberAccess) {
881
- if (targetNode.leftExpression.nodeType !== ParseNodeType.Name) {
882
- return false;
883
- }
884
-
885
- const classNode = getEnclosingClass(targetNode);
886
- if (!classNode) {
887
- return false;
888
- }
889
-
890
- const methodNode = getEnclosingFunction(targetNode);
891
- if (!methodNode) {
892
- return false;
893
- }
894
-
895
- if (methodNode.name.value !== '__init__') {
896
- return false;
897
- }
898
-
899
- return true;
900
- }
901
-
902
- return false;
903
- }
904
-
905
- export function isClassVarAllowedForAssignmentTarget(targetNode: ExpressionNode): boolean {
906
- const classNode = getEnclosingClass(targetNode, /* stopAtFunction */ true);
907
- if (!classNode) {
908
- return false;
909
- }
910
-
911
- return true;
912
- }
913
-
914
- export function isNodeContainedWithin(node: ParseNode, potentialContainer: ParseNode): boolean {
915
- let curNode: ParseNode | undefined = node;
916
- while (curNode) {
917
- if (curNode === potentialContainer) {
918
- return true;
919
- }
920
-
921
- curNode = curNode.parent;
922
- }
923
-
924
- return false;
925
- }
926
-
927
- export function getParentNodeOfType(node: ParseNode, containerType: ParseNodeType): ParseNode | undefined {
928
- let curNode: ParseNode | undefined = node;
929
- while (curNode) {
930
- if (curNode.nodeType === containerType) {
931
- return curNode;
932
- }
933
-
934
- curNode = curNode.parent;
935
- }
936
-
937
- return undefined;
938
- }
939
-
940
- export function isNodeContainedWithinNodeType(node: ParseNode, containerType: ParseNodeType): boolean {
941
- return getParentNodeOfType(node, containerType) !== undefined;
942
- }
943
-
944
- export function isSuiteEmpty(node: SuiteNode): boolean {
945
- let sawEllipsis = false;
946
-
947
- for (const statement of node.statements) {
948
- if (statement.nodeType === ParseNodeType.StatementList) {
949
- for (const substatement of statement.statements) {
950
- if (substatement.nodeType === ParseNodeType.Ellipsis) {
951
- // Allow an ellipsis
952
- sawEllipsis = true;
953
- } else if (substatement.nodeType === ParseNodeType.StringList) {
954
- // Allow doc strings
955
- } else {
956
- return false;
957
- }
958
- }
959
- } else {
960
- return false;
961
- }
962
- }
963
-
964
- return sawEllipsis;
965
- }
966
-
967
- export function isMatchingExpression(reference: ExpressionNode, expression: ExpressionNode): boolean {
968
- if (reference.nodeType === ParseNodeType.Name) {
969
- if (expression.nodeType === ParseNodeType.Name) {
970
- return reference.value === expression.value;
971
- } else if (expression.nodeType === ParseNodeType.AssignmentExpression) {
972
- return reference.value === expression.name.value;
973
- }
974
- return false;
975
- } else if (
976
- reference.nodeType === ParseNodeType.MemberAccess &&
977
- expression.nodeType === ParseNodeType.MemberAccess
978
- ) {
979
- return (
980
- isMatchingExpression(reference.leftExpression, expression.leftExpression) &&
981
- reference.memberName.value === expression.memberName.value
982
- );
983
- } else if (reference.nodeType === ParseNodeType.Index && expression.nodeType === ParseNodeType.Index) {
984
- if (!isMatchingExpression(reference.baseExpression, expression.baseExpression)) {
985
- return false;
986
- }
987
-
988
- if (
989
- expression.items.length !== 1 ||
990
- expression.trailingComma ||
991
- expression.items[0].name ||
992
- expression.items[0].argumentCategory !== ArgumentCategory.Simple
993
- ) {
994
- return false;
995
- }
996
-
997
- const expr = reference.items[0].valueExpression;
998
- if (expr.nodeType === ParseNodeType.Number) {
999
- const subscriptNode = expression.items[0].valueExpression;
1000
- if (
1001
- subscriptNode.nodeType !== ParseNodeType.Number ||
1002
- subscriptNode.isImaginary ||
1003
- !subscriptNode.isInteger
1004
- ) {
1005
- return false;
1006
- }
1007
-
1008
- return expr.value === subscriptNode.value;
1009
- }
1010
-
1011
- if (
1012
- expr.nodeType === ParseNodeType.UnaryOperation &&
1013
- expr.operator === OperatorType.Subtract &&
1014
- expr.expression.nodeType === ParseNodeType.Number
1015
- ) {
1016
- const subscriptNode = expression.items[0].valueExpression;
1017
- if (
1018
- subscriptNode.nodeType !== ParseNodeType.UnaryOperation ||
1019
- subscriptNode.operator !== OperatorType.Subtract ||
1020
- subscriptNode.expression.nodeType !== ParseNodeType.Number ||
1021
- subscriptNode.expression.isImaginary ||
1022
- !subscriptNode.expression.isInteger
1023
- ) {
1024
- return false;
1025
- }
1026
-
1027
- return expr.expression.value === subscriptNode.expression.value;
1028
- }
1029
-
1030
- if (expr.nodeType === ParseNodeType.StringList) {
1031
- const referenceStringListNode = expr;
1032
- const subscriptNode = expression.items[0].valueExpression;
1033
- if (
1034
- referenceStringListNode.strings.length === 1 &&
1035
- referenceStringListNode.strings[0].nodeType === ParseNodeType.String &&
1036
- subscriptNode.nodeType === ParseNodeType.StringList &&
1037
- subscriptNode.strings.length === 1 &&
1038
- subscriptNode.strings[0].nodeType === ParseNodeType.String
1039
- ) {
1040
- return referenceStringListNode.strings[0].value === subscriptNode.strings[0].value;
1041
- }
1042
- }
1043
-
1044
- return false;
1045
- }
1046
-
1047
- return false;
1048
- }
1049
-
1050
- export function isPartialMatchingExpression(reference: ExpressionNode, expression: ExpressionNode): boolean {
1051
- if (reference.nodeType === ParseNodeType.MemberAccess) {
1052
- return (
1053
- isMatchingExpression(reference.leftExpression, expression) ||
1054
- isPartialMatchingExpression(reference.leftExpression, expression)
1055
- );
1056
- } else if (reference.nodeType === ParseNodeType.Index) {
1057
- return (
1058
- isMatchingExpression(reference.baseExpression, expression) ||
1059
- isPartialMatchingExpression(reference.baseExpression, expression)
1060
- );
1061
- }
1062
-
1063
- return false;
1064
- }
1065
-
1066
- export function isWithinDefaultParamInitializer(node: ParseNode) {
1067
- let curNode: ParseNode | undefined = node;
1068
- let prevNode: ParseNode | undefined;
1069
-
1070
- while (curNode) {
1071
- if (curNode.nodeType === ParseNodeType.Parameter && prevNode === curNode.defaultValue) {
1072
- return true;
1073
- }
1074
-
1075
- if (
1076
- curNode.nodeType === ParseNodeType.Lambda ||
1077
- curNode.nodeType === ParseNodeType.Function ||
1078
- curNode.nodeType === ParseNodeType.Class ||
1079
- curNode.nodeType === ParseNodeType.Module
1080
- ) {
1081
- return false;
1082
- }
1083
-
1084
- prevNode = curNode;
1085
- curNode = curNode.parent;
1086
- }
1087
-
1088
- return false;
1089
- }
1090
-
1091
- export function isWithinTypeAnnotation(node: ParseNode, requireQuotedAnnotation: boolean) {
1092
- let curNode: ParseNode | undefined = node;
1093
- let prevNode: ParseNode | undefined;
1094
- let isQuoted = false;
1095
-
1096
- while (curNode) {
1097
- if (
1098
- curNode.nodeType === ParseNodeType.Parameter &&
1099
- (prevNode === curNode.typeAnnotation || prevNode === curNode.typeAnnotationComment)
1100
- ) {
1101
- return isQuoted || !requireQuotedAnnotation;
1102
- }
1103
-
1104
- if (curNode.nodeType === ParseNodeType.Function && prevNode === curNode.returnTypeAnnotation) {
1105
- return isQuoted || !requireQuotedAnnotation;
1106
- }
1107
-
1108
- if (curNode.nodeType === ParseNodeType.Function && prevNode === curNode.functionAnnotationComment) {
1109
- // Type comments are always considered forward declarations even though
1110
- // they're not "quoted".
1111
- return true;
1112
- }
1113
-
1114
- if (curNode.nodeType === ParseNodeType.TypeAnnotation && prevNode === curNode.typeAnnotation) {
1115
- return isQuoted || !requireQuotedAnnotation;
1116
- }
1117
-
1118
- if (curNode.nodeType === ParseNodeType.Assignment && prevNode === curNode.typeAnnotationComment) {
1119
- // Type comments are always considered forward declarations even though
1120
- // they're not "quoted".
1121
- return true;
1122
- }
1123
-
1124
- if (curNode.nodeType === ParseNodeType.StringList && prevNode === curNode.typeAnnotation) {
1125
- isQuoted = true;
1126
- }
1127
-
1128
- if (
1129
- curNode.nodeType === ParseNodeType.Lambda ||
1130
- curNode.nodeType === ParseNodeType.Function ||
1131
- curNode.nodeType === ParseNodeType.Class ||
1132
- curNode.nodeType === ParseNodeType.Module
1133
- ) {
1134
- return false;
1135
- }
1136
-
1137
- prevNode = curNode;
1138
- curNode = curNode.parent;
1139
- }
1140
-
1141
- return false;
1142
- }
1143
-
1144
- export function isWithinAnnotationComment(node: ParseNode) {
1145
- let curNode: ParseNode | undefined = node;
1146
- let prevNode: ParseNode | undefined;
1147
-
1148
- while (curNode) {
1149
- if (curNode.nodeType === ParseNodeType.Function && prevNode === curNode.functionAnnotationComment) {
1150
- // Type comments are always considered forward declarations even though
1151
- // they're not "quoted".
1152
- return true;
1153
- }
1154
-
1155
- if (curNode.nodeType === ParseNodeType.Assignment && prevNode === curNode.typeAnnotationComment) {
1156
- // Type comments are always considered forward declarations even though
1157
- // they're not "quoted".
1158
- return true;
1159
- }
1160
-
1161
- if (
1162
- curNode.nodeType === ParseNodeType.Lambda ||
1163
- curNode.nodeType === ParseNodeType.Function ||
1164
- curNode.nodeType === ParseNodeType.Class ||
1165
- curNode.nodeType === ParseNodeType.Module
1166
- ) {
1167
- return false;
1168
- }
1169
-
1170
- prevNode = curNode;
1171
- curNode = curNode.parent;
1172
- }
1173
-
1174
- return false;
1175
- }
1176
-
1177
- export function isWithinLoop(node: ParseNode): boolean {
1178
- let curNode: ParseNode | undefined = node;
1179
-
1180
- while (curNode) {
1181
- switch (curNode.nodeType) {
1182
- case ParseNodeType.For:
1183
- case ParseNodeType.While: {
1184
- return true;
1185
- }
1186
-
1187
- case ParseNodeType.Module: {
1188
- break;
1189
- }
1190
- }
1191
-
1192
- curNode = curNode.parent;
1193
- }
1194
-
1195
- return false;
1196
- }
1197
-
1198
- export function isWithinTryBlock(node: ParseNode, treatWithAsTryBlock = false): boolean {
1199
- let curNode: ParseNode | undefined = node;
1200
- let prevNode: ParseNode | undefined;
1201
-
1202
- while (curNode) {
1203
- switch (curNode.nodeType) {
1204
- case ParseNodeType.Try: {
1205
- return curNode.trySuite === prevNode;
1206
- }
1207
-
1208
- case ParseNodeType.With: {
1209
- if (treatWithAsTryBlock && curNode.suite === prevNode) {
1210
- return true;
1211
- }
1212
- break;
1213
- }
1214
-
1215
- case ParseNodeType.Function:
1216
- case ParseNodeType.Module:
1217
- case ParseNodeType.Class: {
1218
- return false;
1219
- }
1220
- }
1221
-
1222
- prevNode = curNode;
1223
- curNode = curNode.parent;
1224
- }
1225
-
1226
- return false;
1227
- }
1228
-
1229
- export function isWithinAssertExpression(node: ParseNode): boolean {
1230
- let curNode: ParseNode | undefined = node;
1231
- let prevNode: ParseNode | undefined;
1232
-
1233
- while (curNode) {
1234
- switch (curNode.nodeType) {
1235
- case ParseNodeType.Assert: {
1236
- return curNode.testExpression === prevNode;
1237
- }
1238
- }
1239
-
1240
- prevNode = curNode;
1241
- curNode = curNode.parent;
1242
- }
1243
-
1244
- return false;
1245
- }
1246
-
1247
- export function getDocString(statements: StatementNode[]): string | undefined {
1248
- // See if the first statement in the suite is a triple-quote string.
1249
- if (statements.length === 0) {
1250
- return undefined;
1251
- }
1252
-
1253
- if (statements[0].nodeType !== ParseNodeType.StatementList) {
1254
- return undefined;
1255
- }
1256
-
1257
- if (!isDocString(statements[0])) {
1258
- return undefined;
1259
- }
1260
-
1261
- // It's up to the user to convert normalize/convert this as needed.
1262
- const strings = (statements[0].statements[0] as StringListNode).strings;
1263
- if (strings.length === 1) {
1264
- // Common case.
1265
- return strings[0].value;
1266
- }
1267
-
1268
- return strings.map((s) => s.value).join('');
1269
- }
1270
-
1271
- export function isDocString(statementList: StatementListNode): boolean {
1272
- // If the first statement in the suite isn't a StringNode,
1273
- // assume there is no docString.
1274
- if (statementList.statements.length === 0 || statementList.statements[0].nodeType !== ParseNodeType.StringList) {
1275
- return false;
1276
- }
1277
-
1278
- // A docstring can consist of multiple joined strings in a single expression.
1279
- const strings = statementList.statements[0].strings;
1280
- if (strings.length === 0) {
1281
- return false;
1282
- }
1283
-
1284
- // Any f-strings invalidate the entire docstring.
1285
- if (strings.some((n) => (n.token.flags & StringTokenFlags.Format) !== 0)) {
1286
- return false;
1287
- }
1288
-
1289
- // It's up to the user to convert normalize/convert this as needed.
1290
- return true;
1291
- }
1292
-
1293
- // Sometimes a NamedTuple assignment statement is followed by a statement
1294
- // that looks like the following:
1295
- // MyNamedTuple.__new__.__defaults__ = ...
1296
- // This pattern is commonly used to set the default values that are
1297
- // not specified in the original list.
1298
- export function isAssignmentToDefaultsFollowingNamedTuple(callNode: ParseNode): boolean {
1299
- if (
1300
- callNode.nodeType !== ParseNodeType.Call ||
1301
- !callNode.parent ||
1302
- callNode.parent.nodeType !== ParseNodeType.Assignment ||
1303
- callNode.parent.leftExpression.nodeType !== ParseNodeType.Name ||
1304
- !callNode.parent.parent ||
1305
- callNode.parent.parent.nodeType !== ParseNodeType.StatementList
1306
- ) {
1307
- return false;
1308
- }
1309
-
1310
- const namedTupleAssignedName = callNode.parent.leftExpression.value;
1311
- const statementList = callNode.parent.parent;
1312
- if (
1313
- statementList.statements[0] !== callNode.parent ||
1314
- !statementList.parent ||
1315
- !(
1316
- statementList.parent.nodeType === ParseNodeType.Module ||
1317
- statementList.parent.nodeType === ParseNodeType.Suite
1318
- )
1319
- ) {
1320
- return false;
1321
- }
1322
-
1323
- const moduleOrSuite = statementList.parent;
1324
- let statementIndex = moduleOrSuite.statements.findIndex((s) => s === statementList);
1325
-
1326
- if (statementIndex < 0) {
1327
- return false;
1328
- }
1329
- statementIndex++;
1330
-
1331
- while (statementIndex < moduleOrSuite.statements.length) {
1332
- const nextStatement = moduleOrSuite.statements[statementIndex];
1333
- if (nextStatement.nodeType !== ParseNodeType.StatementList) {
1334
- break;
1335
- }
1336
-
1337
- if (nextStatement.statements[0]?.nodeType === ParseNodeType.StringList) {
1338
- // Skip over comments
1339
- statementIndex++;
1340
- continue;
1341
- }
1342
-
1343
- if (nextStatement.statements[0]?.nodeType === ParseNodeType.Assignment) {
1344
- const assignNode = nextStatement.statements[0];
1345
- if (
1346
- assignNode.leftExpression.nodeType === ParseNodeType.MemberAccess &&
1347
- assignNode.leftExpression.memberName.value === '__defaults__'
1348
- ) {
1349
- const defaultTarget = assignNode.leftExpression.leftExpression;
1350
- if (
1351
- defaultTarget.nodeType === ParseNodeType.MemberAccess &&
1352
- defaultTarget.memberName.value === '__new__' &&
1353
- defaultTarget.leftExpression.nodeType === ParseNodeType.Name &&
1354
- defaultTarget.leftExpression.value === namedTupleAssignedName
1355
- ) {
1356
- return true;
1357
- }
1358
- }
1359
- }
1360
-
1361
- break;
1362
- }
1363
-
1364
- return false;
1365
- }
1366
-
1367
- // This simple parse tree walker calls a callback function
1368
- // for each NameNode it encounters.
1369
- export class NameNodeWalker extends ParseTreeWalker {
1370
- private _subscriptIndex: number | undefined;
1371
- private _baseExpression: ExpressionNode | undefined;
1372
-
1373
- constructor(
1374
- private _callback: (
1375
- node: NameNode,
1376
- subscriptIndex: number | undefined,
1377
- baseExpression: ExpressionNode | undefined
1378
- ) => void
1379
- ) {
1380
- super();
1381
- }
1382
-
1383
- override visitName(node: NameNode) {
1384
- this._callback(node, this._subscriptIndex, this._baseExpression);
1385
- return true;
1386
- }
1387
-
1388
- override visitIndex(node: IndexNode) {
1389
- this.walk(node.baseExpression);
1390
-
1391
- const prevSubscriptIndex = this._subscriptIndex;
1392
- const prevBaseExpression = this._baseExpression;
1393
- this._baseExpression = node.baseExpression;
1394
-
1395
- node.items.forEach((item, index) => {
1396
- this._subscriptIndex = index;
1397
- this.walk(item);
1398
- });
1399
-
1400
- this._subscriptIndex = prevSubscriptIndex;
1401
- this._baseExpression = prevBaseExpression;
1402
-
1403
- return false;
1404
- }
1405
- }
1406
-
1407
- export class CallNodeWalker extends ParseTreeWalker {
1408
- constructor(private _callback: (node: CallNode) => void) {
1409
- super();
1410
- }
1411
-
1412
- override visitCall(node: CallNode) {
1413
- this._callback(node);
1414
- return true;
1415
- }
1416
- }
1417
-
1418
- export function getEnclosingParameter(node: ParseNode): ParameterNode | undefined {
1419
- let curNode: ParseNode | undefined = node;
1420
-
1421
- while (curNode) {
1422
- if (curNode.nodeType === ParseNodeType.Parameter) {
1423
- return curNode;
1424
- }
1425
- curNode = curNode.parent;
1426
- }
1427
-
1428
- return undefined;
1429
- }
1430
-
1431
- export function getCallNodeAndActiveParameterIndex(
1432
- node: ParseNode,
1433
- insertionOffset: number,
1434
- tokens: TextRangeCollection<Token>
1435
- ) {
1436
- // Find the call node that contains the specified node.
1437
- let curNode: ParseNode | undefined = node;
1438
- let callNode: CallNode | undefined;
1439
-
1440
- while (curNode !== undefined) {
1441
- // make sure we only look at callNodes when we are inside their arguments
1442
- if (curNode.nodeType === ParseNodeType.Call) {
1443
- if (isOffsetInsideCallArgs(curNode, insertionOffset)) {
1444
- callNode = curNode;
1445
- break;
1446
- }
1447
- }
1448
- curNode = curNode.parent;
1449
- }
1450
-
1451
- if (!callNode || !callNode.arguments) {
1452
- return undefined;
1453
- }
1454
-
1455
- const endPosition = TextRange.getEnd(callNode);
1456
- if (insertionOffset > endPosition) {
1457
- return undefined;
1458
- }
1459
-
1460
- const tokenAtEnd = getTokenAt(tokens, endPosition - 1);
1461
- if (insertionOffset === endPosition && tokenAtEnd?.type === TokenType.CloseParenthesis) {
1462
- return undefined;
1463
- }
1464
-
1465
- let addedActive = false;
1466
- let activeIndex = -1;
1467
- let activeOrFake = false;
1468
- callNode.arguments.forEach((arg, index) => {
1469
- if (addedActive) {
1470
- return;
1471
- }
1472
-
1473
- // Calculate the argument's bounds including whitespace and colons.
1474
- let start = arg.start;
1475
- const startTokenIndex = tokens.getItemAtPosition(start);
1476
- if (startTokenIndex >= 0) {
1477
- start = TextRange.getEnd(tokens.getItemAt(startTokenIndex - 1));
1478
- }
1479
-
1480
- let end = TextRange.getEnd(arg);
1481
- const endTokenIndex = tokens.getItemAtPosition(end);
1482
- if (endTokenIndex >= 0) {
1483
- // Find the true end of the argument by searching for the
1484
- // terminating comma or parenthesis.
1485
- for (let i = endTokenIndex; i < tokens.count; i++) {
1486
- const tok = tokens.getItemAt(i);
1487
-
1488
- switch (tok.type) {
1489
- case TokenType.Comma:
1490
- case TokenType.CloseParenthesis:
1491
- break;
1492
- default:
1493
- continue;
1494
- }
1495
-
1496
- end = TextRange.getEnd(tok);
1497
- break;
1498
- }
1499
- }
1500
-
1501
- if (insertionOffset < end) {
1502
- activeIndex = index;
1503
- activeOrFake = insertionOffset >= start;
1504
- addedActive = true;
1505
- }
1506
- });
1507
-
1508
- if (!addedActive) {
1509
- activeIndex = callNode.arguments.length + 1;
1510
- }
1511
-
1512
- return {
1513
- callNode,
1514
- activeIndex,
1515
- activeOrFake,
1516
- };
1517
-
1518
- function isOffsetInsideCallArgs(node: CallNode, offset: number) {
1519
- let found = true;
1520
- const argumentStart =
1521
- node.leftExpression.length > 0 ? TextRange.getEnd(node.leftExpression) - 1 : node.leftExpression.start;
1522
- const index = tokens.getItemAtPosition(argumentStart);
1523
- if (index >= 0 && index + 1 < tokens.count) {
1524
- const token = tokens.getItemAt(index + 1);
1525
- if (token.type === TokenType.OpenParenthesis && insertionOffset < TextRange.getEnd(token)) {
1526
- // position must be after '('
1527
- found = false;
1528
- }
1529
- }
1530
- return found;
1531
- }
1532
- }
1533
-
1534
- export function getTokenAt(tokens: TextRangeCollection<Token>, position: number) {
1535
- const index = tokens.getItemAtPosition(position);
1536
- if (index < 0) {
1537
- return undefined;
1538
- }
1539
-
1540
- return tokens.getItemAt(index);
1541
- }
1542
-
1543
- export function getTokenOverlapping(tokens: TextRangeCollection<Token>, position: number) {
1544
- const index = tokens.getItemAtPosition(position);
1545
- if (index < 0) {
1546
- return undefined;
1547
- }
1548
-
1549
- const token = tokens.getItemAt(index);
1550
- return TextRange.overlaps(token, position) ? token : undefined;
1551
- }
1552
-
1553
- export function printParseNodeType(type: ParseNodeType) {
1554
- switch (type) {
1555
- case ParseNodeType.Error:
1556
- return 'Error';
1557
-
1558
- case ParseNodeType.Argument:
1559
- return 'Argument';
1560
-
1561
- case ParseNodeType.Assert:
1562
- return 'Assert';
1563
-
1564
- case ParseNodeType.Assignment:
1565
- return 'Assignment';
1566
-
1567
- case ParseNodeType.AssignmentExpression:
1568
- return 'AssignmentExpression';
1569
-
1570
- case ParseNodeType.AugmentedAssignment:
1571
- return 'AugmentedAssignment';
1572
-
1573
- case ParseNodeType.Await:
1574
- return 'Await';
1575
-
1576
- case ParseNodeType.BinaryOperation:
1577
- return 'BinaryOperation';
1578
-
1579
- case ParseNodeType.Break:
1580
- return 'Break';
1581
-
1582
- case ParseNodeType.Call:
1583
- return 'Call';
1584
-
1585
- case ParseNodeType.Class:
1586
- return 'Class';
1587
-
1588
- case ParseNodeType.Constant:
1589
- return 'Constant';
1590
-
1591
- case ParseNodeType.Continue:
1592
- return 'Continue';
1593
-
1594
- case ParseNodeType.Decorator:
1595
- return 'Decorator';
1596
-
1597
- case ParseNodeType.Del:
1598
- return 'Del';
1599
-
1600
- case ParseNodeType.Dictionary:
1601
- return 'Dictionary';
1602
-
1603
- case ParseNodeType.DictionaryExpandEntry:
1604
- return 'DictionaryExpandEntry';
1605
-
1606
- case ParseNodeType.DictionaryKeyEntry:
1607
- return 'DictionaryKeyEntry';
1608
-
1609
- case ParseNodeType.Ellipsis:
1610
- return 'Ellipsis';
1611
-
1612
- case ParseNodeType.If:
1613
- return 'If';
1614
-
1615
- case ParseNodeType.Import:
1616
- return 'Import';
1617
-
1618
- case ParseNodeType.ImportAs:
1619
- return 'ImportAs';
1620
-
1621
- case ParseNodeType.ImportFrom:
1622
- return 'ImportFrom';
1623
-
1624
- case ParseNodeType.ImportFromAs:
1625
- return 'ImportFromAs';
1626
-
1627
- case ParseNodeType.Index:
1628
- return 'Index';
1629
-
1630
- case ParseNodeType.Except:
1631
- return 'Except';
1632
-
1633
- case ParseNodeType.For:
1634
- return 'For';
1635
-
1636
- case ParseNodeType.FormatString:
1637
- return 'FormatString';
1638
-
1639
- case ParseNodeType.Function:
1640
- return 'Function';
1641
-
1642
- case ParseNodeType.Global:
1643
- return 'Global';
1644
-
1645
- case ParseNodeType.Lambda:
1646
- return 'Lambda';
1647
-
1648
- case ParseNodeType.List:
1649
- return 'List';
1650
-
1651
- case ParseNodeType.ListComprehension:
1652
- return 'ListComprehension';
1653
-
1654
- case ParseNodeType.ListComprehensionFor:
1655
- return 'ListComprehensionFor';
1656
-
1657
- case ParseNodeType.ListComprehensionIf:
1658
- return 'ListComprehensionIf';
1659
-
1660
- case ParseNodeType.MemberAccess:
1661
- return 'MemberAccess';
1662
-
1663
- case ParseNodeType.Module:
1664
- return 'Module';
1665
-
1666
- case ParseNodeType.ModuleName:
1667
- return 'ModuleName';
1668
-
1669
- case ParseNodeType.Name:
1670
- return 'Name';
1671
-
1672
- case ParseNodeType.Nonlocal:
1673
- return 'Nonlocal';
1674
-
1675
- case ParseNodeType.Number:
1676
- return 'Number';
1677
-
1678
- case ParseNodeType.Parameter:
1679
- return 'Parameter';
1680
-
1681
- case ParseNodeType.Pass:
1682
- return 'Pass';
1683
-
1684
- case ParseNodeType.Raise:
1685
- return 'Raise';
1686
-
1687
- case ParseNodeType.Return:
1688
- return 'Return';
1689
-
1690
- case ParseNodeType.Set:
1691
- return 'Set';
1692
-
1693
- case ParseNodeType.Slice:
1694
- return 'Slice';
1695
-
1696
- case ParseNodeType.StatementList:
1697
- return 'StatementList';
1698
-
1699
- case ParseNodeType.StringList:
1700
- return 'StringList';
1701
-
1702
- case ParseNodeType.String:
1703
- return 'String';
1704
-
1705
- case ParseNodeType.Suite:
1706
- return 'Suite';
1707
-
1708
- case ParseNodeType.Ternary:
1709
- return 'Ternary';
1710
-
1711
- case ParseNodeType.Tuple:
1712
- return 'Tuple';
1713
-
1714
- case ParseNodeType.Try:
1715
- return 'Try';
1716
-
1717
- case ParseNodeType.TypeAnnotation:
1718
- return 'TypeAnnotation';
1719
-
1720
- case ParseNodeType.UnaryOperation:
1721
- return 'UnaryOperation';
1722
-
1723
- case ParseNodeType.Unpack:
1724
- return 'Unpack';
1725
-
1726
- case ParseNodeType.While:
1727
- return 'While';
1728
-
1729
- case ParseNodeType.With:
1730
- return 'With';
1731
-
1732
- case ParseNodeType.WithItem:
1733
- return 'WithItem';
1734
-
1735
- case ParseNodeType.Yield:
1736
- return 'Yield';
1737
-
1738
- case ParseNodeType.YieldFrom:
1739
- return 'YieldFrom';
1740
-
1741
- case ParseNodeType.FunctionAnnotation:
1742
- return 'FunctionAnnotation';
1743
-
1744
- case ParseNodeType.Match:
1745
- return 'Match';
1746
-
1747
- case ParseNodeType.Case:
1748
- return 'Case';
1749
-
1750
- case ParseNodeType.PatternSequence:
1751
- return 'PatternSequence';
1752
-
1753
- case ParseNodeType.PatternAs:
1754
- return 'PatternAs';
1755
-
1756
- case ParseNodeType.PatternLiteral:
1757
- return 'PatternLiteral';
1758
-
1759
- case ParseNodeType.PatternClass:
1760
- return 'PatternClass';
1761
-
1762
- case ParseNodeType.PatternCapture:
1763
- return 'PatternCapture';
1764
-
1765
- case ParseNodeType.PatternMapping:
1766
- return 'PatternMapping';
1767
-
1768
- case ParseNodeType.PatternMappingKeyEntry:
1769
- return 'PatternMappingKeyEntry';
1770
-
1771
- case ParseNodeType.PatternMappingExpandEntry:
1772
- return 'PatternMappingExpandEntry';
1773
-
1774
- case ParseNodeType.PatternValue:
1775
- return 'PatternValue';
1776
-
1777
- case ParseNodeType.PatternClassArgument:
1778
- return 'PatternClassArgument';
1779
- }
1780
-
1781
- assertNever(type);
1782
- }
1783
-
1784
- export function isWriteAccess(node: NameNode) {
1785
- let prevNode: ParseNode = node;
1786
- let curNode: ParseNode | undefined = prevNode.parent;
1787
-
1788
- while (curNode) {
1789
- switch (curNode.nodeType) {
1790
- case ParseNodeType.Assignment: {
1791
- return prevNode === curNode.leftExpression;
1792
- }
1793
-
1794
- case ParseNodeType.AugmentedAssignment: {
1795
- return prevNode === curNode.leftExpression;
1796
- }
1797
-
1798
- case ParseNodeType.AssignmentExpression: {
1799
- return prevNode === curNode.name;
1800
- }
1801
-
1802
- case ParseNodeType.Del: {
1803
- return true;
1804
- }
1805
-
1806
- case ParseNodeType.For: {
1807
- return prevNode === curNode.targetExpression;
1808
- }
1809
-
1810
- case ParseNodeType.ImportAs: {
1811
- return (
1812
- prevNode === curNode.alias ||
1813
- (curNode.module.nameParts.length > 0 && prevNode === curNode.module.nameParts[0])
1814
- );
1815
- }
1816
-
1817
- case ParseNodeType.ImportFromAs: {
1818
- return prevNode === curNode.alias || (!curNode.alias && prevNode === curNode.name);
1819
- }
1820
-
1821
- case ParseNodeType.MemberAccess: {
1822
- if (prevNode !== curNode.memberName) {
1823
- return false;
1824
- }
1825
- break;
1826
- }
1827
-
1828
- case ParseNodeType.Except: {
1829
- return prevNode === curNode.name;
1830
- }
1831
-
1832
- case ParseNodeType.With: {
1833
- return curNode.withItems.some((item) => item === prevNode);
1834
- }
1835
-
1836
- case ParseNodeType.ListComprehensionFor: {
1837
- return prevNode === curNode.targetExpression;
1838
- }
1839
-
1840
- case ParseNodeType.TypeAnnotation: {
1841
- if (prevNode === curNode.typeAnnotation) {
1842
- return false;
1843
- }
1844
- break;
1845
- }
1846
-
1847
- case ParseNodeType.Function:
1848
- case ParseNodeType.Class:
1849
- case ParseNodeType.Module: {
1850
- return false;
1851
- }
1852
- }
1853
-
1854
- prevNode = curNode;
1855
- curNode = curNode.parent;
1856
- }
1857
-
1858
- return false;
1859
- }
1860
-
1861
- export function getModuleNode(node: ParseNode) {
1862
- let current: ParseNode | undefined = node;
1863
- while (current && current.nodeType !== ParseNodeType.Module) {
1864
- current = current.parent;
1865
- }
1866
-
1867
- return current;
1868
- }
1869
-
1870
- export function getFileInfoFromNode(node: ParseNode) {
1871
- const current = getModuleNode(node);
1872
- return current ? AnalyzerNodeInfo.getFileInfo(current) : undefined;
1873
- }
1874
-
1875
- export function isFunctionSuiteEmpty(node: FunctionNode) {
1876
- let isEmpty = true;
1877
-
1878
- node.suite.statements.forEach((statement) => {
1879
- if (statement.nodeType === ParseNodeType.Error) {
1880
- return;
1881
- } else if (statement.nodeType === ParseNodeType.StatementList) {
1882
- statement.statements.forEach((subStatement) => {
1883
- // Allow docstrings, ellipsis, and pass statements.
1884
- if (
1885
- subStatement.nodeType !== ParseNodeType.Ellipsis &&
1886
- subStatement.nodeType !== ParseNodeType.StringList &&
1887
- subStatement.nodeType !== ParseNodeType.Pass
1888
- ) {
1889
- isEmpty = false;
1890
- }
1891
- });
1892
- } else {
1893
- isEmpty = false;
1894
- }
1895
- });
1896
-
1897
- return isEmpty;
1898
- }
1899
-
1900
- export function getTypeAnnotationForParameter(node: FunctionNode, paramIndex: number): ExpressionNode | undefined {
1901
- if (paramIndex >= node.parameters.length) {
1902
- return undefined;
1903
- }
1904
-
1905
- const param = node.parameters[paramIndex];
1906
- if (param.typeAnnotation) {
1907
- return param.typeAnnotation;
1908
- } else if (param.typeAnnotationComment) {
1909
- return param.typeAnnotationComment;
1910
- }
1911
-
1912
- if (!node.functionAnnotationComment || node.functionAnnotationComment.isParamListEllipsis) {
1913
- return undefined;
1914
- }
1915
-
1916
- let firstCommentAnnotationIndex = 0;
1917
- const paramAnnotations = node.functionAnnotationComment.paramTypeAnnotations;
1918
- if (paramAnnotations.length < node.parameters.length) {
1919
- firstCommentAnnotationIndex = 1;
1920
- }
1921
-
1922
- const adjIndex = paramIndex - firstCommentAnnotationIndex;
1923
- if (adjIndex < 0 || adjIndex >= paramAnnotations.length) {
1924
- return undefined;
1925
- }
1926
-
1927
- return paramAnnotations[adjIndex];
1928
- }
1929
-
1930
- export function isImportModuleName(node: ParseNode): boolean {
1931
- return getFirstAncestorOrSelfOfKind(node, ParseNodeType.ModuleName)?.parent?.nodeType === ParseNodeType.ImportAs;
1932
- }
1933
-
1934
- export function isImportAlias(node: ParseNode): boolean {
1935
- return node.parent?.nodeType === ParseNodeType.ImportAs && node.parent.alias === node;
1936
- }
1937
-
1938
- export function isFromImportModuleName(node: ParseNode): boolean {
1939
- return getFirstAncestorOrSelfOfKind(node, ParseNodeType.ModuleName)?.parent?.nodeType === ParseNodeType.ImportFrom;
1940
- }
1941
-
1942
- export function isFromImportName(node: ParseNode): boolean {
1943
- return node.parent?.nodeType === ParseNodeType.ImportFromAs && node.parent.name === node;
1944
- }
1945
-
1946
- export function isFromImportAlias(node: ParseNode): boolean {
1947
- return node.parent?.nodeType === ParseNodeType.ImportFromAs && node.parent.alias === node;
1948
- }
1949
-
1950
- export function isLastNameOfModuleName(node: NameNode): boolean {
1951
- if (node.parent?.nodeType !== ParseNodeType.ModuleName) {
1952
- return false;
1953
- }
1954
-
1955
- const module = node.parent;
1956
- if (module.nameParts.length === 0) {
1957
- return false;
1958
- }
1959
-
1960
- return module.nameParts[module.nameParts.length - 1] === node;
1961
- }
1962
-
1963
- function* _getAncestorsIncludingSelf(node: ParseNode | undefined) {
1964
- while (node !== undefined) {
1965
- yield node;
1966
- node = node.parent;
1967
- }
1968
- }
1969
-
1970
- type NodeForType<NT extends ParseNodeType, T extends ParseNode> = T extends ParseNode & { nodeType: NT } ? T : never;
1971
-
1972
- export function getFirstAncestorOrSelfOfKind<NT extends ParseNodeType, T extends ParseNode>(
1973
- node: ParseNode | undefined,
1974
- type: NT
1975
- ): NodeForType<NT, T> | undefined {
1976
- return getFirstAncestorOrSelf(node, (n) => n.nodeType === type) as NodeForType<NT, T> | undefined;
1977
- }
1978
-
1979
- export function getFirstAncestorOrSelf(
1980
- node: ParseNode | undefined,
1981
- predicate: (node: ParseNode) => boolean
1982
- ): ParseNode | undefined {
1983
- for (const current of _getAncestorsIncludingSelf(node)) {
1984
- if (predicate(current)) {
1985
- return current;
1986
- }
1987
- }
1988
-
1989
- return undefined;
1990
- }
1991
-
1992
- export function getDottedNameWithGivenNodeAsLastName(node: NameNode): MemberAccessNode | NameNode {
1993
- // Shape of dotted name is
1994
- // MemberAccess (ex, a.b)
1995
- // Name Name
1996
- // or
1997
- // MemberAccess (ex, a.b.c)
1998
- // MemberAccess Name
1999
- // Name Name
2000
- if (node.parent?.nodeType !== ParseNodeType.MemberAccess) {
2001
- return node;
2002
- }
2003
-
2004
- if (node.parent.leftExpression === node) {
2005
- return node;
2006
- }
2007
-
2008
- return node.parent;
2009
- }
2010
-
2011
- export function getDottedName(node: MemberAccessNode | NameNode): NameNode[] | undefined {
2012
- // ex) [a] or [a].b
2013
- // simple case, [a]
2014
- if (node.nodeType === ParseNodeType.Name) {
2015
- return [node];
2016
- }
2017
-
2018
- // dotted name case.
2019
- const names: NameNode[] = [];
2020
- if (_getDottedName(node, names)) {
2021
- return names.reverse();
2022
- }
2023
-
2024
- return undefined;
2025
-
2026
- function _getDottedName(node: MemberAccessNode | NameNode, names: NameNode[]): boolean {
2027
- if (node.nodeType === ParseNodeType.Name) {
2028
- names.push(node);
2029
- return true;
2030
- }
2031
-
2032
- names.push(node.memberName);
2033
-
2034
- if (
2035
- node.leftExpression.nodeType === ParseNodeType.Name ||
2036
- node.leftExpression.nodeType === ParseNodeType.MemberAccess
2037
- ) {
2038
- return _getDottedName(node.leftExpression, names);
2039
- }
2040
-
2041
- return false;
2042
- }
2043
- }
2044
-
2045
- export function getFirstNameOfDottedName(node: MemberAccessNode | NameNode): NameNode | undefined {
2046
- // ex) [a] or [a].b
2047
- if (node.nodeType === ParseNodeType.Name) {
2048
- return node;
2049
- }
2050
-
2051
- if (
2052
- node.leftExpression.nodeType === ParseNodeType.Name ||
2053
- node.leftExpression.nodeType === ParseNodeType.MemberAccess
2054
- ) {
2055
- return getFirstNameOfDottedName(node.leftExpression);
2056
- }
2057
-
2058
- return undefined;
2059
- }
2060
-
2061
- export function isFirstNameOfDottedName(node: NameNode): boolean {
2062
- // ex) [A] or [A].B.C.D
2063
- if (node.parent?.nodeType !== ParseNodeType.MemberAccess) {
2064
- return true;
2065
- }
2066
-
2067
- if (node.parent.leftExpression === node) {
2068
- return true;
2069
- }
2070
-
2071
- return false;
2072
- }
2073
-
2074
- export function isLastNameOfDottedName(node: NameNode): boolean {
2075
- // ex) A or D.C.B.[A]
2076
- if (node.parent?.nodeType !== ParseNodeType.MemberAccess) {
2077
- return true;
2078
- }
2079
-
2080
- if (
2081
- node.parent.leftExpression.nodeType !== ParseNodeType.Name &&
2082
- node.parent.leftExpression.nodeType !== ParseNodeType.MemberAccess
2083
- ) {
2084
- return false;
2085
- }
2086
-
2087
- if (node.parent.leftExpression === node) {
2088
- return false;
2089
- }
2090
-
2091
- return node.parent.parent?.nodeType !== ParseNodeType.MemberAccess;
2092
- }
2093
-
2094
- export function getStringNodeValueRange(node: StringNode) {
2095
- return getStringValueRange(node.token);
2096
- }
2097
-
2098
- export function getStringValueRange(token: StringToken) {
2099
- const length = token.quoteMarkLength;
2100
- const hasEnding = !(token.flags & StringTokenFlags.Unterminated);
2101
- return TextRange.create(token.start + length, token.length - length - (hasEnding ? length : 0));
2102
- }
2103
-
2104
- export function getFullStatementRange(statementNode: ParseNode, tokenizerOutput: TokenizerOutput): Range {
2105
- const range = convertTextRangeToRange(statementNode, tokenizerOutput.lines);
2106
-
2107
- // First, see whether there are other tokens except semicolon or new line on the same line.
2108
- const endPosition = _getEndPositionIfMultipleStatementsAreOnSameLine(
2109
- range,
2110
- TextRange.getEnd(statementNode),
2111
- tokenizerOutput
2112
- );
2113
-
2114
- if (endPosition) {
2115
- return { start: range.start, end: endPosition };
2116
- }
2117
-
2118
- // If not, delete the whole line.
2119
- if (range.end.line === tokenizerOutput.lines.count - 1) {
2120
- return range;
2121
- }
2122
-
2123
- return { start: range.start, end: { line: range.end.line + 1, character: 0 } };
2124
- }
2125
-
2126
- export function isUnannotatedFunction(node: FunctionNode) {
2127
- return (
2128
- node.returnTypeAnnotation === undefined &&
2129
- node.parameters.every(
2130
- (param) => param.typeAnnotation === undefined && param.typeAnnotationComment === undefined
2131
- )
2132
- );
2133
- }
2134
-
2135
- function _getEndPositionIfMultipleStatementsAreOnSameLine(
2136
- range: Range,
2137
- tokenPosition: number,
2138
- tokenizerOutput: TokenizerOutput
2139
- ): Position | undefined {
2140
- const tokenIndex = tokenizerOutput.tokens.getItemAtPosition(tokenPosition);
2141
- if (tokenIndex < 0) {
2142
- return undefined;
2143
- }
2144
-
2145
- let currentIndex = tokenIndex;
2146
- for (; currentIndex < tokenizerOutput.tokens.count; currentIndex++) {
2147
- const token = tokenizerOutput.tokens.getItemAt(currentIndex);
2148
- const tokenRange = convertTextRangeToRange(token, tokenizerOutput.lines);
2149
- if (range.end.line !== tokenRange.start.line) {
2150
- break;
2151
- }
2152
- }
2153
-
2154
- for (let index = tokenIndex; index < currentIndex; index++) {
2155
- const token = tokenizerOutput.tokens.getItemAt(index);
2156
- if (token.type === TokenType.Semicolon || token.type === TokenType.NewLine) {
2157
- continue;
2158
- }
2159
-
2160
- const tokenRange = convertTextRangeToRange(token, tokenizerOutput.lines);
2161
- return tokenRange.start;
2162
- }
2163
-
2164
- return undefined;
2165
- }