@zzzen/pyright-internal 1.2.0-dev.20230430 → 1.2.0-dev.20230514

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 (231) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +4 -1
  2. package/dist/analyzer/backgroundAnalysisProgram.js +12 -0
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/checker.d.ts +1 -0
  5. package/dist/analyzer/checker.js +89 -6
  6. package/dist/analyzer/checker.js.map +1 -1
  7. package/dist/analyzer/constraintSolver.js +14 -15
  8. package/dist/analyzer/constraintSolver.js.map +1 -1
  9. package/dist/analyzer/constructors.d.ts +6 -0
  10. package/dist/analyzer/constructors.js +513 -0
  11. package/dist/analyzer/constructors.js.map +1 -0
  12. package/dist/analyzer/dataClasses.js +86 -2
  13. package/dist/analyzer/dataClasses.js.map +1 -1
  14. package/dist/analyzer/docStringConversion.js +1 -1
  15. package/dist/analyzer/docStringConversion.js.map +1 -1
  16. package/dist/analyzer/enums.js +62 -8
  17. package/dist/analyzer/enums.js.map +1 -1
  18. package/dist/analyzer/importResolver.js +47 -29
  19. package/dist/analyzer/importResolver.js.map +1 -1
  20. package/dist/analyzer/importStatementUtils.d.ts +2 -2
  21. package/dist/analyzer/importStatementUtils.js.map +1 -1
  22. package/dist/analyzer/namedTuples.js +3 -6
  23. package/dist/analyzer/namedTuples.js.map +1 -1
  24. package/dist/analyzer/operations.d.ts +16 -0
  25. package/dist/analyzer/operations.js +749 -0
  26. package/dist/analyzer/operations.js.map +1 -0
  27. package/dist/analyzer/parseTreeUtils.d.ts +4 -2
  28. package/dist/analyzer/parseTreeUtils.js +32 -1
  29. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  30. package/dist/analyzer/patternMatching.js +16 -0
  31. package/dist/analyzer/patternMatching.js.map +1 -1
  32. package/dist/analyzer/program.d.ts +11 -33
  33. package/dist/analyzer/program.js +73 -735
  34. package/dist/analyzer/program.js.map +1 -1
  35. package/dist/analyzer/protocols.js +1 -1
  36. package/dist/analyzer/protocols.js.map +1 -1
  37. package/dist/analyzer/service.d.ts +5 -21
  38. package/dist/analyzer/service.js +26 -33
  39. package/dist/analyzer/service.js.map +1 -1
  40. package/dist/analyzer/sourceFile.d.ts +9 -41
  41. package/dist/analyzer/sourceFile.js +219 -238
  42. package/dist/analyzer/sourceFile.js.map +1 -1
  43. package/dist/analyzer/sourceFileInfoUtils.d.ts +3 -9
  44. package/dist/analyzer/sourceFileInfoUtils.js.map +1 -1
  45. package/dist/analyzer/symbol.d.ts +3 -1
  46. package/dist/analyzer/symbol.js +5 -0
  47. package/dist/analyzer/symbol.js.map +1 -1
  48. package/dist/analyzer/typeEvaluator.js +460 -1425
  49. package/dist/analyzer/typeEvaluator.js.map +1 -1
  50. package/dist/analyzer/typeEvaluatorTypes.d.ts +42 -7
  51. package/dist/analyzer/typeEvaluatorTypes.js +33 -1
  52. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  53. package/dist/analyzer/typeGuards.js +2 -8
  54. package/dist/analyzer/typeGuards.js.map +1 -1
  55. package/dist/analyzer/typePrinter.d.ts +3 -3
  56. package/dist/analyzer/typePrinter.js +247 -100
  57. package/dist/analyzer/typePrinter.js.map +1 -1
  58. package/dist/analyzer/typeUtils.d.ts +14 -7
  59. package/dist/analyzer/typeUtils.js +204 -49
  60. package/dist/analyzer/typeUtils.js.map +1 -1
  61. package/dist/analyzer/typeVarContext.d.ts +6 -7
  62. package/dist/analyzer/typeVarContext.js +21 -32
  63. package/dist/analyzer/typeVarContext.js.map +1 -1
  64. package/dist/analyzer/typedDicts.js +2 -2
  65. package/dist/analyzer/typedDicts.js.map +1 -1
  66. package/dist/analyzer/types.d.ts +7 -4
  67. package/dist/analyzer/types.js +20 -10
  68. package/dist/analyzer/types.js.map +1 -1
  69. package/dist/backgroundAnalysisBase.d.ts +1 -1
  70. package/dist/backgroundAnalysisBase.js +16 -0
  71. package/dist/backgroundAnalysisBase.js.map +1 -1
  72. package/dist/commands/dumpFileDebugInfoCommand.js +0 -1
  73. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  74. package/dist/common/extensibility.d.ts +28 -4
  75. package/dist/common/extensibility.js.map +1 -1
  76. package/dist/common/logTracker.d.ts +2 -0
  77. package/dist/common/logTracker.js +8 -1
  78. package/dist/common/logTracker.js.map +1 -1
  79. package/dist/common/lspUtils.d.ts +4 -1
  80. package/dist/common/lspUtils.js +38 -1
  81. package/dist/common/lspUtils.js.map +1 -1
  82. package/dist/common/pathUtils.d.ts +11 -11
  83. package/dist/common/pathUtils.js.map +1 -1
  84. package/dist/common/pythonVersion.d.ts +2 -1
  85. package/dist/common/pythonVersion.js +1 -0
  86. package/dist/common/pythonVersion.js.map +1 -1
  87. package/dist/common/workspaceEditUtils.d.ts +8 -8
  88. package/dist/common/workspaceEditUtils.js +10 -10
  89. package/dist/common/workspaceEditUtils.js.map +1 -1
  90. package/dist/languageServerBase.d.ts +3 -7
  91. package/dist/languageServerBase.js +41 -73
  92. package/dist/languageServerBase.js.map +1 -1
  93. package/dist/languageService/autoImporter.d.ts +50 -51
  94. package/dist/languageService/autoImporter.js +125 -210
  95. package/dist/languageService/autoImporter.js.map +1 -1
  96. package/dist/languageService/callHierarchyProvider.d.ts +1 -1
  97. package/dist/languageService/callHierarchyProvider.js +11 -37
  98. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  99. package/dist/languageService/completionProvider.d.ts +39 -81
  100. package/dist/languageService/completionProvider.js +572 -801
  101. package/dist/languageService/completionProvider.js.map +1 -1
  102. package/dist/languageService/documentHighlightProvider.js +1 -1
  103. package/dist/languageService/documentHighlightProvider.js.map +1 -1
  104. package/dist/languageService/documentSymbolCollector.d.ts +6 -7
  105. package/dist/languageService/documentSymbolCollector.js +47 -28
  106. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  107. package/dist/languageService/documentSymbolProvider.d.ts +13 -35
  108. package/dist/languageService/documentSymbolProvider.js +52 -264
  109. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  110. package/dist/languageService/hoverProvider.d.ts +5 -6
  111. package/dist/languageService/hoverProvider.js +40 -132
  112. package/dist/languageService/hoverProvider.js.map +1 -1
  113. package/dist/languageService/referencesProvider.d.ts +6 -11
  114. package/dist/languageService/referencesProvider.js +23 -17
  115. package/dist/languageService/referencesProvider.js.map +1 -1
  116. package/dist/languageService/renameProvider.d.ts +16 -0
  117. package/dist/languageService/renameProvider.js +139 -0
  118. package/dist/languageService/renameProvider.js.map +1 -0
  119. package/dist/languageService/symbolIndexer.d.ts +31 -0
  120. package/dist/languageService/symbolIndexer.js +105 -0
  121. package/dist/languageService/symbolIndexer.js.map +1 -0
  122. package/dist/languageService/tooltipUtils.d.ts +8 -1
  123. package/dist/languageService/tooltipUtils.js +102 -1
  124. package/dist/languageService/tooltipUtils.js.map +1 -1
  125. package/dist/languageService/workspaceSymbolProvider.d.ts +17 -0
  126. package/dist/languageService/workspaceSymbolProvider.js +133 -0
  127. package/dist/languageService/workspaceSymbolProvider.js.map +1 -0
  128. package/dist/localization/localize.d.ts +33 -15
  129. package/dist/localization/localize.js +13 -7
  130. package/dist/localization/localize.js.map +1 -1
  131. package/dist/localization/package.nls.en-us.json +14 -7
  132. package/dist/parser/parser.js +3 -0
  133. package/dist/parser/parser.js.map +1 -1
  134. package/dist/pyright.js +26 -4
  135. package/dist/pyright.js.map +1 -1
  136. package/dist/tests/chainedSourceFiles.test.js +15 -20
  137. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  138. package/dist/tests/checker.test.js +14 -0
  139. package/dist/tests/checker.test.js.map +1 -1
  140. package/dist/tests/completions.test.js +11 -236
  141. package/dist/tests/completions.test.js.map +1 -1
  142. package/dist/tests/docStringConversion.test.js +36 -2
  143. package/dist/tests/docStringConversion.test.js.map +1 -1
  144. package/dist/tests/documentSymbolCollector.test.js +3 -3
  145. package/dist/tests/documentSymbolCollector.test.js.map +1 -1
  146. package/dist/tests/fourslash/completions.override2.fourslash.js +1 -16
  147. package/dist/tests/fourslash/completions.override2.fourslash.js.map +1 -1
  148. package/dist/tests/fourslash/fourslash.d.ts +4 -4
  149. package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js +1 -1
  150. package/dist/tests/fourslash/missingTypeStub.codeAction.fourslash.js.map +1 -1
  151. package/dist/tests/harness/fourslash/testState.d.ts +17 -11
  152. package/dist/tests/harness/fourslash/testState.js +39 -50
  153. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  154. package/dist/tests/importResolver.test.js +81 -1
  155. package/dist/tests/importResolver.test.js.map +1 -1
  156. package/dist/tests/sourceFile.test.js +1 -1
  157. package/dist/tests/sourceFile.test.js.map +1 -1
  158. package/dist/tests/testStateUtils.d.ts +2 -2
  159. package/dist/tests/testStateUtils.js +38 -8
  160. package/dist/tests/testStateUtils.js.map +1 -1
  161. package/dist/tests/typeEvaluator2.test.js +13 -1
  162. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  163. package/dist/tests/typeEvaluator3.test.js +5 -1
  164. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  165. package/dist/tests/typeEvaluator4.test.js +9 -1
  166. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  167. package/dist/tests/typeEvaluator5.test.js +25 -9
  168. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  169. package/dist/tests/workspaceEditUtils.test.js +95 -6
  170. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  171. package/package.json +4 -4
  172. package/dist/languageService/importAdder.d.ts +0 -40
  173. package/dist/languageService/importAdder.js +0 -388
  174. package/dist/languageService/importAdder.js.map +0 -1
  175. package/dist/languageService/indentationUtils.d.ts +0 -16
  176. package/dist/languageService/indentationUtils.js +0 -727
  177. package/dist/languageService/indentationUtils.js.map +0 -1
  178. package/dist/languageService/insertionPointUtils.d.ts +0 -9
  179. package/dist/languageService/insertionPointUtils.js +0 -132
  180. package/dist/languageService/insertionPointUtils.js.map +0 -1
  181. package/dist/languageService/renameModuleProvider.d.ts +0 -65
  182. package/dist/languageService/renameModuleProvider.js +0 -939
  183. package/dist/languageService/renameModuleProvider.js.map +0 -1
  184. package/dist/tests/fourslash/completions.commitChars.fourslash.d.ts +0 -1
  185. package/dist/tests/fourslash/completions.commitChars.fourslash.js +0 -81
  186. package/dist/tests/fourslash/completions.commitChars.fourslash.js.map +0 -1
  187. package/dist/tests/importAdder.test.d.ts +0 -1
  188. package/dist/tests/importAdder.test.js +0 -1325
  189. package/dist/tests/importAdder.test.js.map +0 -1
  190. package/dist/tests/indentationUtils.ptvs.test.d.ts +0 -1
  191. package/dist/tests/indentationUtils.ptvs.test.js +0 -324
  192. package/dist/tests/indentationUtils.ptvs.test.js.map +0 -1
  193. package/dist/tests/indentationUtils.reindent.test.d.ts +0 -1
  194. package/dist/tests/indentationUtils.reindent.test.js +0 -372
  195. package/dist/tests/indentationUtils.reindent.test.js.map +0 -1
  196. package/dist/tests/indentationUtils.test.d.ts +0 -1
  197. package/dist/tests/indentationUtils.test.js +0 -502
  198. package/dist/tests/indentationUtils.test.js.map +0 -1
  199. package/dist/tests/insertionPointUtils.test.d.ts +0 -1
  200. package/dist/tests/insertionPointUtils.test.js +0 -154
  201. package/dist/tests/insertionPointUtils.test.js.map +0 -1
  202. package/dist/tests/moveSymbol.importAdder.test.d.ts +0 -1
  203. package/dist/tests/moveSymbol.importAdder.test.js +0 -298
  204. package/dist/tests/moveSymbol.importAdder.test.js.map +0 -1
  205. package/dist/tests/moveSymbol.insertion.test.d.ts +0 -1
  206. package/dist/tests/moveSymbol.insertion.test.js +0 -537
  207. package/dist/tests/moveSymbol.insertion.test.js.map +0 -1
  208. package/dist/tests/moveSymbol.misc.test.d.ts +0 -1
  209. package/dist/tests/moveSymbol.misc.test.js +0 -169
  210. package/dist/tests/moveSymbol.misc.test.js.map +0 -1
  211. package/dist/tests/moveSymbol.updateReference.test.d.ts +0 -1
  212. package/dist/tests/moveSymbol.updateReference.test.js +0 -1071
  213. package/dist/tests/moveSymbol.updateReference.test.js.map +0 -1
  214. package/dist/tests/renameModule.folder.test.d.ts +0 -1
  215. package/dist/tests/renameModule.folder.test.js +0 -229
  216. package/dist/tests/renameModule.folder.test.js.map +0 -1
  217. package/dist/tests/renameModule.fromImports.test.d.ts +0 -1
  218. package/dist/tests/renameModule.fromImports.test.js +0 -790
  219. package/dist/tests/renameModule.fromImports.test.js.map +0 -1
  220. package/dist/tests/renameModule.imports.test.d.ts +0 -1
  221. package/dist/tests/renameModule.imports.test.js +0 -380
  222. package/dist/tests/renameModule.imports.test.js.map +0 -1
  223. package/dist/tests/renameModule.misc.test.d.ts +0 -1
  224. package/dist/tests/renameModule.misc.test.js +0 -615
  225. package/dist/tests/renameModule.misc.test.js.map +0 -1
  226. package/dist/tests/renameModule.relativePath.test.d.ts +0 -1
  227. package/dist/tests/renameModule.relativePath.test.js +0 -231
  228. package/dist/tests/renameModule.relativePath.test.js.map +0 -1
  229. package/dist/tests/renameModuleTestUtils.d.ts +0 -4
  230. package/dist/tests/renameModuleTestUtils.js +0 -76
  231. package/dist/tests/renameModuleTestUtils.js.map +0 -1
