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

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 (148) hide show
  1. package/dist/analyzer/binder.d.ts +0 -1
  2. package/dist/analyzer/binder.js +32 -95
  3. package/dist/analyzer/binder.js.map +1 -1
  4. package/dist/analyzer/checker.js +48 -31
  5. package/dist/analyzer/checker.js.map +1 -1
  6. package/dist/analyzer/codeFlowEngine.js +4 -4
  7. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  8. package/dist/analyzer/commentUtils.js +11 -1
  9. package/dist/analyzer/commentUtils.js.map +1 -1
  10. package/dist/analyzer/constructorTransform.d.ts +1 -0
  11. package/dist/analyzer/constructorTransform.js +19 -2
  12. package/dist/analyzer/constructorTransform.js.map +1 -1
  13. package/dist/analyzer/declaration.d.ts +2 -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/packageTypeVerifier.js +40 -40
  22. package/dist/analyzer/packageTypeVerifier.js.map +1 -1
  23. package/dist/analyzer/parseTreeUtils.d.ts +4 -2
  24. package/dist/analyzer/parseTreeUtils.js +77 -2
  25. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  26. package/dist/analyzer/patternMatching.js +20 -1
  27. package/dist/analyzer/patternMatching.js.map +1 -1
  28. package/dist/analyzer/program.d.ts +1 -0
  29. package/dist/analyzer/program.js +154 -13
  30. package/dist/analyzer/program.js.map +1 -1
  31. package/dist/analyzer/properties.js +3 -2
  32. package/dist/analyzer/properties.js.map +1 -1
  33. package/dist/analyzer/protocols.js +4 -2
  34. package/dist/analyzer/protocols.js.map +1 -1
  35. package/dist/analyzer/pythonPathUtils.js +27 -13
  36. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  37. package/dist/analyzer/service.js +6 -1
  38. package/dist/analyzer/service.js.map +1 -1
  39. package/dist/analyzer/sourceFile.js +12 -1
  40. package/dist/analyzer/sourceFile.js.map +1 -1
  41. package/dist/analyzer/symbol.js +1 -4
  42. package/dist/analyzer/symbol.js.map +1 -1
  43. package/dist/analyzer/symbolUtils.d.ts +0 -3
  44. package/dist/analyzer/symbolUtils.js +1 -14
  45. package/dist/analyzer/symbolUtils.js.map +1 -1
  46. package/dist/analyzer/typeDocStringUtils.js +5 -3
  47. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  48. package/dist/analyzer/typeEvaluator.js +642 -259
  49. package/dist/analyzer/typeEvaluator.js.map +1 -1
  50. package/dist/analyzer/typeEvaluatorTypes.d.ts +11 -2
  51. package/dist/analyzer/typeGuards.js +2 -2
  52. package/dist/analyzer/typeGuards.js.map +1 -1
  53. package/dist/analyzer/typePrinter.js +63 -55
  54. package/dist/analyzer/typePrinter.js.map +1 -1
  55. package/dist/analyzer/typeUtils.d.ts +2 -0
  56. package/dist/analyzer/typeUtils.js +22 -3
  57. package/dist/analyzer/typeUtils.js.map +1 -1
  58. package/dist/analyzer/typedDicts.d.ts +2 -1
  59. package/dist/analyzer/typedDicts.js +83 -57
  60. package/dist/analyzer/typedDicts.js.map +1 -1
  61. package/dist/analyzer/types.d.ts +3 -1
  62. package/dist/analyzer/types.js +8 -0
  63. package/dist/analyzer/types.js.map +1 -1
  64. package/dist/commands/dumpFileDebugInfoCommand.js +78 -0
  65. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  66. package/dist/common/collectionUtils.d.ts +1 -0
  67. package/dist/common/collectionUtils.js +8 -1
  68. package/dist/common/collectionUtils.js.map +1 -1
  69. package/dist/common/extensibility.js +25 -1
  70. package/dist/common/extensibility.js.map +1 -1
  71. package/dist/common/positionUtils.d.ts +2 -0
  72. package/dist/common/positionUtils.js +15 -1
  73. package/dist/common/positionUtils.js.map +1 -1
  74. package/dist/languageServerBase.js +9 -1
  75. package/dist/languageServerBase.js.map +1 -1
  76. package/dist/languageService/callHierarchyProvider.js +4 -2
  77. package/dist/languageService/callHierarchyProvider.js.map +1 -1
  78. package/dist/languageService/completionProvider.d.ts +4 -2
  79. package/dist/languageService/completionProvider.js +252 -191
  80. package/dist/languageService/completionProvider.js.map +1 -1
  81. package/dist/languageService/completionProviderUtils.d.ts +1 -1
  82. package/dist/languageService/completionProviderUtils.js +3 -3
  83. package/dist/languageService/completionProviderUtils.js.map +1 -1
  84. package/dist/languageService/definitionProvider.js +2 -1
  85. package/dist/languageService/definitionProvider.js.map +1 -1
  86. package/dist/languageService/documentSymbolProvider.js +2 -1
  87. package/dist/languageService/documentSymbolProvider.js.map +1 -1
  88. package/dist/languageService/hoverProvider.js +11 -3
  89. package/dist/languageService/hoverProvider.js.map +1 -1
  90. package/dist/languageService/importAdder.js +4 -1
  91. package/dist/languageService/importAdder.js.map +1 -1
  92. package/dist/languageService/indentationUtils.d.ts +1 -1
  93. package/dist/languageService/indentationUtils.js +22 -12
  94. package/dist/languageService/indentationUtils.js.map +1 -1
  95. package/dist/languageService/renameModuleProvider.d.ts +1 -1
  96. package/dist/languageService/renameModuleProvider.js +28 -8
  97. package/dist/languageService/renameModuleProvider.js.map +1 -1
  98. package/dist/languageService/tooltipUtils.js +2 -1
  99. package/dist/languageService/tooltipUtils.js.map +1 -1
  100. package/dist/localization/localize.d.ts +12 -2
  101. package/dist/localization/localize.js +5 -1
  102. package/dist/localization/localize.js.map +1 -1
  103. package/dist/localization/package.nls.en-us.json +6 -2
  104. package/dist/parser/parser.js +40 -25
  105. package/dist/parser/parser.js.map +1 -1
  106. package/dist/parser/tokenizer.js +1 -1
  107. package/dist/pyright.js +1 -1
  108. package/dist/pyright.js.map +1 -1
  109. package/dist/tests/completions.test.js +445 -0
  110. package/dist/tests/completions.test.js.map +1 -1
  111. package/dist/tests/docStringConversion.test.js +23 -0
  112. package/dist/tests/docStringConversion.test.js.map +1 -1
  113. package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js +13 -3
  114. package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js.map +1 -1
  115. package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js +7 -2
  116. package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js.map +1 -1
  117. package/dist/tests/fourslash/completions.errorNodes.fourslash.d.ts +1 -0
  118. package/dist/tests/fourslash/completions.errorNodes.fourslash.js +24 -0
  119. package/dist/tests/fourslash/completions.errorNodes.fourslash.js.map +1 -0
  120. package/dist/tests/fourslash/hover.slots.fourslash.d.ts +1 -0
  121. package/dist/tests/fourslash/hover.slots.fourslash.js +16 -0
  122. package/dist/tests/fourslash/hover.slots.fourslash.js.map +1 -0
  123. package/dist/tests/hoverProvider.test.js +1 -1
  124. package/dist/tests/hoverProvider.test.js.map +1 -1
  125. package/dist/tests/importAdder.test.js +13 -0
  126. package/dist/tests/importAdder.test.js.map +1 -1
  127. package/dist/tests/indentationUtils.reindent.test.js +21 -0
  128. package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
  129. package/dist/tests/moveSymbol.importAdder.test.js +137 -31
  130. package/dist/tests/moveSymbol.importAdder.test.js.map +1 -1
  131. package/dist/tests/moveSymbol.insertion.test.js +98 -0
  132. package/dist/tests/moveSymbol.insertion.test.js.map +1 -1
  133. package/dist/tests/moveSymbol.misc.test.js +27 -0
  134. package/dist/tests/moveSymbol.misc.test.js.map +1 -1
  135. package/dist/tests/renameModuleTestUtils.d.ts +1 -1
  136. package/dist/tests/renameModuleTestUtils.js +9 -5
  137. package/dist/tests/renameModuleTestUtils.js.map +1 -1
  138. package/dist/tests/typeEvaluator1.test.js +8 -0
  139. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  140. package/dist/tests/typeEvaluator2.test.js +5 -1
  141. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  142. package/dist/tests/typeEvaluator3.test.js +20 -4
  143. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  144. package/dist/tests/typeEvaluator4.test.js +4 -0
  145. package/dist/tests/typeEvaluator4.test.js.map +1 -1
  146. package/dist/tests/typeEvaluator5.test.js +6 -0
  147. package/dist/tests/typeEvaluator5.test.js.map +1 -1
  148. 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
