@zzzen/pyright-internal 1.2.0-dev.20230219 → 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.
Files changed (166) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
  2. package/dist/analyzer/backgroundAnalysisProgram.js +3 -3
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +0 -1
  5. package/dist/analyzer/binder.js +18 -93
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/checker.js +50 -30
  8. package/dist/analyzer/checker.js.map +1 -1
  9. package/dist/analyzer/codeFlowEngine.js +5 -5
  10. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  11. package/dist/analyzer/constraintSolver.js +0 -10
  12. package/dist/analyzer/constraintSolver.js.map +1 -1
  13. package/dist/analyzer/declaration.d.ts +3 -4
  14. package/dist/analyzer/declaration.js +6 -1
  15. package/dist/analyzer/declaration.js.map +1 -1
  16. package/dist/analyzer/declarationUtils.d.ts +1 -5
  17. package/dist/analyzer/declarationUtils.js +2 -47
  18. package/dist/analyzer/declarationUtils.js.map +1 -1
  19. package/dist/analyzer/docStringConversion.js +9 -3
  20. package/dist/analyzer/docStringConversion.js.map +1 -1
  21. package/dist/analyzer/importResolver.d.ts +3 -2
  22. package/dist/analyzer/importResolver.js +28 -19
  23. package/dist/analyzer/importResolver.js.map +1 -1
  24. package/dist/analyzer/parseTreeUtils.d.ts +4 -2
  25. package/dist/analyzer/parseTreeUtils.js +77 -2
  26. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  27. package/dist/analyzer/patternMatching.d.ts +1 -0
  28. package/dist/analyzer/patternMatching.js +47 -2
  29. package/dist/analyzer/patternMatching.js.map +1 -1
  30. package/dist/analyzer/program.d.ts +5 -4
  31. package/dist/analyzer/program.js +182 -43
  32. package/dist/analyzer/program.js.map +1 -1
  33. package/dist/analyzer/properties.js +8 -3
  34. package/dist/analyzer/properties.js.map +1 -1
  35. package/dist/analyzer/protocols.js +8 -5
  36. package/dist/analyzer/protocols.js.map +1 -1
  37. package/dist/analyzer/pythonPathUtils.js +27 -13
  38. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  39. package/dist/analyzer/service.d.ts +7 -3
  40. package/dist/analyzer/service.js +24 -7
  41. package/dist/analyzer/service.js.map +1 -1
  42. package/dist/analyzer/sourceFile.js +3 -0
  43. package/dist/analyzer/sourceFile.js.map +1 -1
  44. package/dist/analyzer/symbol.js +1 -4
  45. package/dist/analyzer/symbol.js.map +1 -1
  46. package/dist/analyzer/symbolUtils.d.ts +0 -3
  47. package/dist/analyzer/symbolUtils.js +1 -14
  48. package/dist/analyzer/symbolUtils.js.map +1 -1
  49. package/dist/analyzer/typeDocStringUtils.js +5 -3
  50. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  51. package/dist/analyzer/typeEvaluator.js +586 -294
  52. package/dist/analyzer/typeEvaluator.js.map +1 -1
  53. package/dist/analyzer/typeEvaluatorTypes.d.ts +10 -2
  54. package/dist/analyzer/typeGuards.js +2 -2
  55. package/dist/analyzer/typeGuards.js.map +1 -1
  56. package/dist/analyzer/typeUtils.d.ts +1 -0
  57. package/dist/analyzer/typeUtils.js +14 -1
  58. package/dist/analyzer/typeUtils.js.map +1 -1
  59. package/dist/analyzer/typedDicts.js +26 -17
  60. package/dist/analyzer/typedDicts.js.map +1 -1
  61. package/dist/analyzer/types.d.ts +2 -1
  62. package/dist/analyzer/types.js.map +1 -1
  63. package/dist/backgroundAnalysisBase.d.ts +2 -3
  64. package/dist/backgroundAnalysisBase.js +12 -13
  65. package/dist/backgroundAnalysisBase.js.map +1 -1
  66. package/dist/commands/commandController.js +1 -0
  67. package/dist/commands/commandController.js.map +1 -1
  68. package/dist/commands/quickActionCommand.js +2 -2
  69. package/dist/commands/quickActionCommand.js.map +1 -1
  70. package/dist/common/cancellationUtils.d.ts +18 -2
  71. package/dist/common/cancellationUtils.js +80 -3
  72. package/dist/common/cancellationUtils.js.map +1 -1
  73. package/dist/common/collectionUtils.d.ts +1 -0
  74. package/dist/common/collectionUtils.js +8 -1
  75. package/dist/common/collectionUtils.js.map +1 -1
  76. package/dist/common/extensibility.d.ts +4 -3
  77. package/dist/common/extensibility.js.map +1 -1
  78. package/dist/common/fileBasedCancellationUtils.d.ts +0 -1
  79. package/dist/common/fileBasedCancellationUtils.js +7 -81
  80. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  81. package/dist/common/positionUtils.d.ts +2 -0
  82. package/dist/common/positionUtils.js +15 -1
  83. package/dist/common/positionUtils.js.map +1 -1
  84. package/dist/common/{textEditUtils.d.ts → textEditTracker.d.ts} +2 -6
  85. package/dist/common/{textEditUtils.js → textEditTracker.js} +6 -49
  86. package/dist/common/textEditTracker.js.map +1 -0
  87. package/dist/common/workspaceEditUtils.d.ts +14 -8
  88. package/dist/common/workspaceEditUtils.js +115 -59
  89. package/dist/common/workspaceEditUtils.js.map +1 -1
  90. package/dist/languageServerBase.js +9 -3
  91. package/dist/languageServerBase.js.map +1 -1
  92. package/dist/languageService/callHierarchyProvider.js +4 -2
  93. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  94. package/dist/languageService/codeActionProvider.js +1 -1
  95. package/dist/languageService/codeActionProvider.js.map +1 -1
  96. package/dist/languageService/completionProvider.js +49 -43
  97. package/dist/languageService/completionProvider.js.map +1 -1
  98. package/dist/languageService/completionProviderUtils.d.ts +1 -1
  99. package/dist/languageService/completionProviderUtils.js +3 -3
  100. package/dist/languageService/completionProviderUtils.js.map +1 -1
  101. package/dist/languageService/definitionProvider.js +2 -1
  102. package/dist/languageService/definitionProvider.js.map +1 -1
  103. package/dist/languageService/documentSymbolProvider.js +2 -1
  104. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  105. package/dist/languageService/hoverProvider.js +14 -3
  106. package/dist/languageService/hoverProvider.js.map +1 -1
  107. package/dist/languageService/importAdder.d.ts +2 -2
  108. package/dist/languageService/importAdder.js +5 -3
  109. package/dist/languageService/importAdder.js.map +1 -1
  110. package/dist/languageService/indentationUtils.d.ts +6 -2
  111. package/dist/languageService/indentationUtils.js +33 -13
  112. package/dist/languageService/indentationUtils.js.map +1 -1
  113. package/dist/languageService/renameModuleProvider.d.ts +10 -2
  114. package/dist/languageService/renameModuleProvider.js +87 -14
  115. package/dist/languageService/renameModuleProvider.js.map +1 -1
  116. package/dist/localization/localize.d.ts +12 -2
  117. package/dist/localization/localize.js +5 -1
  118. package/dist/localization/localize.js.map +1 -1
  119. package/dist/localization/package.nls.en-us.json +6 -2
  120. package/dist/parser/parser.js +18 -18
  121. package/dist/parser/parser.js.map +1 -1
  122. package/dist/pyright.js +1 -1
  123. package/dist/pyright.js.map +1 -1
  124. package/dist/tests/docStringConversion.test.js +23 -0
  125. package/dist/tests/docStringConversion.test.js.map +1 -1
  126. package/dist/tests/fourslash/completions.errorNodes.fourslash.d.ts +1 -0
  127. package/dist/tests/fourslash/completions.errorNodes.fourslash.js +24 -0
  128. package/dist/tests/fourslash/completions.errorNodes.fourslash.js.map +1 -0
  129. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.d.ts +1 -0
  130. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js +57 -0
  131. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js.map +1 -0
  132. package/dist/tests/fourslash/hover.slots.fourslash.d.ts +1 -0
  133. package/dist/tests/fourslash/hover.slots.fourslash.js +16 -0
  134. package/dist/tests/fourslash/hover.slots.fourslash.js.map +1 -0
  135. package/dist/tests/harness/fourslash/testState.js +9 -2
  136. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  137. package/dist/tests/importAdder.test.js +16 -3
  138. package/dist/tests/importAdder.test.js.map +1 -1
  139. package/dist/tests/indentationUtils.reindent.test.js +22 -1
  140. package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
  141. package/dist/tests/moveSymbol.importAdder.test.js +183 -24
  142. package/dist/tests/moveSymbol.importAdder.test.js.map +1 -1
  143. package/dist/tests/moveSymbol.insertion.test.js +137 -2
  144. package/dist/tests/moveSymbol.insertion.test.js.map +1 -1
  145. package/dist/tests/moveSymbol.misc.test.js +109 -4
  146. package/dist/tests/moveSymbol.misc.test.js.map +1 -1
  147. package/dist/tests/renameModuleTestUtils.d.ts +1 -1
  148. package/dist/tests/renameModuleTestUtils.js +9 -5
  149. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  150. package/dist/tests/testStateUtils.js +2 -2
  151. package/dist/tests/testStateUtils.js.map +1 -1
  152. package/dist/tests/textEditUtil.test.js +2 -2
  153. package/dist/tests/textEditUtil.test.js.map +1 -1
  154. package/dist/tests/typeEvaluator1.test.js +8 -0
  155. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  156. package/dist/tests/typeEvaluator2.test.js +13 -1
  157. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  158. package/dist/tests/typeEvaluator3.test.js +29 -4
  159. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  160. package/dist/tests/typeEvaluator4.test.js +1 -1
  161. package/dist/tests/typeEvaluator5.test.js +6 -0
  162. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  163. package/dist/tests/workspaceEditUtils.test.js +7 -7
  164. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  165. package/package.json +3 -3
  166. package/dist/common/textEditUtils.js.map +0 -1
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  const assert_1 = __importDefault(require("assert"));
14
14
  const vscode_languageserver_1 = require("vscode-languageserver");
