@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.
- package/dist/analyzer/binder.d.ts +0 -1
- package/dist/analyzer/binder.js +32 -95
- package/dist/analyzer/binder.js.map +1 -1
- package/dist/analyzer/checker.js +48 -31
- package/dist/analyzer/checker.js.map +1 -1
- package/dist/analyzer/codeFlowEngine.js +4 -4
- package/dist/analyzer/codeFlowEngine.js.map +1 -1
- package/dist/analyzer/commentUtils.js +11 -1
- package/dist/analyzer/commentUtils.js.map +1 -1
- package/dist/analyzer/constructorTransform.d.ts +1 -0
- package/dist/analyzer/constructorTransform.js +19 -2
- package/dist/analyzer/constructorTransform.js.map +1 -1
- package/dist/analyzer/declaration.d.ts +2 -4
- package/dist/analyzer/declaration.js +6 -1
- package/dist/analyzer/declaration.js.map +1 -1
- package/dist/analyzer/declarationUtils.d.ts +1 -5
- package/dist/analyzer/declarationUtils.js +2 -47
- package/dist/analyzer/declarationUtils.js.map +1 -1
- package/dist/analyzer/docStringConversion.js +9 -3
- package/dist/analyzer/docStringConversion.js.map +1 -1
- package/dist/analyzer/packageTypeVerifier.js +40 -40
- package/dist/analyzer/packageTypeVerifier.js.map +1 -1
- package/dist/analyzer/parseTreeUtils.d.ts +4 -2
- package/dist/analyzer/parseTreeUtils.js +77 -2
- package/dist/analyzer/parseTreeUtils.js.map +1 -1
- package/dist/analyzer/patternMatching.js +20 -1
- package/dist/analyzer/patternMatching.js.map +1 -1
- package/dist/analyzer/program.d.ts +1 -0
- package/dist/analyzer/program.js +154 -13
- package/dist/analyzer/program.js.map +1 -1
- package/dist/analyzer/properties.js +3 -2
- package/dist/analyzer/properties.js.map +1 -1
- package/dist/analyzer/protocols.js +4 -2
- package/dist/analyzer/protocols.js.map +1 -1
- package/dist/analyzer/pythonPathUtils.js +27 -13
- package/dist/analyzer/pythonPathUtils.js.map +1 -1
- package/dist/analyzer/service.js +6 -1
- package/dist/analyzer/service.js.map +1 -1
- package/dist/analyzer/sourceFile.js +12 -1
- package/dist/analyzer/sourceFile.js.map +1 -1
- package/dist/analyzer/symbol.js +1 -4
- package/dist/analyzer/symbol.js.map +1 -1
- package/dist/analyzer/symbolUtils.d.ts +0 -3
- package/dist/analyzer/symbolUtils.js +1 -14
- package/dist/analyzer/symbolUtils.js.map +1 -1
- package/dist/analyzer/typeDocStringUtils.js +5 -3
- package/dist/analyzer/typeDocStringUtils.js.map +1 -1
- package/dist/analyzer/typeEvaluator.js +642 -259
- package/dist/analyzer/typeEvaluator.js.map +1 -1
- package/dist/analyzer/typeEvaluatorTypes.d.ts +11 -2
- package/dist/analyzer/typeGuards.js +2 -2
- package/dist/analyzer/typeGuards.js.map +1 -1
- package/dist/analyzer/typePrinter.js +63 -55
- package/dist/analyzer/typePrinter.js.map +1 -1
- package/dist/analyzer/typeUtils.d.ts +2 -0
- package/dist/analyzer/typeUtils.js +22 -3
- package/dist/analyzer/typeUtils.js.map +1 -1
- package/dist/analyzer/typedDicts.d.ts +2 -1
- package/dist/analyzer/typedDicts.js +83 -57
- package/dist/analyzer/typedDicts.js.map +1 -1
- package/dist/analyzer/types.d.ts +3 -1
- package/dist/analyzer/types.js +8 -0
- package/dist/analyzer/types.js.map +1 -1
- package/dist/commands/dumpFileDebugInfoCommand.js +78 -0
- package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
- package/dist/common/collectionUtils.d.ts +1 -0
- package/dist/common/collectionUtils.js +8 -1
- package/dist/common/collectionUtils.js.map +1 -1
- package/dist/common/extensibility.js +25 -1
- package/dist/common/extensibility.js.map +1 -1
- package/dist/common/positionUtils.d.ts +2 -0
- package/dist/common/positionUtils.js +15 -1
- package/dist/common/positionUtils.js.map +1 -1
- package/dist/languageServerBase.js +9 -1
- package/dist/languageServerBase.js.map +1 -1
- package/dist/languageService/callHierarchyProvider.js +4 -2
- package/dist/languageService/callHierarchyProvider.js.map +1 -1
- package/dist/languageService/completionProvider.d.ts +4 -2
- package/dist/languageService/completionProvider.js +252 -191
- package/dist/languageService/completionProvider.js.map +1 -1
- package/dist/languageService/completionProviderUtils.d.ts +1 -1
- package/dist/languageService/completionProviderUtils.js +3 -3
- package/dist/languageService/completionProviderUtils.js.map +1 -1
- package/dist/languageService/definitionProvider.js +2 -1
- package/dist/languageService/definitionProvider.js.map +1 -1
- package/dist/languageService/documentSymbolProvider.js +2 -1
- package/dist/languageService/documentSymbolProvider.js.map +1 -1
- package/dist/languageService/hoverProvider.js +11 -3
- package/dist/languageService/hoverProvider.js.map +1 -1
- package/dist/languageService/importAdder.js +4 -1
- package/dist/languageService/importAdder.js.map +1 -1
- package/dist/languageService/indentationUtils.d.ts +1 -1
- package/dist/languageService/indentationUtils.js +22 -12
- package/dist/languageService/indentationUtils.js.map +1 -1
- package/dist/languageService/renameModuleProvider.d.ts +1 -1
- package/dist/languageService/renameModuleProvider.js +28 -8
- package/dist/languageService/renameModuleProvider.js.map +1 -1
- package/dist/languageService/tooltipUtils.js +2 -1
- package/dist/languageService/tooltipUtils.js.map +1 -1
- package/dist/localization/localize.d.ts +12 -2
- package/dist/localization/localize.js +5 -1
- package/dist/localization/localize.js.map +1 -1
- package/dist/localization/package.nls.en-us.json +6 -2
- package/dist/parser/parser.js +40 -25
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/tokenizer.js +1 -1
- package/dist/pyright.js +1 -1
- package/dist/pyright.js.map +1 -1
- package/dist/tests/completions.test.js +445 -0
- package/dist/tests/completions.test.js.map +1 -1
- package/dist/tests/docStringConversion.test.js +23 -0
- package/dist/tests/docStringConversion.test.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js +13 -3
- package/dist/tests/fourslash/completions.dictionary.keys.expression.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js +7 -2
- package/dist/tests/fourslash/completions.dictionary.keys.stringLiterals.fourslash.js.map +1 -1
- package/dist/tests/fourslash/completions.errorNodes.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/completions.errorNodes.fourslash.js +24 -0
- package/dist/tests/fourslash/completions.errorNodes.fourslash.js.map +1 -0
- package/dist/tests/fourslash/hover.slots.fourslash.d.ts +1 -0
- package/dist/tests/fourslash/hover.slots.fourslash.js +16 -0
- package/dist/tests/fourslash/hover.slots.fourslash.js.map +1 -0
- package/dist/tests/hoverProvider.test.js +1 -1
- package/dist/tests/hoverProvider.test.js.map +1 -1
- package/dist/tests/importAdder.test.js +13 -0
- package/dist/tests/importAdder.test.js.map +1 -1
- package/dist/tests/indentationUtils.reindent.test.js +21 -0
- package/dist/tests/indentationUtils.reindent.test.js.map +1 -1
- package/dist/tests/moveSymbol.importAdder.test.js +137 -31
- package/dist/tests/moveSymbol.importAdder.test.js.map +1 -1
- package/dist/tests/moveSymbol.insertion.test.js +98 -0
- package/dist/tests/moveSymbol.insertion.test.js.map +1 -1
- package/dist/tests/moveSymbol.misc.test.js +27 -0
- package/dist/tests/moveSymbol.misc.test.js.map +1 -1
- package/dist/tests/renameModuleTestUtils.d.ts +1 -1
- package/dist/tests/renameModuleTestUtils.js +9 -5
- package/dist/tests/renameModuleTestUtils.js.map +1 -1
- package/dist/tests/typeEvaluator1.test.js +8 -0
- package/dist/tests/typeEvaluator1.test.js.map +1 -1
- package/dist/tests/typeEvaluator2.test.js +5 -1
- package/dist/tests/typeEvaluator2.test.js.map +1 -1
- package/dist/tests/typeEvaluator3.test.js +20 -4
- package/dist/tests/typeEvaluator3.test.js.map +1 -1
- package/dist/tests/typeEvaluator4.test.js +4 -0
- package/dist/tests/typeEvaluator4.test.js.map +1 -1
- package/dist/tests/typeEvaluator5.test.js +6 -0
- package/dist/tests/typeEvaluator5.test.js.map +1 -1
- package/package.json +1 -1
@@ -12,44 +12,44 @@ const renameModuleTestUtils_1 = require("./renameModuleTestUtils");
|
|
12
12
|
test('move imports used in the symbol', () => {
|
13
13
|
const code = `
|
14
14
|
// @filename: test.py
|
15
|
-
//// from typing import List, Mapping
|
15
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
16
16
|
////
|
17
17
|
//// class MyType:
|
18
18
|
//// pass
|
19
19
|
////
|
20
|
-
////
|
20
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
21
21
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
22
22
|
|
23
23
|
// @filename: moved.py
|
24
|
-
//// [|{|"r":"from
|
24
|
+
//// [|{|"r":"from test import MyType!n!!n!!n!from typing import List, Mapping!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
|
25
25
|
`;
|
26
26
|
testFromCode(code);
|
27
27
|
});
|
28
28
|
test('import with alias', () => {
|
29
29
|
const code = `
|
30
30
|
// @filename: test.py
|
31
|
-
//// from typing import List as l, Mapping as m
|
31
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List as l, Mapping as m
|
32
32
|
////
|
33
33
|
//// class MyType:
|
34
34
|
//// pass
|
35
35
|
////
|
36
|
-
////
|
36
|
+
//// def [|/*marker*/foo|](a: str, b: l[int]) -> None:
|
37
37
|
//// c: m[str, MyType] = { 'hello', MyType() }|]
|
38
38
|
|
39
39
|
// @filename: moved.py
|
40
|
-
//// [|{|"r":"from typing import List as l, Mapping as m!n!!n!!n!
|
40
|
+
//// [|{|"r":"from test import MyType!n!!n!!n!from typing import List as l, Mapping as m!n!!n!!n!def foo(a: str, b: l[int]) -> None:!n! c: m[str, MyType] = { 'hello', MyType() }", "name": "dest"|}|]
|
41
41
|
`;
|
42
42
|
testFromCode(code);
|
43
43
|
});
|
44
44
|
test('with existing imports', () => {
|
45
45
|
const code = `
|
46
46
|
// @filename: test.py
|
47
|
-
//// from typing import List, Mapping
|
47
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
48
48
|
////
|
49
49
|
//// class MyType:
|
50
50
|
//// pass
|
51
51
|
////
|
52
|
-
////
|
52
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
53
53
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
54
54
|
|
55
55
|
// @filename: moved.py
|
@@ -61,7 +61,7 @@ test('with existing imports', () => {
|
|
61
61
|
test('merge with existing imports', () => {
|
62
62
|
const code = `
|
63
63
|
// @filename: test.py
|
64
|
-
//// from typing import List, Mapping
|
64
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!class MyType2(MyType):!n! pass!n!!n!"|}from typing import List, Mapping
|
65
65
|
////
|
66
66
|
//// class MyType:
|
67
67
|
//// pass
|
@@ -69,25 +69,25 @@ test('merge with existing imports', () => {
|
|
69
69
|
//// class MyType2(MyType):
|
70
70
|
//// pass
|
71
71
|
////
|
72
|
-
////
|
72
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
73
73
|
//// c: Mapping[str, MyType] = { 'hello', MyType2() }|]
|
74
74
|
|
75
75
|
// @filename: moved.py
|
76
|
-
////
|
77
|
-
//// from test import MyType
|
78
|
-
//// m = MyType()
|
76
|
+
//// [|{|"r":"from typing import List, Mapping!n!from test import MyType, MyType2!n!m = MyType()!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType2() }", "name": "dest"|}from typing import Mapping
|
77
|
+
//// from test import MyType
|
78
|
+
//// m = MyType()|]
|
79
79
|
`;
|
80
80
|
testFromCode(code);
|
81
81
|
});
|
82
82
|
test('merge with existing moving symbol imports', () => {
|
83
83
|
const code = `
|
84
84
|
// @filename: test.py
|
85
|
-
//// from typing import List, Mapping
|
85
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
86
86
|
////
|
87
87
|
//// class MyType:
|
88
88
|
//// pass
|
89
89
|
////
|
90
|
-
////
|
90
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
91
91
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
92
92
|
|
93
93
|
// @filename: moved.py
|
@@ -101,28 +101,28 @@ test('merge with existing moving symbol imports', () => {
|
|
101
101
|
test('merge with existing moving symbol imports and add new one', () => {
|
102
102
|
const code = `
|
103
103
|
// @filename: test.py
|
104
|
-
//// from typing import List, Mapping
|
104
|
+
//// [|{|"r":"!n!class MyType:!n! pass!n!!n!"|}from typing import List, Mapping
|
105
105
|
////
|
106
106
|
//// class MyType:
|
107
107
|
//// pass
|
108
108
|
////
|
109
|
-
////
|
109
|
+
//// def [|/*marker*/foo|](a: str, b: List[int]) -> None:
|
110
110
|
//// c: Mapping[str, MyType] = { 'hello', MyType() }|]
|
111
111
|
|
112
112
|
// @filename: moved.py
|
113
|
-
//// from typing import List, Mapping
|
114
|
-
////
|
115
|
-
////
|
116
|
-
//// foo()
|
113
|
+
//// [|{|"r":"from typing import List, Mapping!n!!n!from test import MyType!n!!n!!n!def foo(a: str, b: List[int]) -> None:!n! c: Mapping[str, MyType] = { 'hello', MyType() }!n!!n!foo()", "name": "dest"|}from typing import List, Mapping
|
114
|
+
//// from test import foo
|
115
|
+
////
|
116
|
+
//// foo()|]
|
117
117
|
`;
|
118
118
|
testFromCode(code);
|
119
119
|
});
|
120
120
|
test('symbol from destination file used', () => {
|
121
121
|
const code = `
|
122
122
|
// @filename: test.py
|
123
|
-
//// from moved import MyType
|
123
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
124
124
|
////
|
125
|
-
////
|
125
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
126
126
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
127
127
|
|
128
128
|
// @filename: moved.py
|
@@ -135,9 +135,9 @@ test('symbol from destination file used', () => {
|
|
135
135
|
test('insert after all symbols references', () => {
|
136
136
|
const code = `
|
137
137
|
// @filename: test.py
|
138
|
-
//// from moved import MyType
|
138
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
139
139
|
////
|
140
|
-
////
|
140
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
141
141
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
142
142
|
|
143
143
|
// @filename: moved.py
|
@@ -153,9 +153,9 @@ test('insert after all symbols references', () => {
|
|
153
153
|
test('insert after all symbols references 2', () => {
|
154
154
|
const code = `
|
155
155
|
// @filename: test.py
|
156
|
-
//// from moved import MyType
|
156
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
157
157
|
////
|
158
|
-
////
|
158
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
159
159
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
160
160
|
|
161
161
|
// @filename: moved.py
|
@@ -170,9 +170,9 @@ test('insert after all symbols references 2', () => {
|
|
170
170
|
test('symbol used before all symbol references', () => {
|
171
171
|
const code = `
|
172
172
|
// @filename: test.py
|
173
|
-
//// from moved import MyType
|
173
|
+
//// [|{|"r":"!n!"|}from moved import MyType
|
174
174
|
////
|
175
|
-
////
|
175
|
+
//// def [|/*marker*/foo|](a: MyType) -> None:
|
176
176
|
//// c: Mapping[str, MyType] = { 'hello', a }|]
|
177
177
|
|
178
178
|
// @filename: moved.py
|
@@ -185,8 +185,114 @@ test('symbol used before all symbol references', () => {
|
|
185
185
|
`;
|
186
186
|
testFromCode(code);
|
187
187
|
});
|
188
|
-
|
188
|
+
test('symbol with import statements', () => {
|
189
|
+
const code = `
|
190
|
+
// @filename: test.py
|
191
|
+
//// [|{|"r": "import sys!n!!n!"|}import os, os.path, sys
|
192
|
+
////
|
193
|
+
//// def [|/*marker*/foo|]():
|
194
|
+
//// p = os.path.curdir
|
195
|
+
//// os.abort()|]
|
196
|
+
|
197
|
+
// @filename: moved.py
|
198
|
+
//// [|{|"r": "import os!n!import os.path!n!!n!!n!def foo():!n! p = os.path.curdir!n! os.abort()", "name": "dest"|}|]
|
199
|
+
`;
|
200
|
+
testFromCode(code);
|
201
|
+
});
|
202
|
+
test('symbol with import statements with alias', () => {
|
203
|
+
const code = `
|
204
|
+
// @filename: test.py
|
205
|
+
//// [|{|"r": "import sys!n!!n!"|}import os, os.path as path, sys
|
206
|
+
////
|
207
|
+
//// def [|/*marker*/foo|]():
|
208
|
+
//// p = path.curdir
|
209
|
+
//// os.abort()|]
|
210
|
+
|
211
|
+
// @filename: moved.py
|
212
|
+
//// [|{|"r": "import os!n!import os.path as path!n!!n!!n!def foo():!n! p = path.curdir!n! os.abort()", "name": "dest"|}|]
|
213
|
+
`;
|
214
|
+
testFromCode(code);
|
215
|
+
});
|
216
|
+
test('symbol with import statements with alias 2', () => {
|
217
|
+
const code = `
|
218
|
+
// @filename: test.py
|
219
|
+
//// [|{|"r": "import sys!n!!n!"|}import os, os.path as p1, sys
|
220
|
+
////
|
221
|
+
//// def [|/*marker*/foo|]():
|
222
|
+
//// p = p1.curdir
|
223
|
+
//// os.abort()|]
|
224
|
+
|
225
|
+
// @filename: moved.py
|
226
|
+
//// [|{|"r": "import os!n!import os.path as p1!n!!n!!n!def foo():!n! p = p1.curdir!n! os.abort()", "name": "dest"|}|]
|
227
|
+
`;
|
228
|
+
testFromCode(code);
|
229
|
+
});
|
230
|
+
test('symbol with import statements with multiple unused imports', () => {
|
231
|
+
const code = `
|
232
|
+
// @filename: test.py
|
233
|
+
//// [|{|"r": "import os.path, sys!n!!n!"|}import os, os.path, sys
|
234
|
+
////
|
235
|
+
//// def [|/*marker*/foo|]():
|
236
|
+
//// os.abort()|]
|
237
|
+
|
238
|
+
// @filename: moved.py
|
239
|
+
//// [|{|"r": "import os!n!!n!!n!def foo():!n! os.abort()", "name": "dest"|}|]
|
240
|
+
`;
|
241
|
+
testFromCode(code);
|
242
|
+
});
|
243
|
+
test('symbol with import statements with used imports', () => {
|
244
|
+
const code = `
|
245
|
+
// @filename: test.py
|
246
|
+
//// [|{|"r": "import os.path as path, sys!n!!n!p = path.curdir!n!!n!"|}import os, os.path as path, sys
|
247
|
+
////
|
248
|
+
//// p = path.curdir
|
249
|
+
////
|
250
|
+
//// def [|/*marker*/foo|]():
|
251
|
+
//// p = path.curdir
|
252
|
+
//// os.abort()|]
|
253
|
+
|
254
|
+
// @filename: moved.py
|
255
|
+
//// [|{|"r": "import os!n!import os.path as path!n!!n!!n!def foo():!n! p = path.curdir!n! os.abort()", "name": "dest"|}|]
|
256
|
+
`;
|
257
|
+
testFromCode(code);
|
258
|
+
});
|
259
|
+
test('symbol with invalid import', () => {
|
260
|
+
const code = `
|
261
|
+
// @filename: test.py
|
262
|
+
//// import notExist
|
263
|
+
////
|
264
|
+
//// p = notExist.fooStr
|
265
|
+
////
|
266
|
+
//// [|{|"r": ""|}def [|/*marker*/foo|]():
|
267
|
+
//// p = notExist.fooStr|]
|
268
|
+
|
269
|
+
// @filename: moved.py
|
270
|
+
//// [|{|"r": "def foo():!n! p = notExist.fooStr", "name": "dest"|}|]
|
271
|
+
`;
|
272
|
+
testFromCode(code, true);
|
273
|
+
});
|
274
|
+
test('symbol with import with error', () => {
|
275
|
+
const code = `
|
276
|
+
// @filename: test.py
|
277
|
+
//// #pyright: strict
|
278
|
+
//// import lib # should have no stub diagnostic
|
279
|
+
////
|
280
|
+
//// lib.bar()
|
281
|
+
////
|
282
|
+
//// [|{|"r": ""|}def [|/*marker*/foo|]():
|
283
|
+
//// p = lib.bar()|]
|
284
|
+
|
285
|
+
// @filename: lib/__init__.py
|
286
|
+
// @library: true
|
287
|
+
//// def bar(): pass
|
288
|
+
|
289
|
+
// @filename: moved.py
|
290
|
+
//// [|{|"r": "import lib!n!!n!!n!def foo():!n! p = lib.bar()", "name": "dest"|}|]
|
291
|
+
`;
|
292
|
+
testFromCode(code, true);
|
293
|
+
});
|
294
|
+
function testFromCode(code, expectsMissingImport = false) {
|
189
295
|
const state = (0, testState_1.parseAndGetTestState)(code).state;
|
190
|
-
(0, renameModuleTestUtils_1.testMoveSymbolAtPosition)(state, state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start);
|
296
|
+
(0, renameModuleTestUtils_1.testMoveSymbolAtPosition)(state, state.getMarkerByName('marker').fileName, state.getMarkerByName('dest').fileName, state.getPositionRange('marker').start, undefined, undefined, expectsMissingImport);
|
191
297
|
}
|
192
298
|
//# sourceMappingURL=moveSymbol.importAdder.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"moveSymbol.importAdder.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.importAdder.test.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAEH,6DAAqE;AACrE,mEAAmE;AAEnE,IAAI,CAAC,iCAAiC,EAAE,GAAG,EAAE;IACzC,MAAM,IAAI,GAAG;;;;;;;;;;;;SAYR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAC3B,MAAM,IAAI,GAAG;;;;;;;;;;;;SAYR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IAC/B,MAAM,IAAI,GAAG;;;;;;;;;;;;;SAaR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;IACrC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;SAiBR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACnD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;SAeR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACnE,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;SAeR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC3C,MAAM,IAAI,GAAG;;;;;;;;;;;SAWR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC7C,MAAM,IAAI,GAAG;;;;;;;;;;;;;;SAcR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IAC/C,MAAM,IAAI,GAAG;;;;;;;;;;;;;SAaR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;IAClD,MAAM,IAAI,GAAG;;;;;;;;;;;;;;SAcR,CAAC;IAEN,YAAY,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;
|
1
|
+
{"version":3,"file":"moveSymbol.importAdder.test.js","sourceRoot":"","sources":["../../../src/tests/moveSymbol.importAdder.test.ts"],"names":[],"mappings":"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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
|
-
|
57
|
+
if (!expectsMissingImport) {
|
58
|
+
_verifyMissingImports();
|
59
|
+
}
|
58
60
|
(0, testStateUtils_1.verifyEdits)(state, fileEditActions, ranges, replacementText);
|
59
61
|
(0, testStateUtils_1.applyFileOperations)(state, fileEditActions);
|
60
62
|
// Make sure we don't have missing imports after the change.
|
61
|
-
|
63
|
+
if (!expectsMissingImport) {
|
64
|
+
_verifyMissingImports();
|
65
|
+
}
|
62
66
|
function _verifyMissingImports() {
|
63
67
|
for (const editFileName of editsPerFileMap.keys()) {
|
64
68
|
const sourceFile = state.program.getBoundSourceFile(editFileName);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"renameModuleTestUtils.js","sourceRoot":"","sources":["../../../src/tests/renameModuleTestUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AAEH,oDAA4B;AAC5B,iEAA0D;AAE1D,+DAA4E;AAE5E,+DAA2D;AAM3D,qDAK0B;AAE1B,SAAgB,wBAAwB,CACpC,KAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,QAAkB,EAClB,IAAa,EACb,eAAwB;
|
1
|
+
{"version":3,"file":"renameModuleTestUtils.js","sourceRoot":"","sources":["../../../src/tests/renameModuleTestUtils.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;AAEH,oDAA4B;AAC5B,iEAA0D;AAE1D,+DAA4E;AAE5E,+DAA2D;AAM3D,qDAK0B;AAE1B,SAAgB,wBAAwB,CACpC,KAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,QAAkB,EAClB,IAAa,EACb,eAAwB,EACxB,oBAAoB,GAAG,KAAK;IAE5B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAC9C,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,EAAE,YAAY,2BAAuB,EAAE,EACvC,yCAAiB,CAAC,IAAI,CACzB,CAAC;IACF,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,IAAA,6BAAW,EAAC,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;KAC3D;SAAM;QACH,IAAA,6BAAW,EACP,MAAM,EACN,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,MAAM,0CAAE,IAAI,CAAA,CAAA,EAAA,CAAC,CACpD,CAAC;KACL;IAED,gBAAM,CAAC,WAAW,CACd,OAAO,CAAC,KAAK,CAAC,MAAM,EACpB,MAAM,CAAC,MAAM,EACb,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8CAA6B,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,MAAM;SAC/E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,6CAA4B,EAAC,KAAK,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;SACnE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8CAA6B,EAAC,CAAC,CAAC,CAAC;SAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,CACnB,CAAC;IAEF,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC;AACzF,CAAC;AAtCD,4DAsCC;AAED,SAAgB,gBAAgB,CAC5B,KAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,IAAa,EACb,eAAwB;IAExB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,yCAAiB,CAAC,IAAI,CAAC,CAAC;IAC9F,IAAA,gBAAM,EAAC,WAAW,CAAC,CAAC;IAEpB,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS,EAAE;QACpB,IAAA,6BAAW,EAAC,MAAM,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;KAC3D;SAAM;QACH,IAAA,6BAAW,EACP,MAAM,EACN,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,CAAC,CAAC,MAAM,0CAAE,IAAI,CAAA,CAAA,EAAA,CAAC,CACpD,CAAC;KACL;IAED,gBAAM,CAAC,WAAW,CACd,WAAW,CAAC,KAAK,CAAC,MAAM,EACxB,MAAM,CAAC,MAAM,EACb,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8CAA6B,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,MAAM;SACpF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,6CAA4B,EAAC,KAAK,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;SACnE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,8CAA6B,EAAC,CAAC,CAAC,CAAC;SAC5C,IAAI,CAAC,IAAI,CAAC,EAAE,CACpB,CAAC;IAEF,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAExF,iEAAiE;IACjE,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AACvE,CAAC;AAjCD,4CAiCC;AAED,SAAS,qBAAqB,CAC1B,KAAgB,EAChB,eAAgC,EAChC,MAAe,EACf,eAAmC,EACnC,oBAAoB,GAAG,KAAK;IAE5B,MAAM,eAAe,GAAG,IAAA,oCAAkB,EAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAErF,IAAI,CAAC,oBAAoB,EAAE;QACvB,qBAAqB,EAAE,CAAC;KAC3B;IAED,IAAA,4BAAW,EAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAE7D,IAAA,oCAAmB,EAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAE5C,4DAA4D;IAC5D,IAAI,CAAC,oBAAoB,EAAE;QACvB,qBAAqB,EAAE,CAAC;KAC3B;IAED,SAAS,qBAAqB;QAC1B,KAAK,MAAM,YAAY,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAE,CAAC;YACnE,gCAAgC,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;SACpF;IACL,CAAC;AACL,CAAC;AAED,SAAS,gCAAgC,CAAC,WAAqC;IAC3E,IAAA,gBAAM,EACF,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,gCAAc,CAAC,oBAAoB,CAAC,CAAC,MAAM,KAAK,CAAC,EAC3G,IAAI,CAAC,SAAS,CAAC,WAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CACrD,CAAC;AACN,CAAC"}
|
@@ -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);
|