- //// [|{|"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,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
- //// [|{|"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"|}|]
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: MyType) -> None:
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: MyType) -> None:
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: MyType) -> None:
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
- //// [|{|"r":""|}def [|/*marker*/foo|](a: MyType) -> None:
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
- function testFromCode(code) {
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;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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"}
@@ -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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"}
@@ -134,6 +134,33 @@ test('augmented assignment 2', () => {
134
134
  `;
135
135
  testNoMoveFromCode(code);
136
136
  });
137
+ test('symbol must be from user files', () => {
138
+ const code = `
139
+ // @filename: pyrightconfig.json
140
+ //// {
141
+ //// "useLibraryCodeForTypes": true
142
+ //// }
143
+
144
+ // @filename: used.py
145
+ //// /*used*/
146
+ //// import lib
147
+ //// lib.a
148
+
149
+ // @filename: lib.py
150
+ // @library: true
151
+ //// a = 1
152
+ //// [|/*marker*/a|] += 1
153
+
154
+ // @filename: moved.py
155
+ // @library: true
156
+ //// [|/*dest*/|]
157
+ `;
158
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
159
+ while (state.workspace.serviceInstance.test_program.analyze())
160
+ ;
161
+ const actions = state.program.moveSymbolAtPosition(state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start, { importFormat: "absolute" /* Absolute */ }, vscode_languageserver_1.CancellationToken.None);
162
+ (0, assert_1.default)(!actions);
163
+ });
137
164
  function testNoMoveFromCode(code) {
138
165
  const state = (0, testState_1.parseAndGetTestState)(code).state;
139
166
  const actions = state.program.moveSymbolAtPosition(state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start, { importFormat: "absolute" /* Absolute */ }, vscode_languageserver_1.CancellationToken.None);
@@ -1 +1 @@
1
- {"version":3,"file":"moveSymbol.misc.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.misc.test.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAEH,oDAA4B;AAC5B,iEAA0D;AAG1D,6DAAqE;AAErE,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;IACvD,MAAM,IAAI,GAAG;;;;;;SAMR,CAAC;IAEN,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4CAA4C,EAAE,GAAG,EAAE;IACpD,MAAM,IAAI,GAAG;;;SAGR,CAAC;IAEN,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC5C,MAAM,IAAI,GAAG;;;;;;;KAOZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACvC,MAAM,IAAI,GAAG;;;;;;KAMZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG;;;;;;;KAOZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;IAClC,MAAM,IAAI,GAAG;;;;;;;KAOZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACvC,MAAM,IAAI,GAAG;;;;;;KAMZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,IAAI,GAAG;;;;;;KAMZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC1C,MAAM,IAAI,GAAG;;;;;;KAMZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAC5C,MAAM,IAAI,GAAG;;;;;;KAMZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAC9B,MAAM,IAAI,GAAG;;;;;;KAMZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IAChC,MAAM,IAAI,GAAG;;;;;;;KAOZ,CAAC;IAEF,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,SAAS,kBAAkB,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,IAAA,gCAAoB,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC;IAE/C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAC9C,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,EAAE,YAAY,2BAAuB,EAAE,EACvC,yCAAiB,CAAC,IAAI,CACzB,CAAC;IACF,IAAA,gBAAM,EAAC,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"moveSymbol.misc.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.misc.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
- _verifyMissingImports();
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
- _verifyMissingImports();
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":"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"}
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);
@@ -1031,6 +1035,10 @@ test('Partial2', () => {
1031
1035
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['partial2.py']);
1032
1036
  TestUtils.validateResults(analysisResults, 0);
1033
1037
  });
1038
+ test('Partial3', () => {
1039
+ const analysisResults = TestUtils.typeAnalyzeSampleFiles(['partial3.py']);
1040
+ TestUtils.validateResults(analysisResults, 0);
1041
+ });
1034
1042
  test('TotalOrdering1', () => {
1035
1043
  const analysisResults = TestUtils.typeAnalyzeSampleFiles(['totalOrdering1.py']);
1036
1044
  TestUtils.validateResults(analysisResults, 5);