15
- const textEditUtils_1 = require("../common/textEditUtils");
15
+ const textEditTracker_1 = require("../common/textEditTracker");
16
16
  const textRange_1 = require("../common/textRange");
17
17
  const importAdder_1 = require("../languageService/importAdder");
18
18
  const testState_1 = require("./harness/fourslash/testState");
@@ -1201,13 +1201,26 @@ test('use relative import format - textEditTracker', () => {
1201
1201
  `;
1202
1202
  testImportMoveWithTracker(code, "relative" /* Relative */);
1203
1203
  });
1204
+ test('dont include token not contained in the span', () => {
1205
+ const code = `
1206
+ // @filename: test1.py
1207
+ //// import random
1208
+ ////
1209
+ //// [|/*src*/answer_word = random.choice(["a","b","c","d"])
1210
+ //// |]guess_word = "c"
1211
+
1212
+ // @filename: nested/__init__.py
1213
+ //// [|{|"r":"import random!n!!n!!n!"|}|][|/*dest*/|]
1214
+ `;
1215
+ testImportMove(code, "absolute" /* Absolute */);
1216
+ });
1204
1217
  function testImportMoveWithTracker(code, importFormat = "absolute" /* Absolute */) {
1205
1218
  const state = (0, testState_1.parseAndGetTestState)(code).state;
1206
1219
  const src = state.getRangeByMarkerName('src');
1207
1220
  const dest = state.getMarkerByName('dest');
1208
1221
  const importMover = new importAdder_1.ImportAdder(state.configOptions, state.importResolver, state.program.evaluator);
1209
1222
  const importData = importMover.collectImportsForSymbolsUsed(state.program.getBoundSourceFile(src.fileName).getParseResults(), textRange_1.TextRange.fromBounds(src.pos, src.end), vscode_languageserver_1.CancellationToken.None);
1210
- const tracker = new textEditUtils_1.TextEditTracker();
1223
+ const tracker = new textEditTracker_1.TextEditTracker();
1211
1224
  importMover.applyImportsTo(importData, state.program.getBoundSourceFile(dest.fileName).getParseResults(), importFormat, tracker, vscode_languageserver_1.CancellationToken.None);
1212
1225
  verifyEdits(tracker.getEdits(vscode_languageserver_1.CancellationToken.None), state);
1213
1226
  }
@@ -1217,7 +1230,7 @@ function testImportMove(code, importFormat = "absolute" /* Absolute */) {
1217
1230
  const dest = state.getMarkerByName('dest');
1218
1231
  const importMover = new importAdder_1.ImportAdder(state.configOptions, state.importResolver, state.program.evaluator);
1219
1232
  const importData = importMover.collectImportsForSymbolsUsed(state.program.getBoundSourceFile(src.fileName).getParseResults(), textRange_1.TextRange.fromBounds(src.pos, src.end), vscode_languageserver_1.CancellationToken.None);
1220
- const edits = importMover.applyImports(importData, state.program.getBoundSourceFile(dest.fileName).getParseResults(), dest.position, importFormat, vscode_languageserver_1.CancellationToken.None);
1233
+ const edits = importMover.applyImports(importData, dest.fileName, state.program.getBoundSourceFile(dest.fileName).getParseResults(), dest.position, importFormat, vscode_languageserver_1.CancellationToken.None);
1221
1234
  verifyEdits(edits, state);
1222
1235
  }
1223
1236
  function verifyEdits(edits, state) {
@@ -1 +1 @@
1
- {"version":3,"file":"importAdder.test.js","sourceRoot":"","sources":["../../../src/tests/importAdder.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"importAdder.test.js","sourceRoot":"","sources":["../../../src/tests/importAdder.test.ts"],"names":[],"mappings":"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"}
@@ -322,11 +322,32 @@ test('re-indentation tab on multiline text', () => {
322
322
  \t pass`;
323
323
  testIndentation(code, 2, expected);
324
324
  });