@@ -1,231 +0,0 @@
1
- "use strict";
2
- /*
3
- * renameModule.misc.test.ts
4
- * Copyright (c) Microsoft Corporation.
5
- * Licensed under the MIT license.
6
- *
7
- * Tests Program.RenameModule
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const pathUtils_1 = require("../common/pathUtils");
11
- const testState_1 = require("./harness/fourslash/testState");
12
- const renameModuleTestUtils_1 = require("./renameModuleTestUtils");
13
- test('relative path for self', () => {
14
- const code = `
15
- // @filename: self.py
16
- //// from .self import foo
17
- //// def foo():
18
- //// [|/*marker*/pass|]
19
- `;
20
- const state = (0, testState_1.parseAndGetTestState)(code).state;
21
- const fileName = state.getMarkerByName('marker').fileName;
22
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'self.py')}`);
23
- });
24
- test('relative path for self - different name', () => {
25
- const code = `
26
- // @filename: self.py
27
- //// from [|{|"r":".renamedModule"|}.self|] import foo
28
- //// def foo():
29
- //// [|/*marker*/pass|]
30
- `;
31
- const state = (0, testState_1.parseAndGetTestState)(code).state;
32
- const fileName = state.getMarkerByName('marker').fileName;
33
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'renamedModule.py')}`);
34
- });
35
- test('relative path for self - __init__', () => {
36
- const code = `
37
- // @filename: common/__init__.py
38
- //// from . import foo
39
- //// def foo():
40
- //// [|/*marker*/pass|]
41
- `;
42
- const state = (0, testState_1.parseAndGetTestState)(code).state;
43
- const fileName = state.getMarkerByName('marker').fileName;
44
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', '__init__.py')}`);
45
- });
46
- test('relative path for self - __init__ different name', () => {
47
- const code = `
48
- // @filename: common/__init__.py
49
- //// from [|{|"r":".renamedModule"|}.|] import foo
50
- //// def foo():
51
- //// [|/*marker*/pass|]
52
- `;
53
- const state = (0, testState_1.parseAndGetTestState)(code).state;
54
- const fileName = state.getMarkerByName('marker').fileName;
55
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'renamedModule.py')}`);
56
- });
57
- test('relative path for self - __init__ folder name', () => {
58
- const code = `
59
- // @filename: common/__init__.py
60
- //// from [|{|"r":"."|}..common|] import foo
61
- //// def foo():
62
- //// [|/*marker*/pass|]
63
- `;
64
- const state = (0, testState_1.parseAndGetTestState)(code).state;
65
- const fileName = state.getMarkerByName('marker').fileName;
66
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', '__init__.py')}`);
67
- });
68
- test('relative path for self - __init__ different folder name', () => {
69
- const code = `
70
- // @filename: common/__init__.py
71
- //// from [|{|"r":".renamedModule"|}..common|] import foo
72
- //// def foo():
73
- //// [|/*marker*/pass|]
74
- `;
75
- const state = (0, testState_1.parseAndGetTestState)(code).state;
76
- const fileName = state.getMarkerByName('marker').fileName;
77
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'renamedModule.py')}`);
78
- });
79
- test('relative path for self - import name', () => {
80
- const code = `
81
- // @filename: self.py
82
- //// from . import self
83
- //// [|/*marker*/|]
84
- `;
85
- const state = (0, testState_1.parseAndGetTestState)(code).state;
86
- const fileName = state.getMarkerByName('marker').fileName;
87
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'self.py')}`);
88
- });
89
- test('relative path for modules', () => {
90
- const code = `
91
- // @filename: self.py
92
- //// from [|{|"r":".."|}.|] import module
93
- //// [|/*marker*/|]
94
-
95
- // @filename: module.py
96
- //// # empty
97
- `;
98
- const state = (0, testState_1.parseAndGetTestState)(code).state;
99
- const fileName = state.getMarkerByName('marker').fileName;
100
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'self.py')}`);
101
- });
102
- test('relative path to self with multiple import names', () => {
103
- const code = `
104
- // @filename: common/self.py
105
- //// [|{|"r":"from . import self!n!"|}|]from [|{|"r":".."|}.|] import [|{|"r":""|}self, |]module, foo
106
- //// [|/*marker*/|]
107
-
108
- // @filename: common/module.py
109
- //// # empty
110
-
111
- // @filename: common/__init__.py
112
- //// def foo():
113
- //// pass
114
-
115
- `;
116
- const state = (0, testState_1.parseAndGetTestState)(code).state;
117
- const fileName = state.getMarkerByName('marker').fileName;
118
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'self.py')}`);
119
- });
120
- test('relative path to module - move up', () => {
121
- const code = `
122
- // @filename: common/test.py
123
- //// from [|{|"r":"...sub.foo"|}..sub.foo|] import bar
124
- //// [|/*marker*/|]
125
-
126
- // @filename: sub/foo.py
127
- //// def bar():
128
- //// pass
129
-
130
- // @filename: sub/__init__.py
131
- //// # empty
132
- `;
133
- const state = (0, testState_1.parseAndGetTestState)(code).state;
134
- const fileName = state.getMarkerByName('marker').fileName;
135
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'self.py')}`);
136
- });
137
- test('relative path to module - move down', () => {
138
- const code = `
139
- // @filename: common/test.py
140
- //// from [|{|"r":".sub.foo"|}..sub.foo|] import bar
141
- //// [|/*marker*/|]
142
-
143
- // @filename: sub/foo.py
144
- //// def bar():
145
- //// pass
146
-
147
- // @filename: sub/__init__.py
148
- //// # empty
149
- `;
150
- const state = (0, testState_1.parseAndGetTestState)(code).state;
151
- const fileName = state.getMarkerByName('marker').fileName;
152
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), '..', 'self.py')}`);
153
- });
154
- test('relative path to module - sibling', () => {
155
- const code = `
156
- // @filename: common/test.py
157
- //// from ..sub.foo import bar
158
- //// [|/*marker*/|]
159
-
160
- // @filename: sub/foo.py
161
- //// def bar():
162
- //// pass
163
-
164
- // @filename: sub/__init__.py
165
- //// # empty
166
- `;
167
- const state = (0, testState_1.parseAndGetTestState)(code).state;
168
- const fileName = state.getMarkerByName('marker').fileName;
169
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), '..', 'moved', 'self.py')}`);
170
- });
171
- test('relative path to self __init__ with sub modules and symbol with dots', () => {
172
- const code = `
173
- // @filename: common/__init__.py
174
- //// [|{|"r":"from .self import bar!n!"|}|]from [|{|"r":".."|}.|] import module[|{|"r":""|}, bar|]
175
- //// [|/*marker*/|]
176
- //// def bar():
177
- //// pass
178
-
179
- // @filename: common/module.py
180
- //// # empty
181
- `;
182
- const state = (0, testState_1.parseAndGetTestState)(code).state;
183
- const fileName = state.getMarkerByName('marker').fileName;
184
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'self.py')}`);
185
- });
186
- test('relative path to self __init__ with sub modules and symbol with dotted name', () => {
187
- const code = `
188
- // @filename: common/__init__.py
189
- //// [|{|"r":"from common.moved.self import bar!n!"|}|]from [|{|"r":".."|}..common|] import module[|{|"r":""|}, bar|]
190
- //// [|/*marker*/|]
191
- //// def bar():
192
- //// pass
193
-
194
- // @filename: common/module.py
195
- //// # empty
196
- `;
197
- const state = (0, testState_1.parseAndGetTestState)(code).state;
198
- const fileName = state.getMarkerByName('marker').fileName;
199
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', 'self.py')}`);
200
- });
201
- test('relative path to self __init__ with sub modules and symbol with dots to __init__', () => {
202
- const code = `
203
- // @filename: common/__init__.py
204
- //// [|{|"r":"from . import bar!n!"|}|]from [|{|"r":".."|}.|] import module[|{|"r":""|}, bar|]
205
- //// [|/*marker*/|]
206
- //// def bar():
207
- //// pass
208
-
209
- // @filename: common/module.py
210
- //// # empty
211
- `;
212
- const state = (0, testState_1.parseAndGetTestState)(code).state;
213
- const fileName = state.getMarkerByName('marker').fileName;
214
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', '__init__.py')}`);
215
- });
216
- test('relative path to self __init__ with sub modules and symbol with dotted name to __init__', () => {
217
- const code = `
218
- // @filename: common/__init__.py
219
- //// [|{|"r":"from common.moved import bar!n!"|}|]from [|{|"r":".."|}..common|] import module[|{|"r":""|}, bar|]
220
- //// [|/*marker*/|]
221
- //// def bar():
222
- //// pass
223
-
224
- // @filename: common/module.py
225
- //// # empty
226
- `;
227
- const state = (0, testState_1.parseAndGetTestState)(code).state;
228
- const fileName = state.getMarkerByName('marker').fileName;
229
- (0, renameModuleTestUtils_1.testRenameModule)(state, fileName, `${(0, pathUtils_1.combinePaths)((0, pathUtils_1.getDirectoryPath)(fileName), 'moved', '__init__.py')}`);
230
- });
231
- //# sourceMappingURL=renameModule.relativePath.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renameModule.relativePath.test.js","sourceRoot":"","sources":["../../../src/tests/renameModule.relativePath.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Position } from '../common/textRange';
2
- import { TestState } from './harness/fourslash/testState';
3
- export declare function testMoveSymbolAtPosition(state: TestState, filePath: string, newFilePath: string, position: Position, text?: string, replacementText?: string, expectsMissingImport?: boolean): void;
4
- export declare function testRenameModule(state: TestState, filePath: string, newFilePath: string, text?: string, replacementText?: string): void;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- /*
3
- * renameModuleTestUtils.ts
4
- * Copyright (c) Microsoft Corporation.
5
- * Licensed under the MIT license.
6
- *
7
- * Test helpers for rename module tests
8
- */
9
- var __importDefault = (this && this.__importDefault) || function (mod) {
10
- return (mod && mod.__esModule) ? mod : { "default": mod };
11
- };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.testRenameModule = exports.testMoveSymbolAtPosition = void 0;
14
- const assert_1 = __importDefault(require("assert"));
15
- const vscode_languageserver_1 = require("vscode-languageserver");
16
- const collectionUtils_1 = require("../common/collectionUtils");
17
- const diagnosticRules_1 = require("../common/diagnosticRules");
18
- const testStateUtils_1 = require("./testStateUtils");
19
- function testMoveSymbolAtPosition(state, filePath, newFilePath, position, text, replacementText, expectsMissingImport = false) {
20
- const actions = state.program.moveSymbolAtPosition(filePath, newFilePath, position, { importFormat: "absolute" /* Absolute */ }, vscode_languageserver_1.CancellationToken.None);
21
- (0, assert_1.default)(actions);
22
- const ranges = [];
23
- if (text !== undefined) {
24
- (0, collectionUtils_1.appendArray)(ranges, state.getRangesByText().get(text));
25
- }
26
- else {
27
- (0, collectionUtils_1.appendArray)(ranges, state.getRanges().filter((r) => { var _a; return !!((_a = r.marker) === null || _a === void 0 ? void 0 : _a.data); }));
28
- }
29
- assert_1.default.strictEqual(actions.edits.length, ranges.length, `${actions.edits.map((e) => (0, testStateUtils_1.convertFileEditActionToString)(e)).join('|')} vs ${ranges
30
- .map((r) => (0, testStateUtils_1.convertRangeToFileEditAction)(state, r, replacementText))
31
- .map((e) => (0, testStateUtils_1.convertFileEditActionToString)(e))
32
- .join('|')}`);
33
- _verifyFileOperations(state, actions, ranges, replacementText, expectsMissingImport);
34
- }
35
- exports.testMoveSymbolAtPosition = testMoveSymbolAtPosition;
36
- function testRenameModule(state, filePath, newFilePath, text, replacementText) {
37
- const editActions = state.program.renameModule(filePath, newFilePath, vscode_languageserver_1.CancellationToken.None);
38
- (0, assert_1.default)(editActions);
39
- const ranges = [];
40
- if (text !== undefined) {
41
- (0, collectionUtils_1.appendArray)(ranges, state.getRangesByText().get(text));
42
- }
43
- else {
44
- (0, collectionUtils_1.appendArray)(ranges, state.getRanges().filter((r) => { var _a; return !!((_a = r.marker) === null || _a === void 0 ? void 0 : _a.data); }));
45
- }
46
- assert_1.default.strictEqual(editActions.edits.length, ranges.length, `${editActions.edits.map((e) => (0, testStateUtils_1.convertFileEditActionToString)(e)).join('\n')} vs ${ranges
47
- .map((r) => (0, testStateUtils_1.convertRangeToFileEditAction)(state, r, replacementText))
48
- .map((e) => (0, testStateUtils_1.convertFileEditActionToString)(e))
49
- .join('\n')}`);
50
- editActions.fileOperations.push({ kind: 'rename', oldFilePath: filePath, newFilePath });
51
- // Make sure we don't have missing imports on the original state.
52
- _verifyFileOperations(state, editActions, ranges, replacementText);
53
- }
54
- exports.testRenameModule = testRenameModule;
55
- function _verifyFileOperations(state, fileEditActions, ranges, replacementText, expectsMissingImport = false) {
56
- const editsPerFileMap = (0, collectionUtils_1.createMapFromItems)(fileEditActions.edits, (e) => e.filePath);
57
- if (!expectsMissingImport) {
58
- _verifyMissingImports();
59
- }
60
- (0, testStateUtils_1.verifyEdits)(state, fileEditActions, ranges, replacementText);
61
- (0, testStateUtils_1.applyFileOperations)(state, fileEditActions);
62
- // Make sure we don't have missing imports after the change.
63
- if (!expectsMissingImport) {
64
- _verifyMissingImports();
65
- }
66
- function _verifyMissingImports() {
67
- for (const editFileName of editsPerFileMap.keys()) {
68
- const sourceFile = state.program.getBoundSourceFile(editFileName);
69
- _verifyMissingImportsDiagnostics(sourceFile.getDiagnostics(state.configOptions));
70
- }
71
- }
72
- }
73
- function _verifyMissingImportsDiagnostics(diagnostics) {
74
- (0, assert_1.default)(!diagnostics || diagnostics.filter((d) => d.getRule() === diagnosticRules_1.DiagnosticRule.reportMissingImports).length === 0, JSON.stringify(diagnostics.map((d) => d.message)));
75
- }
76
- //# sourceMappingURL=renameModuleTestUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renameModuleTestUtils.js","sourceRoot":"","sources":["../../../src/tests/renameModuleTestUtils.ts"],"names":[],"mappings":"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"}