@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,1400 +0,0 @@
1
- /*
2
- * renameModuleProvider.ts
3
- * Copyright (c) Microsoft Corporation.
4
- * Licensed under the MIT license.
5
- *
6
- * Logic that updates affected references of a module rename/move.
7
- */
8
-
9
- import { CancellationToken } from 'vscode-languageserver';
10
-
11
- import { getImportInfo } from '../analyzer/analyzerNodeInfo';
12
- import {
13
- AliasDeclaration,
14
- Declaration,
15
- isAliasDeclaration,
16
- isClassDeclaration,
17
- isFunctionDeclaration,
18
- isVariableDeclaration,
19
- } from '../analyzer/declaration';
20
- import { createSynthesizedAliasDeclaration, getNameFromDeclaration } from '../analyzer/declarationUtils';
21
- import { createImportedModuleDescriptor, ImportResolver, ModuleNameAndType } from '../analyzer/importResolver';
22
- import {
23
- getDirectoryLeadingDotsPointsTo,
24
- getImportGroupFromModuleNameAndType,
25
- getRelativeModuleName,
26
- getTextEditsForAutoImportInsertion,
27
- getTextEditsForAutoImportSymbolAddition,
28
- getTextRangeForImportNameDeletion,
29
- getTopLevelImports,
30
- ImportNameInfo,
31
- ImportStatement,
32
- ImportStatements,
33
- } from '../analyzer/importStatementUtils';
34
- import {
35
- getDottedNameWithGivenNodeAsLastName,
36
- getFirstAncestorOrSelfOfKind,
37
- getFullStatementRange,
38
- isFromImportAlias,
39
- isFromImportModuleName,
40
- isFromImportName,
41
- isImportAlias,
42
- isImportModuleName,
43
- isLastNameOfModuleName,
44
- } from '../analyzer/parseTreeUtils';
45
- import { ParseTreeWalker } from '../analyzer/parseTreeWalker';
46
- import { isStubFile } from '../analyzer/sourceMapper';
47
- import { TypeEvaluator } from '../analyzer/typeEvaluatorTypes';
48
- import { appendArray, getOrAdd, removeArrayElements } from '../common/collectionUtils';
49
- import { ConfigOptions } from '../common/configOptions';
50
- import { isString } from '../common/core';
51
- import { assert, assertNever } from '../common/debug';
52
- import { FileEditAction } from '../common/editAction';
53
- import { FileSystem } from '../common/fileSystem';
54
- import {
55
- combinePaths,
56
- getDirectoryChangeKind,
57
- getDirectoryPath,
58
- getFileExtension,
59
- getFileName,
60
- isDirectory,
61
- isFile,
62
- resolvePaths,
63
- stripFileExtension,
64
- } from '../common/pathUtils';
65
- import { convertOffsetToPosition, convertTextRangeToRange } from '../common/positionUtils';
66
- import { doRangesIntersect, extendRange, Range, rangesAreEqual, TextRange } from '../common/textRange';
67
- import {
68
- ImportAsNode,
69
- ImportFromAsNode,
70
- ImportFromNode,
71
- ImportNode,
72
- isExpressionNode,
73
- MemberAccessNode,
74
- ModuleNameNode,
75
- ModuleNode,
76
- NameNode,
77
- ParseNode,
78
- ParseNodeType,
79
- } from '../parser/parseNodes';
80
- import { ParseResults } from '../parser/parser';
81
- import { CollectionResult, DocumentSymbolCollector } from './documentSymbolCollector';
82
-
83
- enum UpdateType {
84
- File,
85
- Folder,
86
- Symbol,
87
- }
88
-
89
- export class RenameModuleProvider {
90
- static createForModule(
91
- importResolver: ImportResolver,
92
- configOptions: ConfigOptions,
93
- evaluator: TypeEvaluator,
94
- path: string,
95
- newPath: string,
96
- token: CancellationToken
97
- ): RenameModuleProvider | undefined {
98
- if (!importResolver.fileSystem.existsSync(path)) {
99
- return undefined;
100
- }
101
-
102
- if (isFile(importResolver.fileSystem, path)) {
103
- return this._create(importResolver, configOptions, evaluator, path, newPath, UpdateType.File, token);
104
- } else if (isDirectory(importResolver.fileSystem, path)) {
105
- // Make sure folder path is simple rename.
106
- if (getDirectoryChangeKind(importResolver.fileSystem, path, newPath) !== 'Renamed') {
107
- return undefined;
108
- }
109
-
110
- // We don't support namespace folder name. Currently, we don't have
111
- // a way to find namespace folder references.
112
- let fileNameForPackage = combinePaths(path, '__init__.pyi');
113
- if (!importResolver.fileSystem.existsSync(fileNameForPackage)) {
114
- fileNameForPackage = combinePaths(path, '__init__.py');
115
- if (!importResolver.fileSystem.existsSync(fileNameForPackage)) {
116
- return undefined;
117
- }
118
- }
119
-
120
- return this._create(
121
- importResolver,
122
- configOptions,
123
- evaluator,
124
- fileNameForPackage,
125
- combinePaths(newPath, getFileName(fileNameForPackage)),
126
- UpdateType.Folder,
127
- token
128
- );
129
- }
130
-
131
- return undefined;
132
- }
133
-
134
- static createForSymbol(
135
- importResolver: ImportResolver,
136
- configOptions: ConfigOptions,
137
- evaluator: TypeEvaluator,
138
- path: string,
139
- newPath: string,
140
- declarations: Declaration[],
141
- token: CancellationToken
142
- ): RenameModuleProvider | undefined {
143
- if (!importResolver.fileSystem.existsSync(path)) {
144
- return undefined;
145
- }
146
-
147
- const filteredDecls = declarations.filter(
148
- (d) => isClassDeclaration(d) || isFunctionDeclaration(d) || isVariableDeclaration(d)
149
- );
150
-
151
- if (filteredDecls.length === 0) {
152
- return undefined;
153
- }
154
-
155
- return this._create(
156
- importResolver,
157
- configOptions,
158
- evaluator,
159
- path,
160
- newPath,
161
- UpdateType.Symbol,
162
- filteredDecls,
163
- token!
164
- );
165
- }
166
-
167
- static getRenameModulePath(declarations: Declaration[]) {
168
- // If we have a decl with no node, we will prefer that decl over others.
169
- // The decl with no node is a synthesized alias decl created only for IDE case
170
- // that should point to the right module file.
171
- const bestDecl = declarations.find((d) => !d.node);
172
- if (bestDecl) {
173
- return bestDecl.path;
174
- }
175
-
176
- // Otherwise, prefer stub if we have one. or just return first decl.
177
- const declarationPaths = [...declarations.reduce((s, d) => s.add(d.path), new Set<string>())];
178
- const stubIndex = declarationPaths.findIndex((d) => isStubFile(d));
179
- if (stubIndex >= 0) {
180
- return declarationPaths[stubIndex];
181
- }
182
-
183
- return declarationPaths[0];
184
- }
185
-
186
- static getRenameModulePathInfo(declarationPath: string, newName: string) {
187
- const filePath = getFilePathToRename(declarationPath);
188
- const newFilePath = replaceFileName(filePath, newName);
189
-
190
- return { filePath, newFilePath };
191
-
192
- function getFilePathToRename(filePath: string) {
193
- const fileName = stripFileExtension(getFileName(filePath));
194
- if (fileName === '__init__') {
195
- return getDirectoryPath(filePath);
196
- }
197
-
198
- return filePath;
199
- }
200
-
201
- function replaceFileName(filePath: string, newName: string) {
202
- const ext = getFileExtension(filePath);
203
- const directory = getDirectoryPath(filePath);
204
-
205
- return combinePaths(directory, `${newName}${ext}`);
206
- }
207
- }
208
-
209
- private static _create(
210
- importResolver: ImportResolver,
211
- configOptions: ConfigOptions,
212
- evaluator: TypeEvaluator,
213
- moduleFilePath: string,
214
- newModuleFilePath: string,
215
- type: UpdateType,
216
- tokenOrDeclarations: Declaration[] | CancellationToken,
217
- token?: CancellationToken
218
- ): RenameModuleProvider | undefined {
219
- const execEnv = configOptions.findExecEnvironment(moduleFilePath);
220
- const moduleName = importResolver.getModuleNameForImport(moduleFilePath, execEnv);
221
- if (!moduleName.moduleName) {
222
- return undefined;
223
- }
224
-
225
- const newModuleName = importResolver.getModuleNameForImport(newModuleFilePath, execEnv);
226
- if (!newModuleName.moduleName) {
227
- return undefined;
228
- }
229
-
230
- token = CancellationToken.is(tokenOrDeclarations) ? tokenOrDeclarations : token;
231
- const declarations = CancellationToken.is(tokenOrDeclarations) ? [] : tokenOrDeclarations;
232
- if (declarations.length === 0) {
233
- // Create synthesized alias decls from the given file path. If the given file is for stub,
234
- // create one for the corresponding py file as well.
235
- declarations.push(createSynthesizedAliasDeclaration(moduleFilePath));
236
- if (isStubFile(moduleFilePath)) {
237
- // The resolveImport should make sure non stub file search to happen.
238
- importResolver.resolveImport(
239
- moduleFilePath,
240
- execEnv,
241
- createImportedModuleDescriptor(moduleName.moduleName)
242
- );
243
-
244
- importResolver
245
- .getSourceFilesFromStub(moduleFilePath, execEnv, /* mapCompiled */ false)
246
- .forEach((p) => declarations!.push(createSynthesizedAliasDeclaration(p)));
247
- }
248
- }
249
-
250
- return new RenameModuleProvider(
251
- importResolver.fileSystem,
252
- evaluator,
253
- moduleFilePath,
254
- newModuleFilePath,
255
- moduleName,
256
- newModuleName,
257
- type,
258
- declarations,
259
- token!
260
- );
261
- }
262
-
263
- private readonly _newModuleFilePath: string;
264
- private readonly _moduleNames: string[];
265
- private readonly _newModuleNames: string[];
266
- private readonly _onlyNameChanged: boolean;
267
- private readonly _results = new Map<string, FileEditAction[]>();
268
- private readonly _aliasIntroduced = new Set<ImportAsNode>();
269
-
270
- private constructor(
271
- private _fs: FileSystem,
272
- private _evaluator: TypeEvaluator,
273
- private _moduleFilePath: string,
274
- newModuleFilePath: string,
275
- private _moduleNameAndType: ModuleNameAndType,
276
- private _newModuleNameAndType: ModuleNameAndType,
277
- private _type: UpdateType,
278
- private _declarations: Declaration[],
279
- private _token: CancellationToken
280
- ) {
281
- // moduleName and newModuleName are always in the absolute path form.
282
- this._newModuleFilePath = resolvePaths(newModuleFilePath);
283
-
284
- this._moduleNames = this._moduleName.split('.');
285
- this._newModuleNames = this._newModuleName.split('.');
286
-
287
- if (this._moduleNames.length !== this._newModuleNames.length) {
288
- this._onlyNameChanged = false;
289
- return;
290
- }
291
-
292
- let i = 0;
293
- for (i = 0; i < this._moduleNames.length - 1; i++) {
294
- if (this._moduleNames[i] !== this._newModuleNames[i]) {
295
- break;
296
- }
297
- }
298
-
299
- this._onlyNameChanged = i === this._moduleNames.length - 1;
300
- assert(this._type !== UpdateType.Folder || this._onlyNameChanged, 'We only support simple rename for folder');
301
- }
302
-
303
- renameReferences(filePath: string, parseResults: ParseResults) {
304
- switch (this._type) {
305
- case UpdateType.Folder:
306
- return this._renameFolderReferences(filePath, parseResults);
307
- case UpdateType.File:
308
- return this._renameModuleReferences(filePath, parseResults);
309
- case UpdateType.Symbol:
310
- return this._updateSymbolReferences(filePath, parseResults);
311
- default:
312
- return assertNever(this._type, `${this._type} is unknown`);
313
- }
314
- }
315
-
316
- private _updateSymbolReferences(filePath: string, parseResults: ParseResults) {
317
- const collector = new DocumentSymbolCollector(
318
- getNameFromDeclaration(this._declarations[0]) ?? '',
319
- this._declarations,
320
- this._evaluator!,
321
- this._token,
322
- parseResults.parseTree,
323
- /* treatModuleImportAndFromImportSame */ true,
324
- /* skipUnreachableCode */ false
325
- );
326
-
327
- // See if we need to insert new import statement
328
- const importStatements = getTopLevelImports(parseResults.parseTree, /* includeImplicitImports */ true);
329
-
330
- // See whether we have existing import statement for the same module
331
- // ex) import [moduleName] or from ... import [moduleName]
332
- const imported = importStatements.orderedImports.find((i) => i.moduleName === this._newModuleName);
333
-
334
- const nameRemoved = new Set<number>();
335
- const importUsed = new Map<ImportAsNode | ImportFromAsNode, MemberAccessNode[]>();
336
- for (const result of collector.collect()) {
337
- const nodeFound = result.node;
338
-
339
- if (nodeFound.nodeType === ParseNodeType.String) {
340
- // Ignore symbol appearing in the __all__. it should be handled
341
- // when decl is moved.
342
- continue;
343
- }
344
-
345
- if (isFromImportName(nodeFound)) {
346
- // ex) from ... import [symbol] ...
347
- const fromNode = nodeFound.parent?.parent as ImportFromNode;
348
- const newModuleName = this._getNewModuleName(
349
- filePath,
350
- fromNode.module.leadingDots > 0,
351
- /* isLastPartImportName */ false
352
- );
353
-
354
- if (fromNode.imports.length === 1) {
355
- // ex) "from [module] import symbol" to "from [module.changed] import symbol"
356
- this._addResultWithTextRange(filePath, fromNode.module, parseResults, newModuleName);
357
- } else {
358
- // ex) "from module import symbol, another_symbol" to
359
- // "from module import another_symbol" and "from module.changed import symbol"
360
-
361
- // Delete the existing import name including alias.
362
- const importFromAs = nodeFound.parent as ImportFromAsNode;
363
- this._addFromImportNameDeletion(
364
- filePath,
365
- parseResults,
366
- nameRemoved,
367
- fromNode.imports,
368
- importFromAs
369
- );
370
-
371
- // For now, this won't merge absolute and relative path "from import" statement.
372
- const importNameInfo = {
373
- name: importFromAs.name.value,
374
- alias: importFromAs.alias?.value,
375
- };
376
-
377
- this._addResultEdits(
378
- this._getTextEditsForNewOrExistingFromImport(
379
- filePath,
380
- fromNode,
381
- parseResults,
382
- nameRemoved,
383
- importStatements,
384
- newModuleName,
385
- [importNameInfo]
386
- )
387
- );
388
- }
389
-
390
- continue;
391
- }
392
-
393
- const dottedName = getDottedNameWithGivenNodeAsLastName(nodeFound);
394
- if (dottedName === nodeFound || dottedName.nodeType !== ParseNodeType.MemberAccess) {
395
- // ex) from module import foo
396
- // foo
397
- // foo.method()
398
- //
399
- // from module import *
400
- // foo()
401
- // bar()
402
- //
403
- // we don't need to do anything for wild card case since
404
- // we will preserve __all__ entries.
405
- continue;
406
- }
407
-
408
- const moduleName =
409
- dottedName.leftExpression.nodeType === ParseNodeType.MemberAccess
410
- ? dottedName.leftExpression.memberName
411
- : dottedName.leftExpression.nodeType === ParseNodeType.Name
412
- ? dottedName.leftExpression
413
- : undefined;
414
- if (!moduleName) {
415
- // ex) from module import foo
416
- // getModule().foo
417
- continue;
418
- }
419
-
420
- const moduleDecl = this._evaluator
421
- .getDeclarationsForNameNode(moduleName)
422
- ?.filter(
423
- (d) =>
424
- isAliasDeclaration(d) &&
425
- (d.node.nodeType === ParseNodeType.ImportAs || d.node.nodeType === ParseNodeType.ImportFromAs)
426
- );
427
- if (!moduleDecl || moduleDecl.length === 0) {
428
- // ex) from xxx import yyy
429
- // yyy.property.foo
430
- continue;
431
- }
432
-
433
- const importAs = moduleDecl[0].node as ImportAsNode | ImportFromAsNode;
434
- getOrAdd(importUsed, importAs, () => []).push(dottedName);
435
- continue;
436
- }
437
-
438
- // Handle symbol references that are used off imported modules.
439
- for (const [key, value] of importUsed) {
440
- let referenceModuleName: string;
441
- if (this._canReplaceImportName(parseResults, key, value)) {
442
- const moduleName = this._getReferenceModuleName(importStatements, imported);
443
- if (key.nodeType === ParseNodeType.ImportAs) {
444
- if (moduleName) {
445
- referenceModuleName = moduleName;
446
- this._addImportNameDeletion(
447
- filePath,
448
- parseResults,
449
- nameRemoved,
450
- (key.parent as ImportNode).list,
451
- key
452
- );
453
- } else {
454
- referenceModuleName = key.alias ? key.alias.value : this._newModuleName;
455
- this._addResultWithTextRange(filePath, key.module, parseResults, this._newModuleName);
456
- }
457
- } else {
458
- if (moduleName) {
459
- referenceModuleName = moduleName;
460
- this._addFromImportNameDeletion(
461
- filePath,
462
- parseResults,
463
- nameRemoved,
464
- (key.parent as ImportFromNode).imports,
465
- key
466
- );
467
- } else {
468
- const fromNode = key.parent as ImportFromNode;
469
- const newModuleName = this._getNewModuleName(
470
- filePath,
471
- fromNode.module.leadingDots > 0,
472
- /* isLastPartImportName */ true
473
- );
474
-
475
- referenceModuleName = key.alias ? key.alias.value : this._newLastModuleName;
476
- this._addResultWithTextRange(filePath, fromNode.module, parseResults, newModuleName);
477
- this._addResultWithTextRange(filePath, key.name, parseResults, this._newLastModuleName);
478
- }
479
- }
480
- } else {
481
- const moduleName = this._getReferenceModuleName(importStatements, imported);
482
- if (moduleName) {
483
- referenceModuleName = moduleName;
484
- } else {
485
- referenceModuleName = this._newModuleName;
486
- this._addResultEdits(
487
- getTextEditsForAutoImportInsertion(
488
- [],
489
- importStatements,
490
- this._newModuleName,
491
- getImportGroupFromModuleNameAndType(this._newModuleNameAndType),
492
- parseResults,
493
- convertOffsetToPosition(parseResults.parseTree.length, parseResults.tokenizerOutput.lines)
494
- ).map((e) => ({ filePath, range: e.range, replacementText: e.replacementText }))
495
- );
496
- }
497
- }
498
-
499
- for (const node of value) {
500
- this._addResultWithTextRange(filePath, node.leftExpression, parseResults, referenceModuleName);
501
- }
502
- }
503
- }
504
-
505
- private _getReferenceModuleName(
506
- importStatements: ImportStatements,
507
- imported: ImportStatement | undefined
508
- ): string | undefined {
509
- if (imported && imported.node.nodeType === ParseNodeType.Import) {
510
- return imported.subnode?.alias ? imported.subnode.alias.value : this._newModuleName;
511
- } else if (importStatements.implicitImports?.has(this._newModuleFilePath)) {
512
- const fromImportAs = importStatements.implicitImports.get(this._newModuleFilePath)!;
513
- return fromImportAs.alias ? fromImportAs.alias.value : fromImportAs.name.value;
514
- }
515
-
516
- return undefined;
517
- }
518
-
519
- private _canReplaceImportName(
520
- parseResults: ParseResults,
521
- importAs: ImportAsNode | ImportFromAsNode,
522
- symbolReferences: MemberAccessNode[]
523
- ): boolean {
524
- const nameToBind =
525
- importAs.alias ??
526
- (importAs.nodeType === ParseNodeType.ImportAs
527
- ? importAs.module.nameParts[importAs.module.nameParts.length - 1]
528
- : importAs.name);
529
-
530
- const declarations = DocumentSymbolCollector.getDeclarationsForNode(
531
- nameToBind,
532
- this._evaluator,
533
- /* resolveLocalName */ false,
534
- this._token
535
- );
536
- if (declarations.length === 0) {
537
- return false;
538
- }
539
-
540
- const collector = new DocumentSymbolCollector(
541
- nameToBind.value,
542
- declarations,
543
- this._evaluator!,
544
- this._token,
545
- parseResults.parseTree,
546
- /* treatModuleImportAndFromImportSame */ true,
547
- /* skipUnreachableCode */ false
548
- );
549
-
550
- for (const result of collector.collect()) {
551
- if (
552
- isImportModuleName(result.node) ||
553
- isImportAlias(result.node) ||
554
- isFromImportModuleName(result.node) ||
555
- isFromImportName(result.node) ||
556
- isFromImportAlias(result.node)
557
- ) {
558
- // collector will report decls as well. ignore decls.
559
- continue;
560
- }
561
-
562
- if (!symbolReferences.some((s) => TextRange.containsRange(s, result.node))) {
563
- return false;
564
- }
565
- }
566
-
567
- return true;
568
- }
569
-
570
- private _renameFolderReferences(filePath: string, parseResults: ParseResults) {
571
- const collector = new DocumentSymbolCollector(
572
- this.lastModuleName,
573
- this._declarations,
574
- this._evaluator!,
575
- this._token,
576
- parseResults.parseTree,
577
- /* treatModuleImportAndFromImportSame */ true,
578
- /* skipUnreachableCode */ false
579
- );
580
-
581
- // We only support simple rename of folder. Change all occurrence of the old folder name
582
- // to new name.
583
- for (const result of collector.collect()) {
584
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
585
- }
586
- }
587
-
588
- private _renameModuleReferences(filePath: string, parseResults: ParseResults) {
589
- const collector = new DocumentSymbolCollector(
590
- this.lastModuleName,
591
- this._declarations,
592
- this._evaluator!,
593
- this._token,
594
- parseResults.parseTree,
595
- /* treatModuleImportAndFromImportSame */ true,
596
- /* skipUnreachableCode */ false
597
- );
598
-
599
- const nameRemoved = new Set<number>();
600
- const results = collector.collect();
601
-
602
- // Update module references first.
603
- this._updateModuleReferences(filePath, parseResults, nameRemoved, results);
604
-
605
- // If the module file has moved, we need to update all relative paths used in the file to reflect the move.
606
- this._updateRelativeModuleNamePath(filePath, parseResults, nameRemoved, results);
607
- }
608
-
609
- private _updateRelativeModuleNamePath(
610
- filePath: string,
611
- parseResults: ParseResults,
612
- nameRemoved: Set<number>,
613
- results: CollectionResult[]
614
- ) {
615
- if (filePath !== this._moduleFilePath) {
616
- // We only update relative import paths for the file that has moved.
617
- return;
618
- }
619
-
620
- let importStatements: ImportStatements | undefined;
621
-
622
- // Filter out module name that is already re-written.
623
- for (const edit of this._getNewRelativeModuleNamesForFileMoved(
624
- filePath,
625
- ModuleNameCollector.collect(parseResults.parseTree).filter(
626
- (m) => !results.some((r) => TextRange.containsRange(m.parent!, r.node))
627
- )
628
- )) {
629
- this._addResultWithTextRange(filePath, edit.moduleName, parseResults, edit.newModuleName);
630
-
631
- if (!edit.itemsToMove) {
632
- continue;
633
- }
634
-
635
- // This could introduce multiple import statements for same modules with
636
- // different symbols per module name. Unfortunately, there is no easy way to
637
- // prevent it since we can't see changes made by other code until all changes
638
- // are committed. In future, if we support snapshot and diff between snapshots,
639
- // then we can support those complex code generations.
640
- const fromNode = edit.moduleName.parent as ImportFromNode;
641
-
642
- // First, delete existing exported symbols from "from import" statement.
643
- for (const importFromAs of edit.itemsToMove) {
644
- this._addFromImportNameDeletion(filePath, parseResults, nameRemoved, fromNode.imports, importFromAs);
645
- }
646
-
647
- importStatements =
648
- importStatements ?? getTopLevelImports(parseResults.parseTree, /* includeImplicitImports */ false);
649
-
650
- // For now, this won't merge absolute and relative path "from import"
651
- // statement.
652
- this._addResultEdits(
653
- this._getTextEditsForNewOrExistingFromImport(
654
- filePath,
655
- fromNode,
656
- parseResults,
657
- nameRemoved,
658
- importStatements,
659
- getRelativeModuleName(
660
- this._fs,
661
- this._newModuleFilePath,
662
- this._newModuleFilePath,
663
- /* ignoreFolderStructure */ false,
664
- /* sourceIsFile */ true
665
- ),
666
- edit.itemsToMove.map((i) => {
667
- return { name: i.name.value, alias: i.alias?.value };
668
- })
669
- )
670
- );
671
- }
672
- }
673
-
674
- private _updateModuleReferences(
675
- filePath: string,
676
- parseResults: ParseResults,
677
- nameRemoved: Set<number>,
678
- results: CollectionResult[]
679
- ) {
680
- let importStatements: ImportStatements | undefined;
681
- for (const result of results) {
682
- const nodeFound = result.node;
683
-
684
- if (nodeFound.nodeType === ParseNodeType.String) {
685
- // ex) __all__ = ["[a]"]
686
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
687
- continue;
688
- }
689
-
690
- if (isImportModuleName(nodeFound)) {
691
- if (!isLastNameOfModuleName(nodeFound)) {
692
- // It must be directory and we don't support folder rename.
693
- continue;
694
- }
695
-
696
- const moduleNameNode = getFirstAncestorOrSelfOfKind(nodeFound, ParseNodeType.ModuleName)!;
697
-
698
- // * Enhancement * one case we don't handle is introducing new symbol in __all__
699
- // or converting "import" statement to "from import" statement.
700
- //
701
- // when the existing statement was "import x as x" and it is changed to
702
- // "import y.z as z". we either need to introduce "z" in __all__ or convert
703
- // "import y.z as z" to "from y import z as z" to make sure we keep the symbol
704
- // visibility same.
705
- //
706
- // when we convert "import x as x" to "from y import z as z", we need to handle
707
- // deletion of existing import statement or (x as x) and inserting/merging
708
- // new "from import" statement.
709
-
710
- // If original module name was single word and it becomes dotted name without alias,
711
- // then we introduce alias to keep references as a single word.
712
- // ex) import [xxx] to import [aaa.bbb as bbb]
713
- if (
714
- moduleNameNode.nameParts.length === 1 &&
715
- moduleNameNode.parent?.nodeType === ParseNodeType.ImportAs &&
716
- !moduleNameNode.parent.alias &&
717
- this._newModuleNames.length > 1
718
- ) {
719
- this._aliasIntroduced.add(moduleNameNode.parent);
720
-
721
- this._addResultWithTextRange(
722
- filePath,
723
- moduleNameNode,
724
- parseResults,
725
- `${this._newModuleName} as ${this._newLastModuleName}`
726
- );
727
- continue;
728
- }
729
-
730
- // Otherwise, update whole module name to new name
731
- // ex) import [xxx.yyy] to import [aaa.bbb]
732
- this._addResultWithTextRange(filePath, moduleNameNode, parseResults, this._newModuleName);
733
- continue;
734
- }
735
-
736
- if (isImportAlias(nodeFound)) {
737
- // ex) import xxx as [yyy] to import xxx as [zzz]
738
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
739
- continue;
740
- }
741
-
742
- if (isFromImportModuleName(nodeFound)) {
743
- if (!isLastNameOfModuleName(nodeFound)) {
744
- // It must be directory and we don't support folder rename.
745
- continue;
746
- }
747
-
748
- const moduleNameNode = getFirstAncestorOrSelfOfKind(nodeFound, ParseNodeType.ModuleName)!;
749
- const fromNode = moduleNameNode.parent as ImportFromNode;
750
-
751
- // We need to check whether imports of this import statement has
752
- // any implicit submodule imports or not. If there is one, we need to
753
- // either split or leave it as it is.
754
- const exportedSymbols = [];
755
- const subModules = [];
756
- for (const importFromAs of fromNode.imports) {
757
- if (this._isExportedSymbol(importFromAs.name)) {
758
- exportedSymbols.push(importFromAs);
759
- } else {
760
- subModules.push(importFromAs);
761
- }
762
- }
763
-
764
- if (subModules.length === 0) {
765
- // We don't have any sub modules, we can change module name to new one.
766
- // Update whole module name to new name.
767
- // ex) from [xxx.yyy] import zzz to from [aaa.bbb] import zzz
768
- this._addResultWithTextRange(
769
- filePath,
770
- moduleNameNode,
771
- parseResults,
772
- this._getNewModuleName(
773
- filePath,
774
- moduleNameNode.leadingDots > 0,
775
- /* isLastPartImportName */ false
776
- )
777
- );
778
- continue;
779
- }
780
-
781
- if (exportedSymbols.length === 0) {
782
- // We only have sub modules. That means module name actually refers to
783
- // folder name, not module (ex, __init__.py). Folder rename is done by
784
- // different code path.
785
- continue;
786
- }
787
-
788
- // Now, we need to split "from import" statement to 2.
789
-
790
- // Update module name if needed.
791
- if (fromNode.module.leadingDots > 0) {
792
- for (const edit of this._getNewRelativeModuleNamesForFileMoved(filePath, [fromNode.module])) {
793
- this._addResultWithTextRange(filePath, edit.moduleName, parseResults, edit.newModuleName);
794
- }
795
- }
796
-
797
- // First, delete existing exported symbols from "from import" statement.
798
- for (const importFromAs of exportedSymbols) {
799
- this._addFromImportNameDeletion(
800
- filePath,
801
- parseResults,
802
- nameRemoved,
803
- fromNode.imports,
804
- importFromAs
805
- );
806
- }
807
-
808
- importStatements =
809
- importStatements ?? getTopLevelImports(parseResults.parseTree, /* includeImplicitImports */ false);
810
-
811
- // For now, this won't merge absolute and relative path "from import"
812
- // statement.
813
- this._addResultEdits(
814
- this._getTextEditsForNewOrExistingFromImport(
815
- filePath,
816
- fromNode,
817
- parseResults,
818
- nameRemoved,
819
- importStatements,
820
- this._newModuleName,
821
- exportedSymbols.map((i) => {
822
- const name =
823
- results.findIndex((r) => r.node === i.name) >= 0
824
- ? this._newLastModuleName
825
- : i.name.value;
826
- const alias =
827
- results.findIndex((r) => r.node === i.alias) >= 0
828
- ? this._newLastModuleName
829
- : i.alias?.value;
830
-
831
- return { name, alias };
832
- })
833
- )
834
- );
835
- continue;
836
- }
837
-
838
- if (isFromImportName(nodeFound)) {
839
- if (nameRemoved.has(nodeFound.id)) {
840
- // Import name is already removed.
841
- continue;
842
- }
843
-
844
- const fromNode = nodeFound.parent?.parent as ImportFromNode;
845
- const newModuleName = this._getNewModuleName(
846
- filePath,
847
- fromNode.module.leadingDots > 0,
848
- /* isLastPartImportName */ true
849
- );
850
-
851
- // If the name bound to symbol re-exported, we don't need to update module name.
852
- // Existing logic should make sure re-exported symbol name work as before after
853
- // symbol rename.
854
- if (this._isExportedSymbol(nodeFound)) {
855
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
856
- continue;
857
- }
858
-
859
- if (fromNode.imports.length === 1) {
860
- // ex) from xxx import [yyy] to from [aaa.bbb] import [zzz]
861
- this._addResultWithTextRange(filePath, fromNode.module, parseResults, newModuleName);
862
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
863
- } else {
864
- // Delete the existing import name including alias.
865
- const importFromAs = nodeFound.parent as ImportFromAsNode;
866
-
867
- // Update module name if needed.
868
- if (fromNode.module.leadingDots > 0) {
869
- for (const edit of this._getNewRelativeModuleNamesForFileMoved(filePath, [fromNode.module])) {
870
- this._addResultWithTextRange(filePath, edit.moduleName, parseResults, edit.newModuleName);
871
- }
872
- }
873
-
874
- this._addFromImportNameDeletion(
875
- filePath,
876
- parseResults,
877
- nameRemoved,
878
- fromNode.imports,
879
- importFromAs
880
- );
881
-
882
- importStatements =
883
- importStatements ??
884
- getTopLevelImports(parseResults.parseTree, /* includeImplicitImports */ false);
885
-
886
- // ex) from xxx import yyy, [zzz] to
887
- // from xxx import yyy
888
- // from [aaa.bbb] import [ccc]
889
- // or
890
- // from aaa.bbb import ddd
891
- // from xxx import yyy, [zzz] to
892
- // from aaa.bbb import [ccc], ddd
893
- //
894
- // For now, this won't merge absolute and relative path "from import"
895
- // statement.
896
- const importNameInfo = {
897
- name: this._newLastModuleName,
898
- alias:
899
- importFromAs.alias?.value === this.lastModuleName
900
- ? this._newLastModuleName
901
- : importFromAs.alias?.value,
902
- };
903
-
904
- this._addResultEdits(
905
- this._getTextEditsForNewOrExistingFromImport(
906
- filePath,
907
- fromNode,
908
- parseResults,
909
- nameRemoved,
910
- importStatements,
911
- newModuleName,
912
- [importNameInfo]
913
- )
914
- );
915
- }
916
- continue;
917
- }
918
-
919
- if (isFromImportAlias(nodeFound)) {
920
- if (nameRemoved.has(nodeFound.id)) {
921
- // alias is already removed.
922
- continue;
923
- }
924
-
925
- // ex) from ccc import xxx as [yyy] to from ccc import xxx as [zzz]
926
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
927
- continue;
928
- }
929
-
930
- /** TODO: if we get more than 1 decls, flag it as attention needed */
931
- const decls = DocumentSymbolCollector.getDeclarationsForNode(
932
- nodeFound,
933
- this._evaluator,
934
- /* resolveLocalName */ false,
935
- this._token
936
- ).filter((d) => isAliasDeclaration(d)) as AliasDeclaration[];
937
-
938
- if (this._onlyNameChanged) {
939
- // Simple case. only name has changed. but not path.
940
- // Just replace name to new symbol name.
941
- // ex) a.[b].foo() to a.[z].foo()
942
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
943
- continue;
944
- }
945
-
946
- if (
947
- decls?.some(
948
- (d) =>
949
- !d.usesLocalName &&
950
- (!d.node || d.node.nodeType === ParseNodeType.ImportAs) &&
951
- !this._aliasIntroduced.has(d.node)
952
- )
953
- ) {
954
- const dottedName = getDottedNameWithGivenNodeAsLastName(nodeFound);
955
- if (dottedName.parent?.nodeType !== ParseNodeType.MemberAccess) {
956
- // Replace whole dotted name with new module name.
957
- this._addResultWithTextRange(filePath, dottedName, parseResults, this._newModuleName);
958
- continue;
959
- }
960
-
961
- // Check whether name after me is sub module or not.
962
- // ex) a.b.[c]
963
- const nextNameDecl = this._evaluator.getDeclarationsForNameNode(dottedName.parent.memberName);
964
- if (!nextNameDecl || nextNameDecl.length === 0) {
965
- // Next dotted name is sub module. That means dottedName actually refers to folder names, not modules.
966
- // and We don't support renaming folder. So, leave things as they are.
967
- // ex) import a.b.c
968
- // [a.b].[c]
969
- continue;
970
- }
971
-
972
- // Next name is actual symbol. Replace whole name to new module name.
973
- // ex) import a.b.c
974
- // [a.b.c].[foo]()
975
- this._addResultWithTextRange(filePath, dottedName, parseResults, this._newModuleName);
976
- continue;
977
- }
978
-
979
- if (result.node.value !== this._newLastModuleName) {
980
- this._addResultWithTextRange(filePath, result.range, parseResults, this._newLastModuleName);
981
- continue;
982
- }
983
- }
984
- }
985
-
986
- private _getNewRelativeModuleNamesForFileMoved(filePath: string, moduleNames: ModuleNameNode[]) {
987
- if (filePath !== this._moduleFilePath) {
988
- // We only update relative import paths for the file that has moved.
989
- return [];
990
- }
991
-
992
- const originalFileName = stripFileExtension(getFileName(filePath));
993
- const originalInit = originalFileName === '__init__';
994
- const originalDirectory = getDirectoryPath(filePath);
995
-
996
- const newNames: { moduleName: ModuleNameNode; newModuleName: string; itemsToMove?: ImportFromAsNode[] }[] = [];
997
- for (const moduleName of moduleNames) {
998
- // Filter out all absolute path.
999
- if (moduleName.leadingDots === 0) {
1000
- continue;
1001
- }
1002
-
1003
- const result = this._getNewModuleNameInfoForFileMoved(moduleName, originalInit, originalDirectory);
1004
- if (!result) {
1005
- continue;
1006
- }
1007
-
1008
- const newModuleName = getRelativeModuleName(
1009
- this._fs,
1010
- result.src,
1011
- result.dest,
1012
- /* ignoreFolderStructure */ false,
1013
- /* sourceIsFile */ true
1014
- );
1015
-
1016
- newNames.push({ moduleName, newModuleName, itemsToMove: result.itemsToMove });
1017
- }
1018
-
1019
- return newNames;
1020
- }
1021
-
1022
- private _getNewModuleNameInfoForFileMoved(
1023
- moduleName: ModuleNameNode,
1024
- originalInit: boolean,
1025
- originalDirectory: string
1026
- ) {
1027
- const importInfo = getImportInfo(moduleName);
1028
- if (!importInfo) {
1029
- return undefined;
1030
- }
1031
-
1032
- let importPath = importInfo.resolvedPaths[importInfo.resolvedPaths.length - 1];
1033
- if (!importPath) {
1034
- // It is possible for the module name to point to namespace folder (no __init__).
1035
- // See whether we can use some heuristic to get importPath
1036
- if (moduleName.nameParts.length === 0) {
1037
- const directory = getDirectoryLeadingDotsPointsTo(originalDirectory, moduleName.leadingDots);
1038
- if (!directory) {
1039
- return undefined;
1040
- }
1041
-
1042
- // Add fake __init__.py since we know this is namespace folder.
1043
- importPath = combinePaths(directory, '__init__.py');
1044
- } else {
1045
- return undefined;
1046
- }
1047
- }
1048
-
1049
- // Check whether module is pointing to moved file itself and whether it is __init__
1050
- if (this._moduleFilePath !== importPath || !originalInit) {
1051
- return { src: this._newModuleFilePath, dest: importPath };
1052
- }
1053
-
1054
- // Now, moduleName is pointing to __init__ which point to moved file itself.
1055
-
1056
- // We need to check whether imports of this import statement has
1057
- // any implicit submodule imports or not. If there is one, we need to
1058
- // either split or leave it as it is.
1059
- const exportedSymbols = [];
1060
- const subModules = [];
1061
- for (const importFromAs of (moduleName.parent as ImportFromNode).imports) {
1062
- if (this._isExportedSymbol(importFromAs.name)) {
1063
- exportedSymbols.push(importFromAs);
1064
- } else {
1065
- subModules.push(importFromAs);
1066
- }
1067
- }
1068
-
1069
- // Point to itself.
1070
- if (subModules.length === 0) {
1071
- return { src: this._newModuleFilePath, dest: this._newModuleFilePath };
1072
- }
1073
-
1074
- // "." is used to point folder location.
1075
- if (exportedSymbols.length === 0) {
1076
- return { src: this._newModuleFilePath, dest: this._moduleFilePath };
1077
- }
1078
-
1079
- // now we need to split, provide split info as well.
1080
- return {
1081
- src: this._newModuleFilePath,
1082
- dest: this._moduleFilePath,
1083
- itemsToMove: [...exportedSymbols],
1084
- };
1085
- }
1086
-
1087
- private _isExportedSymbol(nameNode: NameNode): boolean {
1088
- const decls = this._evaluator.getDeclarationsForNameNode(nameNode);
1089
- if (!decls) {
1090
- return false;
1091
- }
1092
-
1093
- // If submoduleFallback exists, then, it points to submodule not symbol.
1094
- return !decls.some((d) => isAliasDeclaration(d) && d.submoduleFallback);
1095
- }
1096
-
1097
- private _getNewModuleName(currentFilePath: string, isRelativePath: boolean, isLastPartImportName: boolean) {
1098
- const filePath = currentFilePath === this._moduleFilePath ? this._newModuleFilePath : currentFilePath;
1099
-
1100
- // If the existing code was using relative path, try to keep the relative path.
1101
- const moduleName = isRelativePath
1102
- ? getRelativeModuleName(
1103
- this._fs,
1104
- filePath,
1105
- this._newModuleFilePath,
1106
- isLastPartImportName,
1107
- /* sourceIsFile*/ true
1108
- )
1109
- : this._newModuleName;
1110
-
1111
- if (isLastPartImportName && moduleName.endsWith(this._newLastModuleName)) {
1112
- const dotPrefix =
1113
- moduleName === this._newLastModuleName
1114
- ? 0
1115
- : moduleName.length > this._newLastModuleName.length + 1
1116
- ? moduleName[moduleName.length - this._newLastModuleName.length - 2] !== '.'
1117
- ? 1
1118
- : 0
1119
- : 0;
1120
-
1121
- const length = moduleName.length - this._newLastModuleName.length - dotPrefix;
1122
-
1123
- //ex) x.y.z used in "from x.y import z"
1124
- const newModuleName = moduleName.substr(0, length);
1125
- return newModuleName.length > 0 ? newModuleName : '.';
1126
- }
1127
-
1128
- // ex) x.y.z used in "from x.y.z import ..."
1129
- return moduleName;
1130
- }
1131
-
1132
- getEdits(): FileEditAction[] {
1133
- const edits: FileEditAction[] = [];
1134
- this._results.forEach((v) => appendArray(edits, v));
1135
-
1136
- return edits;
1137
- }
1138
-
1139
- get lastModuleName() {
1140
- return this._moduleNames[this._moduleNames.length - 1];
1141
- }
1142
-
1143
- private get _moduleName() {
1144
- return this._moduleNameAndType.moduleName;
1145
- }
1146
-
1147
- private get _newLastModuleName() {
1148
- return this._newModuleNames[this._newModuleNames.length - 1];
1149
- }
1150
-
1151
- private get _newModuleName() {
1152
- return this._newModuleNameAndType.moduleName;
1153
- }
1154
-
1155
- private _addImportNameDeletion(
1156
- filePath: string,
1157
- parseResults: ParseResults,
1158
- nameRemoved: Set<number>,
1159
- imports: ImportAsNode[],
1160
- importToDelete: ImportAsNode
1161
- ) {
1162
- this._addImportNameDeletionInternal(
1163
- filePath,
1164
- parseResults,
1165
- nameRemoved,
1166
- imports,
1167
- importToDelete,
1168
- ParseNodeType.Import
1169
- );
1170
-
1171
- // Mark that we don't need to process these node again later.
1172
- nameRemoved.add(importToDelete.module.id);
1173
- importToDelete.module.nameParts.forEach((n) => nameRemoved.add(n.id));
1174
- if (importToDelete.alias) {
1175
- nameRemoved.add(importToDelete.alias.id);
1176
- }
1177
- }
1178
-
1179
- private _addFromImportNameDeletion(
1180
- filePath: string,
1181
- parseResults: ParseResults,
1182
- nameRemoved: Set<number>,
1183
- imports: ImportFromAsNode[],
1184
- importToDelete: ImportFromAsNode
1185
- ) {
1186
- this._addImportNameDeletionInternal(
1187
- filePath,
1188
- parseResults,
1189
- nameRemoved,
1190
- imports,
1191
- importToDelete,
1192
- ParseNodeType.ImportFrom
1193
- );
1194
-
1195
- // Mark that we don't need to process these node again later.
1196
- nameRemoved.add(importToDelete.name.id);
1197
- if (importToDelete.alias) {
1198
- nameRemoved.add(importToDelete.alias.id);
1199
- }
1200
- }
1201
-
1202
- private _addImportNameDeletionInternal(
1203
- filePath: string,
1204
- parseResults: ParseResults,
1205
- nameRemoved: Set<number>,
1206
- imports: ImportFromAsNode[] | ImportAsNode[],
1207
- importToDelete: ImportFromAsNode | ImportAsNode,
1208
- importKind: ParseNodeType.ImportFrom | ParseNodeType.Import
1209
- ) {
1210
- const range = getTextRangeForImportNameDeletion(
1211
- imports,
1212
- imports.findIndex((v) => v === importToDelete)
1213
- );
1214
-
1215
- this._addResultWithTextRange(filePath, range, parseResults, '');
1216
-
1217
- // Mark that we don't need to process these node again later.
1218
- nameRemoved.add(importToDelete.id);
1219
-
1220
- // Check whether we have deleted all trailing import names.
1221
- // If either no trailing import is deleted or handled properly
1222
- // then, there is nothing to do. otherwise, either delete the whole statement
1223
- // or remove trailing comma.
1224
- // ex) from x import [y], z or from x import y[, z]
1225
- let lastImportIndexNotDeleted = 0;
1226
- for (
1227
- lastImportIndexNotDeleted = imports.length - 1;
1228
- lastImportIndexNotDeleted >= 0;
1229
- lastImportIndexNotDeleted--
1230
- ) {
1231
- if (!nameRemoved.has(imports[lastImportIndexNotDeleted].id)) {
1232
- break;
1233
- }
1234
- }
1235
-
1236
- if (lastImportIndexNotDeleted === -1) {
1237
- // Whole statement is deleted. Remove the statement itself.
1238
- // ex) [from x import a, b, c] or [import a]
1239
- const importStatement = getFirstAncestorOrSelfOfKind(importToDelete, importKind);
1240
- if (importStatement) {
1241
- this._addResultWithRange(
1242
- filePath,
1243
- getFullStatementRange(importStatement, parseResults.tokenizerOutput),
1244
- ''
1245
- );
1246
- }
1247
- } else if (lastImportIndexNotDeleted >= 0 && lastImportIndexNotDeleted < imports.length - 2) {
1248
- // We need to delete trailing comma
1249
- // ex) from x import a, [b, c]
1250
- const start = TextRange.getEnd(imports[lastImportIndexNotDeleted]);
1251
- const length = TextRange.getEnd(imports[lastImportIndexNotDeleted + 1]) - start;
1252
- this._addResultWithTextRange(filePath, { start, length }, parseResults, '');
1253
- }
1254
- }
1255
-
1256
- private _addResultWithTextRange(filePath: string, range: TextRange, parseResults: ParseResults, newName: string) {
1257
- const existing = parseResults.text.substr(range.start, range.length);
1258
- if (existing === newName) {
1259
- // No change. Return as it is.
1260
- return;
1261
- }
1262
-
1263
- this._addResultWithRange(filePath, convertTextRangeToRange(range, parseResults.tokenizerOutput.lines), newName);
1264
- }
1265
-
1266
- private _addResultEdits(edits: FileEditAction[]) {
1267
- edits.forEach((e) => this._addResultWithRange(e.filePath, e.range, e.replacementText));
1268
- }
1269
-
1270
- private _getDeletionsForSpan(filePathOrEdit: string | FileEditAction[], range: Range) {
1271
- if (isString(filePathOrEdit)) {
1272
- filePathOrEdit = this._results.get(filePathOrEdit) ?? [];
1273
- }
1274
-
1275
- return filePathOrEdit.filter((e) => e.replacementText === '' && doRangesIntersect(e.range, range));
1276
- }
1277
-
1278
- private _removeEdits(filePathOrEdit: string | FileEditAction[], edits: FileEditAction[]) {
1279
- if (isString(filePathOrEdit)) {
1280
- filePathOrEdit = this._results.get(filePathOrEdit) ?? [];
1281
- }
1282
-
1283
- removeArrayElements(filePathOrEdit, (f) => edits.findIndex((e) => e === f) >= 0);
1284
- }
1285
-
1286
- private _addResultWithRange(filePath: string, range: Range, replacementText: string) {
1287
- const edits = getOrAdd(this._results, filePath, () => []);
1288
- if (replacementText === '') {
1289
- // If it is a deletion, merge with overlapping deletion edit if there is any.
1290
- const deletions = this._getDeletionsForSpan(edits, range);
1291
- if (deletions.length > 0) {
1292
- // Delete the existing ones.
1293
- this._removeEdits(edits, deletions);
1294
-
1295
- // Extend range with deleted ones.
1296
- extendRange(
1297
- range,
1298
- deletions.map((d) => d.range)
1299
- );
1300
- }
1301
- }
1302
-
1303
- // Don't put duplicated edit. It can happen if code has duplicated module import.
1304
- // ex) from a import b, b, c
1305
- // If we need to introduce new "from import" statement for "b", we will add new statement twice.
1306
- if (edits.some((e) => rangesAreEqual(e.range, range) && e.replacementText === replacementText)) {
1307
- return;
1308
- }
1309
-
1310
- edits.push({ filePath, range, replacementText });
1311
- }
1312
-
1313
- private _getTextEditsForNewOrExistingFromImport(
1314
- filePath: string,
1315
- currentFromImport: ImportFromNode,
1316
- parseResults: ParseResults,
1317
- nameRemoved: Set<number>,
1318
- importStatements: ImportStatements,
1319
- moduleName: string,
1320
- importNameInfo: ImportNameInfo[]
1321
- ): FileEditAction[] {
1322
- // See whether we have existing from import statement for the same module
1323
- // ex) from [|moduleName|] import subModule
1324
- const imported = importStatements.orderedImports.find((i) => i.moduleName === moduleName);
1325
- if (imported && imported.node.nodeType === ParseNodeType.ImportFrom && !imported.node.isWildcardImport) {
1326
- const edits = getTextEditsForAutoImportSymbolAddition(importNameInfo, imported, parseResults);
1327
- if (imported.node !== currentFromImport) {
1328
- // Add what we want to the existing "import from" statement as long as it is not the same import
1329
- // node we are working on.
1330
- return edits.map((e) => ({ filePath, range: e.range, replacementText: e.replacementText }));
1331
- }
1332
-
1333
- // Check whether we can avoid creating a new statement. We can't just merge with existing one since
1334
- // we could create invalid text edits (2 edits that change the same span, or invalid replacement text since
1335
- // texts on the node has changed)
1336
- if (this._onlyNameChanged && importNameInfo.length === 1 && edits.length === 1) {
1337
- const deletions = this._getDeletionsForSpan(filePath, edits[0].range);
1338
- if (deletions.length === 0) {
1339
- return [{ filePath, range: edits[0].range, replacementText: edits[0].replacementText }];
1340
- } else {
1341
- const alias =
1342
- importNameInfo[0].alias === this._newLastModuleName
1343
- ? this.lastModuleName
1344
- : importNameInfo[0].alias;
1345
-
1346
- const importName = currentFromImport.imports.find(
1347
- (i) => i.name.value === this.lastModuleName && i.alias?.value === alias
1348
- );
1349
- if (importName) {
1350
- this._removeEdits(filePath, deletions);
1351
- if (importName.alias) {
1352
- nameRemoved.delete(importName.alias.id);
1353
- }
1354
-
1355
- return [
1356
- {
1357
- filePath,
1358
- range: convertTextRangeToRange(importName.name, parseResults.tokenizerOutput.lines),
1359
- replacementText: this._newLastModuleName,
1360
- },
1361
- ];
1362
- }
1363
- }
1364
- }
1365
- }
1366
-
1367
- return getTextEditsForAutoImportInsertion(
1368
- importNameInfo,
1369
- importStatements,
1370
- moduleName,
1371
- getImportGroupFromModuleNameAndType(this._newModuleNameAndType),
1372
- parseResults,
1373
- convertOffsetToPosition(parseResults.parseTree.length, parseResults.tokenizerOutput.lines)
1374
- ).map((e) => ({ filePath, range: e.range, replacementText: e.replacementText }));
1375
- }
1376
- }
1377
-
1378
- class ModuleNameCollector extends ParseTreeWalker {
1379
- private readonly _result: ModuleNameNode[] = [];
1380
-
1381
- override walk(node: ParseNode): void {
1382
- if (isExpressionNode(node)) {
1383
- return;
1384
- }
1385
-
1386
- super.walk(node);
1387
- }
1388
-
1389
- override visitModuleName(node: ModuleNameNode) {
1390
- this._result.push(node);
1391
- return false;
1392
- }
1393
-
1394
- public static collect(root: ModuleNode) {
1395
- const collector = new ModuleNameCollector();
1396
- collector.walk(root);
1397
-
1398
- return collector._result;
1399
- }
1400
- }