325
+ test('dont include token not contained in the span', () => {
326
+ const code = `
327
+ //// import random
328
+ ////
329
+ //// [|/*marker*/answer_word = random.choice(["a","b","c","d"])
330
+ //// |]guess_word = "c"
331
+ `;
332
+ const expected = `answer_word = random.choice(["a","b","c","d"])`;
333
+ testIndentation(code, 0, expected);
334
+ });
335
+ test('handle comment before first token', () => {
336
+ const code = `
337
+ //// [|/*marker*/# this function doesn't do much
338
+ //// def myfunc(a, b):
339
+ //// return a + b|]
340
+ `;
341
+ const expected = `# this function doesn't do much
342
+ def myfunc(a, b):
343
+ return a + b`;
344
+ testIndentation(code, 0, expected);
345
+ });
325
346
  function testIndentation(code, indentation, expected, indentFirstToken = true) {
326
347
  const state = (0, testState_1.parseAndGetTestState)(code).state;
327
348
  const range = state.getRangeByMarkerName('marker');
328
349
  const parseResults = state.program.getBoundSourceFile(range.fileName).getParseResults();
329
- const actual = (0, indentationUtils_1.reindentSpan)(parseResults, textRange_1.TextRange.fromBounds(range.pos, range.end), indentation, indentFirstToken);
350
+ const actual = (0, indentationUtils_1.reindentSpan)(parseResults, textRange_1.TextRange.fromBounds(range.pos, range.end), indentation, indentFirstToken).text;
330
351
  assert_1.default.strictEqual(actual, expected);
331
352
  }
