@zzzen/pyright-internal 1.2.0-dev.20230212 → 1.2.0-dev.20230226

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 (170) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -0
  2. package/dist/analyzer/backgroundAnalysisProgram.js +5 -0
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.js +9 -1
  5. package/dist/analyzer/binder.js.map +1 -1
  6. package/dist/analyzer/checker.js +12 -6
  7. package/dist/analyzer/checker.js.map +1 -1
  8. package/dist/analyzer/codeFlowEngine.js +1 -1
  9. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  10. package/dist/analyzer/commentUtils.d.ts +6 -1
  11. package/dist/analyzer/commentUtils.js +100 -25
  12. package/dist/analyzer/commentUtils.js.map +1 -1
  13. package/dist/analyzer/constraintSolver.js +0 -10
  14. package/dist/analyzer/constraintSolver.js.map +1 -1
  15. package/dist/analyzer/declaration.d.ts +2 -0
  16. package/dist/analyzer/declaration.js.map +1 -1
  17. package/dist/analyzer/importResolver.d.ts +3 -2
  18. package/dist/analyzer/importResolver.js +28 -19
  19. package/dist/analyzer/importResolver.js.map +1 -1
  20. package/dist/analyzer/importStatementUtils.d.ts +1 -0
  21. package/dist/analyzer/importStatementUtils.js +14 -1
  22. package/dist/analyzer/importStatementUtils.js.map +1 -1
  23. package/dist/analyzer/parseTreeUtils.d.ts +5 -2
  24. package/dist/analyzer/parseTreeUtils.js +21 -3
  25. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  26. package/dist/analyzer/patternMatching.d.ts +1 -0
  27. package/dist/analyzer/patternMatching.js +54 -6
  28. package/dist/analyzer/patternMatching.js.map +1 -1
  29. package/dist/analyzer/program.d.ts +11 -4
  30. package/dist/analyzer/program.js +122 -25
  31. package/dist/analyzer/program.js.map +1 -1
  32. package/dist/analyzer/properties.js +5 -1
  33. package/dist/analyzer/properties.js.map +1 -1
  34. package/dist/analyzer/protocols.js +4 -3
  35. package/dist/analyzer/protocols.js.map +1 -1
  36. package/dist/analyzer/service.d.ts +7 -6
  37. package/dist/analyzer/service.js +31 -39
  38. package/dist/analyzer/service.js.map +1 -1
  39. package/dist/analyzer/sourceFile.d.ts +4 -0
  40. package/dist/analyzer/sourceFile.js +85 -16
  41. package/dist/analyzer/sourceFile.js.map +1 -1
  42. package/dist/analyzer/typeEvaluator.js +127 -76
  43. package/dist/analyzer/typeEvaluator.js.map +1 -1
  44. package/dist/backgroundAnalysisBase.d.ts +2 -2
  45. package/dist/backgroundAnalysisBase.js +21 -8
  46. package/dist/backgroundAnalysisBase.js.map +1 -1
  47. package/dist/backgroundThreadBase.js +1 -0
  48. package/dist/backgroundThreadBase.js.map +1 -1
  49. package/dist/commands/commandController.js +1 -0
  50. package/dist/commands/commandController.js.map +1 -1
  51. package/dist/commands/quickActionCommand.js +2 -2
  52. package/dist/commands/quickActionCommand.js.map +1 -1
  53. package/dist/common/cancellationUtils.d.ts +18 -2
  54. package/dist/common/cancellationUtils.js +80 -3
  55. package/dist/common/cancellationUtils.js.map +1 -1
  56. package/dist/common/commandLineOptions.d.ts +2 -0
  57. package/dist/common/commandLineOptions.js.map +1 -1
  58. package/dist/common/configOptions.d.ts +3 -0
  59. package/dist/common/configOptions.js +10 -1
  60. package/dist/common/configOptions.js.map +1 -1
  61. package/dist/common/core.d.ts +2 -0
  62. package/dist/common/core.js +9 -1
  63. package/dist/common/core.js.map +1 -1
  64. package/dist/common/diagnostic.d.ts +15 -3
  65. package/dist/common/diagnostic.js +13 -4
  66. package/dist/common/diagnostic.js.map +1 -1
  67. package/dist/common/editAction.d.ts +1 -0
  68. package/dist/common/editAction.js +8 -0
  69. package/dist/common/editAction.js.map +1 -1
  70. package/dist/common/extensibility.d.ts +36 -12
  71. package/dist/common/extensibility.js +63 -18
  72. package/dist/common/extensibility.js.map +1 -1
  73. package/dist/common/fileBasedCancellationUtils.d.ts +0 -1
  74. package/dist/common/fileBasedCancellationUtils.js +7 -81
  75. package/dist/common/fileBasedCancellationUtils.js.map +1 -1
  76. package/dist/common/pathUtils.d.ts +3 -0
  77. package/dist/common/pathUtils.js +18 -0
  78. package/dist/common/pathUtils.js.map +1 -1
  79. package/dist/common/textEditTracker.d.ts +37 -0
  80. package/dist/common/textEditTracker.js +301 -0
  81. package/dist/common/textEditTracker.js.map +1 -0
  82. package/dist/common/workspaceEditUtils.d.ts +14 -8
  83. package/dist/common/workspaceEditUtils.js +115 -59
  84. package/dist/common/workspaceEditUtils.js.map +1 -1
  85. package/dist/languageServerBase.d.ts +3 -0
  86. package/dist/languageServerBase.js +93 -4
  87. package/dist/languageServerBase.js.map +1 -1
  88. package/dist/languageService/analyzerServiceExecutor.js +1 -0
  89. package/dist/languageService/analyzerServiceExecutor.js.map +1 -1
  90. package/dist/languageService/codeActionProvider.js +1 -1
  91. package/dist/languageService/codeActionProvider.js.map +1 -1
  92. package/dist/languageService/completionProvider.js +3 -3
  93. package/dist/languageService/completionProvider.js.map +1 -1
  94. package/dist/languageService/definitionProvider.js +1 -1
  95. package/dist/languageService/definitionProvider.js.map +1 -1
  96. package/dist/languageService/documentSymbolCollector.js +1 -1
  97. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  98. package/dist/languageService/hoverProvider.js +13 -6
  99. package/dist/languageService/hoverProvider.js.map +1 -1
  100. package/dist/languageService/importAdder.d.ts +5 -1
  101. package/dist/languageService/importAdder.js +50 -14
  102. package/dist/languageService/importAdder.js.map +1 -1
  103. package/dist/languageService/indentationUtils.d.ts +5 -1
  104. package/dist/languageService/indentationUtils.js +12 -2
  105. package/dist/languageService/indentationUtils.js.map +1 -1
  106. package/dist/languageService/insertionPointUtils.js +28 -7
  107. package/dist/languageService/insertionPointUtils.js.map +1 -1
  108. package/dist/languageService/renameModuleProvider.d.ts +20 -10
  109. package/dist/languageService/renameModuleProvider.js +300 -229
  110. package/dist/languageService/renameModuleProvider.js.map +1 -1
  111. package/dist/localization/localize.d.ts +12 -0
  112. package/dist/localization/localize.js +6 -0
  113. package/dist/localization/localize.js.map +1 -1
  114. package/dist/localization/package.nls.en-us.json +8 -1
  115. package/dist/tests/checker.test.js +5 -0
  116. package/dist/tests/checker.test.js.map +1 -1
  117. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.d.ts +1 -0
  118. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js +57 -0
  119. package/dist/tests/fourslash/hover.docstring.parameter.fourslash.js.map +1 -0
  120. package/dist/tests/fourslash/hover.inferred.fourslash.d.ts +1 -0
  121. package/dist/tests/fourslash/hover.inferred.fourslash.js +24 -0
  122. package/dist/tests/fourslash/hover.inferred.fourslash.js.map +1 -0
  123. package/dist/tests/harness/fourslash/testState.js +9 -2
  124. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  125. package/dist/tests/importAdder.test.js +40 -3
  126. package/dist/tests/importAdder.test.js.map +1 -1
  127. package/dist/tests/indentationUtils.reindent.test.js +1 -1
  128. package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
  129. package/dist/tests/insertionPointUtils.test.js +70 -3
  130. package/dist/tests/insertionPointUtils.test.js.map +1 -1
  131. package/dist/tests/moveSymbol.importAdder.test.js +192 -0
  132. package/dist/tests/moveSymbol.importAdder.test.js.map +1 -0
  133. package/dist/tests/moveSymbol.insertion.test.d.ts +1 -0
  134. package/dist/tests/moveSymbol.insertion.test.js +397 -0
  135. package/dist/tests/moveSymbol.insertion.test.js.map +1 -0
  136. package/dist/tests/moveSymbol.misc.test.d.ts +1 -0
  137. package/dist/tests/moveSymbol.misc.test.js +142 -0
  138. package/dist/tests/moveSymbol.misc.test.js.map +1 -0
  139. package/dist/tests/moveSymbol.updateReference.test.d.ts +1 -0
  140. package/dist/tests/{updateSymbolReference.test.js → moveSymbol.updateReference.test.js} +235 -158
  141. package/dist/tests/moveSymbol.updateReference.test.js.map +1 -0
  142. package/dist/tests/parseTreeUtils.test.js +36 -13
  143. package/dist/tests/parseTreeUtils.test.js.map +1 -1
  144. package/dist/tests/renameModuleTestUtils.js +9 -3
  145. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  146. package/dist/tests/testStateUtils.d.ts +2 -0
  147. package/dist/tests/testStateUtils.js +25 -22
  148. package/dist/tests/testStateUtils.js.map +1 -1
  149. package/dist/tests/textEditUtil.test.d.ts +1 -0
  150. package/dist/tests/textEditUtil.test.js +107 -0
  151. package/dist/tests/textEditUtil.test.js.map +1 -0
  152. package/dist/tests/typeEvaluator1.test.js +4 -0
  153. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  154. package/dist/tests/typeEvaluator2.test.js +12 -0
  155. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  156. package/dist/tests/typeEvaluator3.test.js +9 -0
  157. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  158. package/dist/tests/typeEvaluator4.test.js +5 -1
  159. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  160. package/dist/tests/workspaceEditUtils.test.js +7 -7
  161. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  162. package/dist/workspaceMap.d.ts +0 -1
  163. package/dist/workspaceMap.js +0 -11
  164. package/dist/workspaceMap.js.map +1 -1
  165. package/package.json +3 -3
  166. package/dist/common/textEditUtils.d.ts +0 -24
  167. package/dist/common/textEditUtils.js +0 -167
  168. package/dist/common/textEditUtils.js.map +0 -1
  169. package/dist/tests/updateSymbolReference.test.js.map +0 -1
  170. /package/dist/tests/{updateSymbolReference.test.d.ts → moveSymbol.importAdder.test.d.ts} +0 -0
