@zzzen/pyright-internal 1.2.0-dev.20230226 → 1.2.0-dev.20230305
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.
- package/dist/analyzer/binder.d.ts +0 -1
- package/dist/analyzer/binder.js +9 -92
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +45 -28
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +4 -4
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +2 -4
- package/dist/analyzer/declaration.js +6 -1
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +1 -5
- package/dist/analyzer/declarationUtils.js +2 -47
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +9 -3
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +4 -2
- package/dist/analyzer/parseTreeUtils.js +77 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +18 -1
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +151 -11
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +3 -2
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +4 -2
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +27 -13
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/service.js +6 -1
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/symbol.js +1 -4
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/symbolUtils.d.ts +0 -3
- package/dist/analyzer/symbolUtils.js +1 -14
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +5 -3
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +503 -234
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +10 -2
- package/dist/analyzer/typeGuards.js +2 -2
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +1 -0
- package/dist/analyzer/typeUtils.js +14 -1
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.js +26 -17
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +2 -1
- package/dist/analyzer/types.js.map +1 -1
- package/dist/common/collectionUtils.d.ts +1 -0
- package/dist/common/collectionUtils.js +8 -1
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/positionUtils.d.ts +2 -0
- package/dist/common/positionUtils.js +15 -1
- package/dist/common/positionUtils.js.map +1 -1
- package/dist/languageServerBase.js +6 -0
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +4 -2
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.js +46 -40
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.d.ts +1 -1
- package/dist/languageService/completionProviderUtils.js +3 -3
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/definitionProvider.js +2 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +2 -1
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.js +11 -3
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importAdder.js +4 -1
- package/dist/languageService/importAdder.js.map +1 -1
- package/dist/languageService/indentationUtils.d.ts +1 -1
- package/dist/languageService/indentationUtils.js +22 -12
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/renameModuleProvider.js +20 -7
- package/dist/languageService/renameModuleProvider.js.map +1 -1
- package/dist/localization/localize.d.ts +9 -2
- package/dist/localization/localize.js +4 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +5 -2
- package/dist/parser/parser.js +18 -18
- package/dist/parser/parser.js.map +1 -1
- package/dist/pyright.js +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/tests/docStringConversion.test.js +23 -0
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/fourslash/completions.errorNodes.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/completions.errorNodes.fourslash.js +24 -0
- package/dist/tests/fourslash/completions.errorNodes.fourslash.js.map +1 -0
- package/dist/tests/fourslash/hover.slots.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/hover.slots.fourslash.js +16 -0
- package/dist/tests/fourslash/hover.slots.fourslash.js.map +1 -0
- package/dist/tests/importAdder.test.js +13 -0
- package/dist/tests/importAdder.test.js.map +1 -1
- package/dist/tests/indentationUtils.reindent.test.js +21 -0
- package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
- package/dist/tests/moveSymbol.importAdder.test.js +137 -31
- package/dist/tests/moveSymbol.importAdder.test.js.map +1 -1
- package/dist/tests/moveSymbol.insertion.test.js +98 -0
- package/dist/tests/moveSymbol.insertion.test.js.map +1 -1
- package/dist/tests/renameModuleTestUtils.d.ts +1 -1
- package/dist/tests/renameModuleTestUtils.js +9 -5
- package/dist/tests/renameModuleTestUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +4 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +1 -1
- package/dist/tests/typeEvaluator3.test.js +20 -4
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +6 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/package.json +1 -1
@@ -12,44 +12,44 @@ const renameModuleTestUtils_1 = require("./renameModuleTestUtils");
|
|
12
12
|
test('move imports used in the symbol', () => {
|
13
13
|
const code = `
|
14
14
|
// @filename: test.py
|
15
|
-
//// from typing import List, Mapping
|
15
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
16
16
|
////
|
17
17
|
//// class MyType:
|
18
18
|
//// pass
|
19
19
|
////
|
20
|
-
////
|
20
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
21
21
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
22
22
|
|
23
23
|
// @filename: moved.py
|
24
|
-
//// [|{|"r":"from
|
24
|
+
//// [|{|"r":"from test import MyType!n!!n!!n!from typing import List, Mapping!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
|
25
25
|
`;
|
26
26
|
testFromCode(code);
|
27
27
|
});
|
28
28
|
test('import with alias', () => {
|
29
29
|
const code = `
|
30
30
|
// @filename: test.py
|
31
|
-
//// from typing import List as l, Mapping as m
|
31
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List as l, Mapping as m
|
32
32
|
////
|
33
33
|
//// class MyType:
|
34
34
|
//// pass
|
35
35
|
////
|
36
|
-
////
|
36
|
+
//// def [|/*marker*/foo|](a: str, b: l[int]) -> None:
|
37
37
|
//// c: m[str, MyType] = { 'hello', MyType() }|]
|
38
38
|
|
39
39
|
// @filename: moved.py
|
40
|
-
//// [|{|"r":"from typing import List as l, Mapping as m!n!!n!!n!
|
40
|
+
//// [|{|"r":"from test import MyType!n!!n!!n!from typing import List as l, Mapping as m!n!!n!!n!def foo(a: str, b: l[int]) -> None:!n! c: m[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
|
41
41
|
`;
|
42
42
|
testFromCode(code);
|
43
43
|
});
|
44
44
|
test('with existing imports', () => {
|
45
45
|
const code = `
|
46
46
|
// @filename: test.py
|
47
|
-
//// from typing import List, Mapping
|
47
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
48
48
|
////
|
49
49
|
//// class MyType:
|
50
50
|
//// pass
|
51
51
|
////
|
52
|
-
////
|
52
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
53
53
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
54
54
|
|
55
55
|
// @filename: moved.py
|
@@ -61,7 +61,7 @@ test('with existing imports', () => {
|
|
61
61
|
test('merge with existing imports', () => {
|
62
62
|
const code = `
|
63
63
|
// @filename: test.py
|
64
|
-
//// from typing import List, Mapping
|
64
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!class MyType2(MyType):!n! pass!n!!n!"|}from typing import List, Mapping
|
65
65
|
////
|
66
66
|
//// class MyType:
|
67
67
|
//// pass
|
@@ -69,25 +69,25 @@ test('merge with existing imports', () => {
|
|
69
69
|
//// class MyType2(MyType):
|
70
70
|
//// pass
|
71
71
|
////
|
72
|
-
////
|
72
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
73
73
|
//// c: Mapping[str, MyType] = { 'hello', MyType2() }|]
|
74
74
|
|
75
75
|
// @filename: moved.py
|
76
|
-
////
|
77
|
-
//// from test import MyType
|
78
|
-
//// m = MyType()
|
76
|
+
//// [|{|"r":"from typing import List, Mapping!n!from test import MyType, MyType2!n!m = MyType()!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType2() }", "name": "dest"|}from typing import Mapping
|
77
|
+
//// from test import MyType
|
78
|
+
//// m = MyType()|]
|
79
79
|
`;
|
80
80
|
testFromCode(code);
|
81
81
|
});
|
82
82
|
test('merge with existing moving symbol imports', () => {
|
83
83
|
const code = `
|
84
84
|
// @filename: test.py
|
85
|
-
//// from typing import List, Mapping
|
85
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
86
86
|
////
|
87
87
|
//// class MyType:
|
88
88
|
//// pass
|
89
89
|
////
|
90
|
-
////
|
90
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
91
91
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
92
92
|
|
93
93
|
// @filename: moved.py
|
@@ -101,28 +101,28 @@ test('merge with existing moving symbol imports', () => {
|
|
101
101
|
test('merge with existing moving symbol imports and add new one', () => {
|
102
102
|
const code = `
|
103
103
|
// @filename: test.py
|
104
|
-
//// from typing import List, Mapping
|
104
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
105
105
|
////
|
106
106
|
//// class MyType:
|
107
107
|
//// pass
|
108
108
|
////
|
109
|
-
////
|
109
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
110
110
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
111
111
|
|
112
112
|
// @filename: moved.py
|
113
|
-
//// from typing import List, Mapping
|
114
|
-
////
|
115
|
-
////
|
116
|
-
//// foo()
|
113
|
+
//// [|{|"r":"from typing import List, Mapping!n!!n!from test import MyType!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType() }!n!!n!foo()", "name": "dest"|}from typing import List, Mapping
|
114
|
+
//// from test import foo
|
115
|
+
////
|
116
|
+
//// foo()|]
|
117
117
|
`;
|
118
118
|
testFromCode(code);
|
119
119
|
});
|
120
120
|
test('symbol from destination file used', () => {
|
121
121
|
const code = `
|
122
122
|
// @filename: test.py
|
123
|
-
//// from moved import MyType
|
123
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
124
124
|
////
|
125
|
-
////
|
125
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
126
126
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
127
127
|
|
128
128
|
// @filename: moved.py
|
@@ -135,9 +135,9 @@ test('symbol from destination file used', () => {
|
|
135
135
|
test('insert after all symbols references', () => {
|
136
136
|
const code = `
|
137
137
|
// @filename: test.py
|
138
|
-
//// from moved import MyType
|
138
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
139
139
|
////
|
140
|
-
////
|
140
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
141
141
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
142
142
|
|
143
143
|
// @filename: moved.py
|
@@ -153,9 +153,9 @@ test('insert after all symbols references', () => {
|
|
153
153
|
test('insert after all symbols references 2', () => {
|
154
154
|
const code = `
|
155
155
|
// @filename: test.py
|
156
|
-
//// from moved import MyType
|
156
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
157
157
|
////
|
158
|
-
////
|
158
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
159
159
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
160
160
|
|
161
161
|
// @filename: moved.py
|
@@ -170,9 +170,9 @@ test('insert after all symbols references 2', () => {
|
|
170
170
|
test('symbol used before all symbol references', () => {
|
171
171
|
const code = `
|
172
172
|
// @filename: test.py
|
173
|
-
//// from moved import MyType
|
173
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
174
174
|
////
|
175
|
-
////
|
175
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
176
176
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
177
177
|
|
178
178
|
// @filename: moved.py
|
@@ -185,8 +185,114 @@ test('symbol used before all symbol references', () => {
|
|
185
185
|
`;
|
186
186
|
testFromCode(code);
|
187
187
|
});
|
188
|
-
|
188
|
+
test('symbol with import statements', () => {
|
189
|
+
const code = `
|
190
|
+
// @filename: test.py
|
191
|
+
//// [|{|"r": "import sys!n!!n!"|}import os, os.path, sys
|
192
|
+
////
|
193
|
+
//// def [|/*marker*/foo|]():
|
194
|
+
//// p = os.path.curdir
|
195
|
+
//// os.abort()|]
|
196
|
+
|
197
|
+
// @filename: moved.py
|
198
|
+
//// [|{|"r": "import os!n!import os.path!n!!n!!n!def foo():!n! p = os.path.curdir!n! os.abort()", "name": "dest"|}|]
|
199
|
+
`;
|
200
|
+
testFromCode(code);
|
201
|
+
});
|
202
|
+
test('symbol with import statements with alias', () => {
|
203
|
+
const code = `
|
204
|
+
// @filename: test.py
|
205
|
+
//// [|{|"r": "import sys!n!!n!"|}import os, os.path as path, sys
|
206
|
+
////
|
207
|
+
//// def [|/*marker*/foo|]():
|
208
|
+
//// p = path.curdir
|
209
|
+
//// os.abort()|]
|
210
|
+
|
211
|
+
// @filename: moved.py
|
212
|
+
//// [|{|"r": "import os!n!import os.path as path!n!!n!!n!def foo():!n! p = path.curdir!n! os.abort()", "name": "dest"|}|]
|
213
|
+
`;
|
214
|
+
testFromCode(code);
|
215
|
+
});
|
216
|
+
test('symbol with import statements with alias 2', () => {
|
217
|
+
const code = `
|
218
|
+
// @filename: test.py
|
219
|
+
//// [|{|"r": "import sys!n!!n!"|}import os, os.path as p1, sys
|
220
|
+
////
|
221
|
+
//// def [|/*marker*/foo|]():
|
222
|
+
//// p = p1.curdir
|
223
|
+
//// os.abort()|]
|
224
|
+
|
225
|
+
// @filename: moved.py
|
226
|
+
//// [|{|"r": "import os!n!import os.path as p1!n!!n!!n!def foo():!n! p = p1.curdir!n! os.abort()", "name": "dest"|}|]
|
227
|
+
`;
|
228
|
+
testFromCode(code);
|
229
|
+
});
|
230
|
+
test('symbol with import statements with multiple unused imports', () => {
|
231
|
+
const code = `
|
232
|
+
// @filename: test.py
|
233
|
+
//// [|{|"r": "import os.path, sys!n!!n!"|}import os, os.path, sys
|
234
|
+
////
|
235
|
+
//// def [|/*marker*/foo|]():
|
236
|
+
//// os.abort()|]
|
237
|
+
|
238
|
+
// @filename: moved.py
|
239
|
+
//// [|{|"r": "import os!n!!n!!n!def foo():!n! os.abort()", "name": "dest"|}|]
|
240
|
+
`;
|
241
|
+
testFromCode(code);
|
242
|
+
});
|
243
|
+
test('symbol with import statements with used imports', () => {
|
244
|
+
const code = `
|
245
|
+
// @filename: test.py
|
246
|
+
//// [|{|"r": "import os.path as path, sys!n!!n!p = path.curdir!n!!n!"|}import os, os.path as path, sys
|
247
|
+
////
|
248
|
+
//// p = path.curdir
|
249
|
+
////
|
250
|
+
//// def [|/*marker*/foo|]():
|
251
|
+
//// p = path.curdir
|
252
|
+
//// os.abort()|]
|
253
|
+
|
254
|
+
// @filename: moved.py
|
255
|
+
//// [|{|"r": "import os!n!import os.path as path!n!!n!!n!def foo():!n! p = path.curdir!n! os.abort()", "name": "dest"|}|]
|
256
|
+
`;
|
257
|
+
testFromCode(code);
|
258
|
+
});
|
259
|
+
test('symbol with invalid import', () => {
|
260
|
+
const code = `
|
261
|
+
// @filename: test.py
|
262
|
+
//// import notExist
|
263
|
+
////
|
264
|
+
//// p = notExist.fooStr
|
265
|
+
////
|
266
|
+
//// [|{|"r": ""|}def [|/*marker*/foo|]():
|
267
|
+
//// p = notExist.fooStr|]
|
268
|
+
|
269
|
+
// @filename: moved.py
|
270
|
+
//// [|{|"r": "def foo():!n! p = notExist.fooStr", "name": "dest"|}|]
|
271
|
+
`;
|
272
|
+
testFromCode(code, true);
|
273
|
+
});
|
274
|
+
test('symbol with import with error', () => {
|
275
|
+
const code = `
|
276
|
+
// @filename: test.py
|
277
|
+
//// #pyright: strict
|
278
|
+
//// import lib # should have no stub diagnostic
|
279
|
+
////
|
280
|
+
//// lib.bar()
|
281
|
+
////
|
282
|
+
//// [|{|"r": ""|}def [|/*marker*/foo|]():
|
283
|
+
//// p = lib.bar()|]
|
284
|
+
|
285
|
+
// @filename: lib/__init__.py
|
286
|
+
// @library: true
|
287
|
+
//// def bar(): pass
|
288
|
+
|
289
|
+
// @filename: moved.py
|
290
|
+
//// [|{|"r": "import lib!n!!n!!n!def foo():!n! p = lib.bar()", "name": "dest"|}|]
|
291
|
+
`;
|
292
|
+
testFromCode(code, true);
|
293
|
+
});
|
294
|
+
function testFromCode(code, expectsMissingImport = false) {
|
189
295
|
const state = (0, testState_1.parseAndGetTestState)(code).state;
|
190
|
-
(0, renameModuleTestUtils_1.testMoveSymbolAtPosition)(state, state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start);
|
296
|
+
(0, renameModuleTestUtils_1.testMoveSymbolAtPosition)(state, state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start, undefined, undefined, expectsMissingImport);
|
191
297
|
}
|
192
298
|
//# sourceMappingURL=moveSymbol.importAdder.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"moveSymbol.importAdder.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.importAdder.test.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,6DAAqE;AACrE,mEAAmE;AAEnE,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,IAAI,GAAG;;;;;;;;;;;;SAYR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC3B,MAAM,IAAI,GAAG;;;;;;;;;;;;SAYR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAG;;;;;;;;;;;;;SAaR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;SAiBR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;SAeR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACnE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;SAeR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,MAAM,IAAI,GAAG;;;;;;;;;;;SAWR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC7C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;SAcR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IAC/C,MAAM,IAAI,GAAG;;;;;;;;;;;;;SAaR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;IAClD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;SAcR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;
|
1
|
+
{"version":3,"file":"moveSymbol.importAdder.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.importAdder.test.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,6DAAqE;AACrE,mEAAmE;AAEnE,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,IAAI,GAAG;;;;;;;;;;;;SAYR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC3B,MAAM,IAAI,GAAG;;;;;;;;;;;;SAYR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAG;;;;;;;;;;;;;SAaR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;SAiBR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;SAeR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACnE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;SAeR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,MAAM,IAAI,GAAG;;;;;;;;;;;SAWR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC7C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;SAcR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IAC/C,MAAM,IAAI,GAAG;;;;;;;;;;;;;SAaR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;IAClD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;SAcR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACvC,MAAM,IAAI,GAAG;;;;;;;;;;SAUR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;IAClD,MAAM,IAAI,GAAG;;;;;;;;;;SAUR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACpD,MAAM,IAAI,GAAG;;;;;;;;;;SAUR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;IACpE,MAAM,IAAI,GAAG;;;;;;;;;SASR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;IACzD,MAAM,IAAI,GAAG;;;;;;;;;;;;SAYR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4BAA4B,EAAE,GAAG,EAAE;IACpC,MAAM,IAAI,GAAG;;;;;;;;;;;SAWR,CAAC;IAEN,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACvC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;SAgBR,CAAC;IAEN,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY,EAAE,oBAAoB,GAAG,KAAK;IAC5D,MAAM,KAAK,GAAG,IAAA,gCAAoB,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAE/C,IAAA,gDAAwB,EACpB,KAAK,EACL,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,QAAQ,EACxC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EACtC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,KAAK,EACtC,SAAS,EACT,SAAS,EACT,oBAAoB,CACvB,CAAC;AACN,CAAC"}
|
@@ -390,6 +390,104 @@ test('move variable with doc string', () => {
|
|
390
390
|
`;
|
391
391
|
testFromCode(code);
|
392
392
|
});
|
393
|
+
test('move a variable with another variable next line', () => {
|
394
|
+
const code = `
|
395
|
+
// @filename: test.py
|
396
|
+
//// [|{|"r":"!n!guess_word = 'c'"|}import random
|
397
|
+
////
|
398
|
+
//// [|/*marker*/answer_word|] = random.choice(['a','b','c','d'])
|
399
|
+
//// guess_word = 'c'|]
|
400
|
+
|
401
|
+
// @filename: moved.py
|
402
|
+
//// [|{|"r":"import random!n!!n!!n!answer_word = random.choice(['a','b','c','d'])", "name": "dest"|}|]
|
403
|
+
`;
|
404
|
+
testFromCode(code);
|
405
|
+
});
|
406
|
+
test('Handle comments at the begining better 1', () => {
|
407
|
+
const code = `
|
408
|
+
// @filename: test.py
|
409
|
+
//// # this function doesn't do much
|
410
|
+
//// [|{|"r":""|}def [|/*marker*/myfunc|](a, b):
|
411
|
+
//// return a + b|]
|
412
|
+
|
413
|
+
// @filename: moved.py
|
414
|
+
//// [|{|"r":"def myfunc(a, b):!n! return a + b", "name": "dest"|}|]
|
415
|
+
`;
|
416
|
+
testFromCode(code);
|
417
|
+
});
|
418
|
+
test('Handle comments at the begining better 2', () => {
|
419
|
+
const code = `
|
420
|
+
// @filename: test.py
|
421
|
+
//// import os
|
422
|
+
////
|
423
|
+
//// [|{|"r":""|}# this function doesn't do much
|
424
|
+
//// def [|/*marker*/myfunc|](a, b):
|
425
|
+
//// return a + b|]
|
426
|
+
|
427
|
+
// @filename: moved.py
|
428
|
+
//// [|{|"r":"# this function doesn't do much!n!def myfunc(a, b):!n! return a + b", "name": "dest"|}|]
|
429
|
+
`;
|
430
|
+
testFromCode(code);
|
431
|
+
});
|
432
|
+
test('variable with multiline expression', () => {
|
433
|
+
const code = `
|
434
|
+
// @filename: test.py
|
435
|
+
//// [|{|"r":"!n!"|}from functools import partial
|
436
|
+
////
|
437
|
+
//// [|/*marker*/sum1_2|] = partial(sum,
|
438
|
+
//// [1,
|
439
|
+
//// 2]
|
440
|
+
//// )|]
|
441
|
+
|
442
|
+
// @filename: moved.py
|
443
|
+
//// [|{|"r":"from functools import partial!n!!n!!n!sum1_2 = partial(sum,!n![1,!n!2]!n!)", "name": "dest"|}|]
|
444
|
+
`;
|
445
|
+
testFromCode(code);
|
446
|
+
});
|
447
|
+
test('multiple variables in a single line 1', () => {
|
448
|
+
const code = `
|
449
|
+
// @filename: test.py
|
450
|
+
//// [|{|"r":""|}[|/*marker*/a|] = 1; |]b = 1
|
451
|
+
|
452
|
+
// @filename: moved.py
|
453
|
+
//// [|{|"r":"a = 1;", "name": "dest"|}|]
|
454
|
+
`;
|
455
|
+
testFromCode(code);
|
456
|
+
});
|
457
|
+
test('multiple variables in a single line 2', () => {
|
458
|
+
const code = `
|
459
|
+
// @filename: test.py
|
460
|
+
//// a = 1;[|{|"r":""|}[|/*marker*/b|] = 2|]
|
461
|
+
|
462
|
+
// @filename: moved.py
|
463
|
+
//// [|{|"r":"b = 2", "name": "dest"|}|]
|
464
|
+
`;
|
465
|
+
testFromCode(code);
|
466
|
+
});
|
467
|
+
test('multiple variables in multiple lines 1', () => {
|
468
|
+
const code = `
|
469
|
+
// @filename: test.py
|
470
|
+
//// [|{|"r":""|}[|/*marker*/a|] = \\
|
471
|
+
//// 1 + 2; |]b = 3 + \\
|
472
|
+
//// 4
|
473
|
+
|
474
|
+
// @filename: moved.py
|
475
|
+
//// [|{|"r":"a = \\\\!n! 1 + 2;", "name": "dest"|}|]
|
476
|
+
`;
|
477
|
+
testFromCode(code);
|
478
|
+
});
|
479
|
+
test('multiple variables in multiple lines 2', () => {
|
480
|
+
const code = `
|
481
|
+
// @filename: test.py
|
482
|
+
//// a = \\
|
483
|
+
//// 1 + 2; [|{|"r":""|}[|/*marker*/b|] = 3 + \\
|
484
|
+
//// 4|]
|
485
|
+
|
486
|
+
// @filename: moved.py
|
487
|
+
//// [|{|"r":"b = 3 + \\\\!n! 4", "name": "dest"|}|]
|
488
|
+
`;
|
489
|
+
testFromCode(code);
|
490
|
+
});
|
393
491
|
function testFromCode(code) {
|
394
492
|
const state = (0, testState_1.parseAndGetTestState)(code).state;
|
395
493
|
(0, renameModuleTestUtils_1.testMoveSymbolAtPosition)(state, state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"moveSymbol.insertion.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.insertion.test.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"moveSymbol.insertion.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.insertion.test.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import { Position } from '../common/textRange';
|
2
2
|
import { TestState } from './harness/fourslash/testState';
|
3
|
-
export declare function testMoveSymbolAtPosition(state: TestState, filePath: string, newFilePath: string, position: Position, text?: string, replacementText?: string): void;
|
3
|
+
export declare function testMoveSymbolAtPosition(state: TestState, filePath: string, newFilePath: string, position: Position, text?: string, replacementText?: string, expectsMissingImport?: boolean): void;
|
4
4
|
export declare function testRenameModule(state: TestState, filePath: string, newFilePath: string, text?: string, replacementText?: string): void;
|
@@ -16,7 +16,7 @@ const vscode_languageserver_1 = require("vscode-languageserver");
|
|
16
16
|
const collectionUtils_1 = require("../common/collectionUtils");
|
17
17
|
const diagnosticRules_1 = require("../common/diagnosticRules");
|
18
18
|
const testStateUtils_1 = require("./testStateUtils");
|
19
|
-
function testMoveSymbolAtPosition(state, filePath, newFilePath, position, text, replacementText) {
|
19
|
+
function testMoveSymbolAtPosition(state, filePath, newFilePath, position, text, replacementText, expectsMissingImport = false) {
|
20
20
|
const actions = state.program.moveSymbolAtPosition(filePath, newFilePath, position, { importFormat: "absolute" /* Absolute */ }, vscode_languageserver_1.CancellationToken.None);
|
21
21
|
(0, assert_1.default)(actions);
|
22
22
|
const ranges = [];
|
@@ -30,7 +30,7 @@ function testMoveSymbolAtPosition(state, filePath, newFilePath, position, text,
|
|
30
30
|
.map((r) => (0, testStateUtils_1.convertRangeToFileEditAction)(state, r, replacementText))
|
31
31
|
.map((e) => (0, testStateUtils_1.convertFileEditActionToString)(e))
|
32
32
|
.join('|')}`);
|
33
|
-
_verifyFileOperations(state, actions, ranges, replacementText);
|
33
|
+
_verifyFileOperations(state, actions, ranges, replacementText, expectsMissingImport);
|
34
34
|
}
|
35
35
|
exports.testMoveSymbolAtPosition = testMoveSymbolAtPosition;
|
36
36
|
function testRenameModule(state, filePath, newFilePath, text, replacementText) {
|
@@ -52,13 +52,17 @@ function testRenameModule(state, filePath, newFilePath, text, replacementText) {
|
|
52
52
|
_verifyFileOperations(state, editActions, ranges, replacementText);
|
53
53
|
}
|
54
54
|
exports.testRenameModule = testRenameModule;
|
55
|
-
function _verifyFileOperations(state, fileEditActions, ranges, replacementText) {
|
55
|
+
function _verifyFileOperations(state, fileEditActions, ranges, replacementText, expectsMissingImport = false) {
|
56
56
|
const editsPerFileMap = (0, collectionUtils_1.createMapFromItems)(fileEditActions.edits, (e) => e.filePath);
|
57
|
-
|
57
|
+
if (!expectsMissingImport) {
|
58
|
+
_verifyMissingImports();
|
59
|
+
}
|
58
60
|
(0, testStateUtils_1.verifyEdits)(state, fileEditActions, ranges, replacementText);
|
59
61
|
(0, testStateUtils_1.applyFileOperations)(state, fileEditActions);
|
60
62
|
// Make sure we don't have missing imports after the change.
|
61
|
-
|
63
|
+
if (!expectsMissingImport) {
|
64
|
+
_verifyMissingImports();
|
65
|
+
}
|
62
66
|
function _verifyMissingImports() {
|
63
67
|
for (const editFileName of editsPerFileMap.keys()) {
|
64
68
|
const sourceFile = state.program.getBoundSourceFile(editFileName);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"renameModuleTestUtils.js","sourceRoot":"","sources":["../../../src/tests/renameModuleTestUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AAEH,oDAA4B;AAC5B,iEAA0D;AAE1D,+DAA4E;AAE5E,+DAA2D;AAM3D,qDAK0B;AAE1B,SAAgB,wBAAwB,CACpC,KAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,QAAkB,EAClB,IAAa,EACb,eAAwB;
|
1
|
+
{"version":3,"file":"renameModuleTestUtils.js","sourceRoot":"","sources":["../../../src/tests/renameModuleTestUtils.ts"],"names":[],"mappings":"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"}
|
@@ -282,6 +282,10 @@ test('TypeNarrowingTypeIs1', () => {
|
|
282
282
|
const analysisResults = TestUtils.typeAnalyzeSampleFiles(['typeNarrowingTypeIs1.py']);
|
283
283
|
TestUtils.validateResults(analysisResults, 3);
|
284
284
|
});
|
285
|
+
test('TypeNarrowingTypeEquals1', () => {
|
286
|
+
const analysisResults = TestUtils.typeAnalyzeSampleFiles(['typeNarrowingTypeEquals1.py']);
|
287
|
+
TestUtils.validateResults(analysisResults, 3);
|
288
|
+
});
|
285
289
|
test('TypeNarrowingIsNone1', () => {
|
286
290
|
const analysisResults = TestUtils.typeAnalyzeSampleFiles(['typeNarrowingIsNone1.py']);
|
287
291
|
TestUtils.validateResults(analysisResults, 0);
|