332
353
  //# sourceMappingURL=indentationUtils.reindent.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"indentationUtils.reindent.test.js","sourceRoot":"","sources":["../../../src/tests/indentationUtils.reindent.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indentationUtils.reindent.test.js","sourceRoot":"","sources":["../../../src/tests/indentationUtils.reindent.test.ts"],"names":[],"mappings":"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"}
@@ -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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
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 typing import List, Mapping!n!!n!!n!"|}|][|{|"r":"from test import MyType!n!!n!!n!"|}|][|{|"r":"def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: l[int]) -> None:
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!"|}|][|{|"r":"from test import MyType!n!!n!!n!"|}|][|{|"r":"def foo(a: str, b: l[int]) -> None:!n! c: m[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
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
- //// from typing import Mapping[|{|"r":"!n!from typing import List"|}|]
77
- //// from test import MyType[|{|"r":"!n!from test import MyType2"|}|]
78
- //// m = MyType()[|{|"r":"!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType2() }", "name": "dest"|}|]
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
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,39 +101,198 @@ 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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
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
- //// [|{|"r":""|}from test import foo[|{|"r":"!n!from test import MyType"|}|][|{|"r":"!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
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
+ `;
118
+ testFromCode(code);
119
+ });
120
+ test('symbol from destination file used', () => {
121
+ const code = `
122
+ // @filename: test.py
123
+ //// [|{|"r":"!n!"|}from moved import MyType
124
+ ////
125
+ //// def [|/*marker*/foo|](a: MyType) -> None:
126
+ //// c: Mapping[str, MyType] = { 'hello', a }|]
127
+
128
+ // @filename: moved.py
129
+ //// class MyType:
130
+ //// pass[|{|"r":"!n!!n!!n!def foo(a: MyType) -> None:!n! c: Mapping[str, MyType] = { 'hello', a }", "name": "dest"|}|]
131
+ ////
132
+ `;
133
+ testFromCode(code);
134
+ });
135
+ test('insert after all symbols references', () => {
136
+ const code = `
137
+ // @filename: test.py
138
+ //// [|{|"r":"!n!"|}from moved import MyType
139
+ ////
140
+ //// def [|/*marker*/foo|](a: MyType) -> None:
141
+ //// c: Mapping[str, MyType] = { 'hello', a }|]
142
+
143
+ // @filename: moved.py
144
+ //// [|{|"r":""|}from test import foo
115
145
  //// |]
146
+ //// class MyType:
147
+ //// pass[|{|"r":"!n!!n!!n!def foo(a: MyType) -> None:!n! c: Mapping[str, MyType] = { 'hello', a }", "name": "dest"|}|]
148
+ ////
116
149
  //// foo()
117
150
  `;
118
151
  testFromCode(code);
119
152
  });
120
- test('symbol from destination file used', () => {
153
+ test('insert after all symbols references 2', () => {
121
154
  const code = `
122
155
  // @filename: test.py
123
- //// from moved import MyType
156
+ //// [|{|"r":"!n!"|}from moved import MyType
124
157
  ////
125
- //// [|{|"r":""|}def [|/*marker*/foo|](a: MyType) -> None:
158
+ //// def [|/*marker*/foo|](a: MyType) -> None:
126
159
  //// c: Mapping[str, MyType] = { 'hello', a }|]
127
160
 
128
161
  // @filename: moved.py
162
+ //// def __privateFoo():
163
+ //// pass
164
+ ////
129
165
  //// class MyType:
130
166
  //// pass[|{|"r":"!n!!n!!n!def foo(a: MyType) -> None:!n! c: Mapping[str, MyType] = { 'hello', a }", "name": "dest"|}|]
167
+ `;
168
+ testFromCode(code);
169
+ });
170
+ test('symbol used before all symbol references', () => {
171
+ const code = `
172
+ // @filename: test.py
173
+ //// [|{|"r":"!n!"|}from moved import MyType
174
+ ////
175
+ //// def [|/*marker*/foo|](a: MyType) -> None:
176
+ //// c: Mapping[str, MyType] = { 'hello', a }|]
177
+
178
+ // @filename: moved.py
179
+ //// [|{|"r":""|}from test import foo[|{|"r":"!n!!n!!n!def foo(a: MyType) -> None:!n! c: Mapping[str, MyType] = { 'hello', a }", "name": "dest"|}|]
180
+ //// |]
181
+ //// foo()
182
+ ////
183
+ //// class MyType:
184
+ //// pass
185
+ `;
186
+ testFromCode(code);
187
+ });
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
131
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"|}|]
132
256
  `;
133
257
  testFromCode(code);
134
258
  });