@@ -14,6 +14,28 @@ const assert_1 = __importDefault(require("assert"));
14
14
  const pathUtils_1 = require("../common/pathUtils");
15
15
  const insertionPointUtils_1 = require("../languageService/insertionPointUtils");
16
16
  const testState_1 = require("./harness/fourslash/testState");
17
+ test('empty file', () => {
18
+ const code = `
19
+ //// [|/*marker*/|]
20
+ `;
21
+ testInsertionPoint(code, 'bar');
22
+ });
23
+ test('empty file with blank lines', () => {
24
+ const code = `
25
+ //// [|/*marker*/|]
26
+ ////
27
+ ////
28
+ `;
29
+ testInsertionPoint(code, 'bar');
30
+ });
31
+ test('empty file with comments', () => {
32
+ const code = `
33
+ //// # comment
34
+ //// [|/*marker*/|]
35
+ ////
36
+ `;
37
+ testInsertionPoint(code, 'bar');
38
+ });
17
39
  test('insert symbol to module', () => {
18
40
  const code = `
19
41
  //// def foo(): pass[|/*marker*/|]
@@ -57,18 +79,63 @@ test('insert symbol with imported symbol with same name', () => {
57
79
  symbolDeclToIgnore: (0, pathUtils_1.normalizeSlashes)('\\typeshed-fallback\\stdlib\\os\\__init__.pyi'),
58
80
  });
59
81
  });
60
- function testInsertionPoint(code, symbolName, options) {
82
+ test('insert symbol with before marker at the top', () => {
83
+ const code = `
84
+ //// [|/*marker*/|]
85
+ //// [|/*before*/|]
86
+ `;
87
+ testInsertionPoint(code, 'path', {
88
+ insertBeforeMarker: 'before',
89
+ });
90
+ });
91
+ test('insert symbol with before marker at the top before symbols', () => {
92
+ const code = `
93
+ //// [|/*marker*/|]def [|/*before*/|]foo():
94
+ //// pass
95
+ `;
96
+ testInsertionPoint(code, 'path', {
97
+ insertBeforeMarker: 'before',
98
+ });
99
+ });
100
+ test('insert symbol with before marker at the top before symbols 2', () => {
101
+ const code = `
102
+ //// [|/*marker*/|]def foo(a: [|/*before*/|]MyType):
103
+ //// pass
104
+ `;
105
+ testInsertionPoint(code, 'path', {
106
+ insertBeforeMarker: 'before',
107
+ });
108
+ });
109
+ test('insert symbol before insert marker with other statements', () => {
110
+ const code = `
111
+ //// import os[|/*marker*/|]
112
+ ////
113
+ //// def [|/*before*/|]foo():
114
+ //// pass
115
+ `;
116
+ testInsertionPoint(code, 'path', {
117
+ insertBeforeMarker: 'before',
118
+ });
119
+ });
120
+ function testInsertionPoint(code, symbolName, testOptions) {
61
121
  const state = (0, testState_1.parseAndGetTestState)(code).state;
62
122
  const marker = state.getMarkerByName('marker');
123
+ const insertBefore = (testOptions === null || testOptions === void 0 ? void 0 : testOptions.insertBeforeMarker)
124
+ ? state.getMarkerByName(testOptions.insertBeforeMarker).position
125
+ : undefined;
126
+ const options = {
127
+ symbolDeclToIgnore: testOptions === null || testOptions === void 0 ? void 0 : testOptions.symbolDeclToIgnore,
128
+ insertBefore,
129
+ };
63
130
  const parseResults = state.program.getBoundSourceFile(marker.fileName).getParseResults();
64
131
  const actual = (0, insertionPointUtils_1.getInsertionPointForSymbolUnderModule)(state.program.evaluator, parseResults, symbolName, options);
65
132
  assert_1.default.strictEqual(actual, marker.position);
66
133
  }
67
- function testNoInsertionPoint(code, symbolName, options) {
134
+ function testNoInsertionPoint(code, symbolName) {
68
135
  const state = (0, testState_1.parseAndGetTestState)(code).state;
69
136
  const marker = state.getMarkerByName('marker');
70
137
  const parseResults = state.program.getBoundSourceFile(marker.fileName).getParseResults();
71
- const actual = (0, insertionPointUtils_1.getInsertionPointForSymbolUnderModule)(state.program.evaluator, parseResults, symbolName, options);
138
+ const actual = (0, insertionPointUtils_1.getInsertionPointForSymbolUnderModule)(state.program.evaluator, parseResults, symbolName);
72
139
  (0, assert_1.default)(!actual);
73
140
  }
74
141
  //# sourceMappingURL=insertionPointUtils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"insertionPointUtils.test.js","sourceRoot":"","sources":["../../../src/tests/insertionPointUtils.test.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAEH,oDAA4B;AAE5B,mDAAuD;AACvD,gFAAiH;AACjH,6DAAqE;AAErE,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACjC,MAAM,IAAI,GAAG;;KAEZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;IACvD,MAAM,IAAI,GAAG;;;KAGZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,IAAI,GAAG;;;KAGZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,IAAI,GAAG;;;KAGZ,CAAC;IAEF,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yDAAyD,EAAE,GAAG,EAAE;IACjE,MAAM,IAAI,GAAG;;;KAGZ,CAAC;IAEF,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC3D,MAAM,IAAI,GAAG;;;KAGZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE;QAC7B,kBAAkB,EAAE,IAAA,4BAAgB,EAAC,+CAA+C,CAAC;KACxF,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,IAAY,EAAE,UAAkB,EAAE,OAA0B;IACpF,MAAM,KAAK,GAAG,IAAA,gCAAoB,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC,eAAe,EAAG,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAA,2DAAqC,EAAC,KAAK,CAAC,OAAO,CAAC,SAAU,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAClH,gBAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,UAAkB,EAAE,OAA0B;IACtF,MAAM,KAAK,GAAG,IAAA,gCAAoB,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC,eAAe,EAAG,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAA,2DAAqC,EAAC,KAAK,CAAC,OAAO,CAAC,SAAU,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAClH,IAAA,gBAAM,EAAC,CAAC,MAAM,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"insertionPointUtils.test.js","sourceRoot":"","sources":["../../../src/tests/insertionPointUtils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ /*
3
+ * moveSymbol.importAdder.test.ts
4
+ * Copyright (c) Microsoft Corporation.
5
+ * Licensed under the MIT license.
6
+ *
7
+ * importAdder tests around move symbol.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const testState_1 = require("./harness/fourslash/testState");
11
+ const renameModuleTestUtils_1 = require("./renameModuleTestUtils");
12
+ test('move imports used in the symbol', () => {
13
+ const code = `
14
+ // @filename: test.py
15
+ //// from typing import List, Mapping
16
+ ////
17
+ //// class MyType:
18
+ //// pass
19
+ ////
20
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
21
+ //// c: Mapping[str, MyType] = { 'hello', MyType() }|]
22
+
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"|}|]
25
+ `;
26
+ testFromCode(code);
27
+ });
28
+ test('import with alias', () => {
29
+ const code = `
30
+ // @filename: test.py
31
+ //// from typing import List as l, Mapping as m
32
+ ////
33
+ //// class MyType:
34
+ //// pass
35
+ ////
36
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: l[int]) -> None:
37
+ //// c: m[str, MyType] = { 'hello', MyType() }|]
38
+
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"|}|]
41
+ `;
42
+ testFromCode(code);
43
+ });
44
+ test('with existing imports', () => {
45
+ const code = `
46
+ // @filename: test.py
47
+ //// from typing import List, Mapping
48
+ ////
49
+ //// class MyType:
50
+ //// pass
51
+ ////
52
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
53
+ //// c: Mapping[str, MyType] = { 'hello', MyType() }|]
54
+
55
+ // @filename: moved.py
56
+ //// from typing import List, Mapping
57
+ //// 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"|}|]
58
+ `;
59
+ testFromCode(code);
60
+ });
61
+ test('merge with existing imports', () => {
62
+ const code = `
63
+ // @filename: test.py
64
+ //// from typing import List, Mapping
65
+ ////
66
+ //// class MyType:
67
+ //// pass
68
+ ////
69
+ //// class MyType2(MyType):
70
+ //// pass
71
+ ////
72
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
73
+ //// c: Mapping[str, MyType] = { 'hello', MyType2() }|]
74
+
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"|}|]
79
+ `;
80
+ testFromCode(code);
81
+ });
82
+ test('merge with existing moving symbol imports', () => {
83
+ const code = `
84
+ // @filename: test.py
85
+ //// from typing import List, Mapping
86
+ ////
87
+ //// class MyType:
88
+ //// pass
89
+ ////
90
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
91
+ //// c: Mapping[str, MyType] = { 'hello', MyType() }|]
92
+
93
+ // @filename: moved.py
94
+ //// from typing import List, Mapping
95
+ //// from test import [|{|"r":""|}foo, |]MyType[|{|"r":"!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
96
+ ////
97
+ //// foo()
98
+ `;
99
+ testFromCode(code);
100
+ });
101
+ test('merge with existing moving symbol imports and add new one', () => {
102
+ const code = `
103
+ // @filename: test.py
104
+ //// from typing import List, Mapping
105
+ ////
106
+ //// class MyType:
107
+ //// pass
108
+ ////
109
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: str, b: List[int]) -> None:
110
+ //// c: Mapping[str, MyType] = { 'hello', MyType() }|]
111
+
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"|}|]
115
+ //// |]
116
+ //// foo()
117
+ `;
118
+ testFromCode(code);
119
+ });
120
+ test('symbol from destination file used', () => {
121
+ const code = `
122
+ // @filename: test.py
123
+ //// from moved import MyType
124
+ ////
125
+ //// [|{|"r":""|}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
+ //// from moved import MyType
139
+ ////
140
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: MyType) -> None:
141
+ //// c: Mapping[str, MyType] = { 'hello', a }|]
142
+
143
+ // @filename: moved.py
144
+ //// [|{|"r":""|}from test import foo
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
+ ////
149
+ //// foo()
150
+ `;
151
+ testFromCode(code);
152
+ });
153
+ test('insert after all symbols references 2', () => {
154
+ const code = `
155
+ // @filename: test.py
156
+ //// from moved import MyType
157
+ ////
158
+ //// [|{|"r":""|}def [|/*marker*/foo|](a: MyType) -> None:
159
+ //// c: Mapping[str, MyType] = { 'hello', a }|]
160
+
161
+ // @filename: moved.py
162
+ //// def __privateFoo():
163
+ //// pass
164
+ ////
165
+ //// class MyType:
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
+ //// from moved import MyType
174
+ ////
175
+ //// [|{|"r":""|}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
+ function testFromCode(code) {
189
+ 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);
191
+ }
192
+ //# sourceMappingURL=moveSymbol.importAdder.test.js.map
@@ -0,0 +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;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"}
@@ -0,0 +1 @@
1
+ export {};