135
- function testFromCode(code) {
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) {
136
295
  const state = (0, testState_1.parseAndGetTestState)(code).state;
137
- (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);
138
297
  }
139
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;AACH,SAAS,YAAY,CAAC,IAAY;IAC9B,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,CACzC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"moveSymbol.importAdder.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.importAdder.test.ts"],"names":[],"mappings":"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"}
@@ -274,8 +274,8 @@ test('insert to a file with same symbol imported with alias', () => {
274
274
  //// pass|]
275
275
 
276
276
  // @filename: moved.py
277
- //// from [|{|"r":"moved"|}test|] import foo as aliasFoo
278
- ////
277
+ //// [|{|"r":""|}from test import foo as aliasFoo
278
+ //// |]
279
279
  //// aliasFoo()[|{|"r":"!n!!n!def foo():!n! pass", "name": "dest"|}|]
280
280
  `;
281
281
  testFromCode(code);
@@ -353,6 +353,141 @@ test('original file has import for the symbol with alias', () => {
353
353
  `;
354
354
  testFromCode(code);
355
355
  });
356
+ test('move after class', () => {
357
+ const code = `
358
+ // @filename: test.py
359
+ //// [|{|"r":""|}def [|/*marker*/foo|]():
360
+ //// pass
361
+ //// |]
362
+
363
+ // @filename: moved.py
364
+ //// class A:
365
+ //// def foo(self):
366
+ //// pass[|{|"r":"!n!!n!!n!def foo():!n! pass", "name": "dest"|}|]
367
+ `;
368
+ testFromCode(code);
369
+ });
370
+ test('move variable', () => {
371
+ const code = `
372
+ // @filename: test.py
373
+ //// [|{|"r":""|}[|/*marker*/A|] = 1|]
374
+
375
+ // @filename: moved.py
376
+ //// [|{|"r":"A = 1", "name": "dest"|}|]
377
+ `;
378
+ testFromCode(code);
379
+ });
380
+ test('move variable with doc string', () => {
381
+ const code = `
382
+ // @filename: test.py
383
+ //// [|{|"r":""|}[|/*marker*/A|] = 1
384
+ //// '''
385
+ //// doc string
386
+ //// '''|]
387
+
388
+ // @filename: moved.py
389
+ //// [|{|"r":"A = 1!n!'''!n! doc string!n!'''", "name": "dest"|}|]
390
+ `;
391
+ testFromCode(code);
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
+ });
356
491
  function testFromCode(code) {
357
492
  const state = (0, testState_1.parseAndGetTestState)(code).state;
358
493
  (0, renameModuleTestUtils_1.testMoveSymbolAtPosition)(state, state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start);