@zzzen/pyright-internal 1.2.0-dev.20260222 → 1.2.0-dev.20260422

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 (219) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +1 -1
  2. package/dist/analyzer/backgroundAnalysisProgram.js +9 -6
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +10 -1
  5. package/dist/analyzer/binder.js +258 -41
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/cellChainIndex.d.ts +34 -0
  8. package/dist/analyzer/cellChainIndex.js +126 -0
  9. package/dist/analyzer/cellChainIndex.js.map +1 -0
  10. package/dist/analyzer/checker.js +0 -1
  11. package/dist/analyzer/checker.js.map +1 -1
  12. package/dist/analyzer/codeFlowEngine.js +16 -1
  13. package/dist/analyzer/codeFlowEngine.js.map +1 -1
  14. package/dist/analyzer/constructors.js +9 -2
  15. package/dist/analyzer/constructors.js.map +1 -1
  16. package/dist/analyzer/importResolver.d.ts +3 -21
  17. package/dist/analyzer/importResolver.js +42 -316
  18. package/dist/analyzer/importResolver.js.map +1 -1
  19. package/dist/analyzer/importResolverFileSystem.d.ts +3 -0
  20. package/dist/analyzer/importResolverFileSystem.js +160 -0
  21. package/dist/analyzer/importResolverFileSystem.js.map +1 -0
  22. package/dist/analyzer/importResolverTypes.d.ts +24 -0
  23. package/dist/analyzer/importResolverTypes.js +8 -0
  24. package/dist/analyzer/importResolverTypes.js.map +1 -0
  25. package/dist/analyzer/importStatementUtils.js +9 -0
  26. package/dist/analyzer/importStatementUtils.js.map +1 -1
  27. package/dist/analyzer/parseTreeUtils.d.ts +1 -0
  28. package/dist/analyzer/parseTreeUtils.js +24 -7
  29. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  30. package/dist/analyzer/patternMatching.js +14 -2
  31. package/dist/analyzer/patternMatching.js.map +1 -1
  32. package/dist/analyzer/program.d.ts +5 -3
  33. package/dist/analyzer/program.js +40 -51
  34. package/dist/analyzer/program.js.map +1 -1
  35. package/dist/analyzer/pythonPathUtils.d.ts +1 -1
  36. package/dist/analyzer/pythonPathUtils.js +3 -1
  37. package/dist/analyzer/pythonPathUtils.js.map +1 -1
  38. package/dist/analyzer/scope.d.ts +10 -1
  39. package/dist/analyzer/scope.js +14 -1
  40. package/dist/analyzer/scope.js.map +1 -1
  41. package/dist/analyzer/service.d.ts +11 -6
  42. package/dist/analyzer/service.js +82 -83
  43. package/dist/analyzer/service.js.map +1 -1
  44. package/dist/analyzer/sourceEnumerator.d.ts +3 -0
  45. package/dist/analyzer/sourceEnumerator.js +27 -1
  46. package/dist/analyzer/sourceEnumerator.js.map +1 -1
  47. package/dist/analyzer/sourceFile.d.ts +2 -1
  48. package/dist/analyzer/sourceFile.js +2 -2
  49. package/dist/analyzer/sourceFile.js.map +1 -1
  50. package/dist/analyzer/sourceFileInfo.d.ts +4 -0
  51. package/dist/analyzer/sourceFileInfo.js +9 -0
  52. package/dist/analyzer/sourceFileInfo.js.map +1 -1
  53. package/dist/analyzer/sourceMapper.d.ts +1 -0
  54. package/dist/analyzer/sourceMapper.js +44 -0
  55. package/dist/analyzer/sourceMapper.js.map +1 -1
  56. package/dist/analyzer/tuples.js +3 -1
  57. package/dist/analyzer/tuples.js.map +1 -1
  58. package/dist/analyzer/typeEvaluator.js +102 -51
  59. package/dist/analyzer/typeEvaluator.js.map +1 -1
  60. package/dist/analyzer/typeEvaluatorTypes.d.ts +2 -0
  61. package/dist/analyzer/typeEvaluatorTypes.js +4 -0
  62. package/dist/analyzer/typeEvaluatorTypes.js.map +1 -1
  63. package/dist/analyzer/typeGuards.js +28 -6
  64. package/dist/analyzer/typeGuards.js.map +1 -1
  65. package/dist/analyzer/typeStubWriter.d.ts +15 -50
  66. package/dist/analyzer/typeStubWriter.js +91 -9
  67. package/dist/analyzer/typeStubWriter.js.map +1 -1
  68. package/dist/analyzer/typeUtils.d.ts +1 -0
  69. package/dist/analyzer/typeUtils.js +27 -3
  70. package/dist/analyzer/typeUtils.js.map +1 -1
  71. package/dist/analyzer/typeshedInfoProvider.d.ts +2 -0
  72. package/dist/analyzer/typeshedInfoProvider.js +232 -0
  73. package/dist/analyzer/typeshedInfoProvider.js.map +1 -0
  74. package/dist/backgroundAnalysisBase.d.ts +3 -3
  75. package/dist/backgroundAnalysisBase.js +12 -9
  76. package/dist/backgroundAnalysisBase.js.map +1 -1
  77. package/dist/commands/createTypeStub.d.ts +16 -8
  78. package/dist/commands/createTypeStub.js +58 -36
  79. package/dist/commands/createTypeStub.js.map +1 -1
  80. package/dist/common/cancellationUtils.d.ts +7 -0
  81. package/dist/common/cancellationUtils.js +34 -0
  82. package/dist/common/cancellationUtils.js.map +1 -1
  83. package/dist/common/collectionUtils.d.ts +3 -3
  84. package/dist/common/collectionUtils.js.map +1 -1
  85. package/dist/common/core.d.ts +1 -1
  86. package/dist/common/core.js.map +1 -1
  87. package/dist/common/crypto.js +11 -0
  88. package/dist/common/crypto.js.map +1 -1
  89. package/dist/common/extensibility.d.ts +7 -0
  90. package/dist/common/extensibility.js.map +1 -1
  91. package/dist/common/fullAccessHost.js +4 -2
  92. package/dist/common/fullAccessHost.js.map +1 -1
  93. package/dist/common/pathUtils.d.ts +4 -1
  94. package/dist/common/pathUtils.js.map +1 -1
  95. package/dist/common/realFileSystem.js +42 -3
  96. package/dist/common/realFileSystem.js.map +1 -1
  97. package/dist/common/serviceKeys.d.ts +3 -0
  98. package/dist/common/serviceKeys.js +2 -0
  99. package/dist/common/serviceKeys.js.map +1 -1
  100. package/dist/common/serviceProviderExtensions.js.map +1 -1
  101. package/dist/common/uri/uriUtils.d.ts +4 -0
  102. package/dist/common/uri/uriUtils.js +19 -3
  103. package/dist/common/uri/uriUtils.js.map +1 -1
  104. package/dist/common/workspaceEditUtils.js +0 -2
  105. package/dist/common/workspaceEditUtils.js.map +1 -1
  106. package/dist/languageServerBase.d.ts +1 -0
  107. package/dist/languageServerBase.js +6 -0
  108. package/dist/languageServerBase.js.map +1 -1
  109. package/dist/languageService/completionProvider.d.ts +6 -0
  110. package/dist/languageService/completionProvider.js +252 -75
  111. package/dist/languageService/completionProvider.js.map +1 -1
  112. package/dist/languageService/definitionProvider.js +1 -1
  113. package/dist/languageService/definitionProvider.js.map +1 -1
  114. package/dist/languageService/documentSymbolCollector.js +34 -4
  115. package/dist/languageService/documentSymbolCollector.js.map +1 -1
  116. package/dist/languageService/dynamicFeature.d.ts +3 -0
  117. package/dist/languageService/dynamicFeature.js +5 -0
  118. package/dist/languageService/dynamicFeature.js.map +1 -1
  119. package/dist/languageService/hoverProvider.d.ts +2 -1
  120. package/dist/languageService/hoverProvider.js +13 -5
  121. package/dist/languageService/hoverProvider.js.map +1 -1
  122. package/dist/languageService/pullDiagnosticsDynamicFeature.d.ts +1 -0
  123. package/dist/languageService/pullDiagnosticsDynamicFeature.js +4 -0
  124. package/dist/languageService/pullDiagnosticsDynamicFeature.js.map +1 -1
  125. package/dist/languageService/referencesProvider.js +5 -4
  126. package/dist/languageService/referencesProvider.js.map +1 -1
  127. package/dist/languageService/signatureHelpProvider.d.ts +1 -0
  128. package/dist/languageService/signatureHelpProvider.js +76 -2
  129. package/dist/languageService/signatureHelpProvider.js.map +1 -1
  130. package/dist/languageService/symbolIndexer.d.ts +1 -0
  131. package/dist/languageService/symbolIndexer.js.map +1 -1
  132. package/dist/languageService/tooltipUtils.d.ts +11 -4
  133. package/dist/languageService/tooltipUtils.js +195 -7
  134. package/dist/languageService/tooltipUtils.js.map +1 -1
  135. package/dist/parser/tokenizer.js +6 -2
  136. package/dist/parser/tokenizer.js.map +1 -1
  137. package/dist/partialStubService.d.ts +11 -0
  138. package/dist/partialStubService.js +23 -1
  139. package/dist/partialStubService.js.map +1 -1
  140. package/dist/pyright.js +13 -2
  141. package/dist/pyright.js.map +1 -1
  142. package/dist/tests/chainedSourceFiles.test.js +138 -0
  143. package/dist/tests/chainedSourceFiles.test.js.map +1 -1
  144. package/dist/tests/checker.test.js +12 -0
  145. package/dist/tests/checker.test.js.map +1 -1
  146. package/dist/tests/completions.test.js +328 -0
  147. package/dist/tests/completions.test.js.map +1 -1
  148. package/dist/tests/config.test.js +54 -0
  149. package/dist/tests/config.test.js.map +1 -1
  150. package/dist/tests/filesystem.test.js +44 -0
  151. package/dist/tests/filesystem.test.js.map +1 -1
  152. package/dist/tests/fourSlashRunner.test.js +1 -1
  153. package/dist/tests/fourSlashRunner.test.js.map +1 -1
  154. package/dist/tests/fourslash/findDefinitions.definitionFilter.preferSource.fourslash.js +25 -1
  155. package/dist/tests/fourslash/findDefinitions.definitionFilter.preferSource.fourslash.js.map +1 -1
  156. package/dist/tests/fourslash/import.multipart3.fourslash.d.ts +1 -0
  157. package/dist/tests/fourslash/import.multipart3.fourslash.js +46 -0
  158. package/dist/tests/fourslash/import.multipart3.fourslash.js.map +1 -0
  159. package/dist/tests/fourslash/import.pytyped.unsupportedDunderAll.fourslash.d.ts +1 -0
  160. package/dist/tests/fourslash/import.pytyped.unsupportedDunderAll.fourslash.js +33 -0
  161. package/dist/tests/fourslash/import.pytyped.unsupportedDunderAll.fourslash.js.map +1 -0
  162. package/dist/tests/harness/fourslash/runner.d.ts +4 -4
  163. package/dist/tests/harness/fourslash/runner.js +5 -5
  164. package/dist/tests/harness/fourslash/runner.js.map +1 -1
  165. package/dist/tests/harness/fourslash/testState.d.ts +20 -5
  166. package/dist/tests/harness/fourslash/testState.js +11 -26
  167. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  168. package/dist/tests/harness/fourslash/testStateUtils.js +2 -0
  169. package/dist/tests/harness/fourslash/testStateUtils.js.map +1 -1
  170. package/dist/tests/harness/testAccessHost.d.ts +3 -1
  171. package/dist/tests/harness/testAccessHost.js +6 -2
  172. package/dist/tests/harness/testAccessHost.js.map +1 -1
  173. package/dist/tests/harness/testHost.js +20 -18
  174. package/dist/tests/harness/testHost.js.map +1 -1
  175. package/dist/tests/harness/vfs/factory.js +4 -1
  176. package/dist/tests/harness/vfs/factory.js.map +1 -1
  177. package/dist/tests/harness/vfs/filesystem.d.ts +8 -1
  178. package/dist/tests/harness/vfs/filesystem.js +84 -30
  179. package/dist/tests/harness/vfs/filesystem.js.map +1 -1
  180. package/dist/tests/hoverProvider.test.js +290 -0
  181. package/dist/tests/hoverProvider.test.js.map +1 -1
  182. package/dist/tests/importResolverSupport.test.d.ts +1 -0
  183. package/dist/tests/importResolverSupport.test.js +319 -0
  184. package/dist/tests/importResolverSupport.test.js.map +1 -0
  185. package/dist/tests/importStatementUtils.test.js +66 -0
  186. package/dist/tests/importStatementUtils.test.js.map +1 -1
  187. package/dist/tests/lsp/{webpack.testserver.config.d.ts → rspack.testserver.config.d.ts} +1 -1
  188. package/dist/tests/lsp/{webpack.testserver.config.js → rspack.testserver.config.js} +4 -11
  189. package/dist/tests/lsp/rspack.testserver.config.js.map +1 -0
  190. package/dist/tests/realTempFile.test.d.ts +1 -0
  191. package/dist/tests/realTempFile.test.js +144 -0
  192. package/dist/tests/realTempFile.test.js.map +1 -0
  193. package/dist/tests/service.test.js +182 -3
  194. package/dist/tests/service.test.js.map +1 -1
  195. package/dist/tests/signatureHelp.test.js +391 -6
  196. package/dist/tests/signatureHelp.test.js.map +1 -1
  197. package/dist/tests/testState.test.js +19 -0
  198. package/dist/tests/testState.test.js.map +1 -1
  199. package/dist/tests/tokenizer.test.js +42 -0
  200. package/dist/tests/tokenizer.test.js.map +1 -1
  201. package/dist/tests/typeEvaluator1.test.js +4 -0
  202. package/dist/tests/typeEvaluator1.test.js.map +1 -1
  203. package/dist/tests/typeEvaluator2.test.js +12 -0
  204. package/dist/tests/typeEvaluator2.test.js.map +1 -1
  205. package/dist/tests/typeEvaluator3.test.js +8 -1
  206. package/dist/tests/typeEvaluator3.test.js.map +1 -1
  207. package/dist/tests/typeEvaluator6.test.js +7 -0
  208. package/dist/tests/typeEvaluator6.test.js.map +1 -1
  209. package/dist/tests/typeEvaluator8.test.js +13 -1
  210. package/dist/tests/typeEvaluator8.test.js.map +1 -1
  211. package/dist/tests/uri.test.js +29 -0
  212. package/dist/tests/uri.test.js.map +1 -1
  213. package/dist/tests/wildcardImportPackageMerge.test.d.ts +1 -0
  214. package/dist/tests/wildcardImportPackageMerge.test.js +97 -0
  215. package/dist/tests/wildcardImportPackageMerge.test.js.map +1 -0
  216. package/dist/tests/workspaceEditUtils.test.js +0 -1
  217. package/dist/tests/workspaceEditUtils.test.js.map +1 -1
  218. package/package.json +12 -11
  219. package/dist/tests/lsp/webpack.testserver.config.js.map +0 -1
@@ -4,7 +4,13 @@
4
4
  *
5
5
  * hoverProvider tests.
6
6
  */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
7
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
+ const assert_1 = __importDefault(require("assert"));
12
+ const vscode_languageserver_1 = require("vscode-languageserver");
13
+ const hoverProvider_1 = require("../languageService/hoverProvider");
8
14
  const testState_1 = require("./harness/fourslash/testState");
9
15
  test('import tooltip - import statement', async () => {
10
16
  const code = `
@@ -93,6 +99,207 @@ test('import tooltip - import statement with stubs', async () => {
93
99
  marker2: '```python\n(module) pyplot\n```\n---\npyplot',
94
100
  });
95
101
  });
102
+ test('method tooltip - docstring from implementation when stub uses non-exported name', async () => {
103
+ const code = `
104
+ // @filename: pyrightconfig.json
105
+ //// {
106
+ //// "useLibraryCodeForTypes": true
107
+ //// }
108
+
109
+ // @filename: test.py
110
+ //// from mylib import foo
111
+ //// foo.[|/*marker*/func|]()
112
+
113
+ // @filename: mylib/__init__.py
114
+ // @library: true
115
+ //// from ._private import Foo as _Foo
116
+ //// foo = _Foo()
117
+
118
+ // @filename: mylib/_private.py
119
+ // @library: true
120
+ //// class Foo:
121
+ //// """Some class documentation."""
122
+ ////
123
+ //// def func(self) -> int:
124
+ //// """Some function documentation."""
125
+ //// return 1
126
+
127
+ // @filename: mylib/__init__.pyi
128
+ // @library: true
129
+ //// class Foo:
130
+ //// def func(self) -> int: ...
131
+ ////
132
+ //// foo: Foo
133
+ `;
134
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
135
+ const marker = state.getMarkerByName('marker');
136
+ state.openFile(marker.fileName);
137
+ state.verifyHover('markdown', {
138
+ marker: '```python\n(method) def func() -> int\n```\n---\nSome function documentation.',
139
+ });
140
+ });
141
+ test('function hover shows source default values for stub ellipsis defaults', async () => {
142
+ const code = `
143
+ // @filename: pyrightconfig.json
144
+ //// {
145
+ //// "useLibraryCodeForTypes": true
146
+ //// }
147
+
148
+ // @filename: test.py
149
+ //// import mylib
150
+ ////
151
+ //// mylib.[|/*marker*/f|](1)
152
+
153
+ // @filename: mylib.pyi
154
+ //// def f(a: int, b: str = ...) -> None: ...
155
+
156
+ // @filename: mylib.py
157
+ //// def f(a: int, b: int = 3) -> None:
158
+ //// ...
159
+ `;
160
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
161
+ const marker = state.getMarkerByName('marker');
162
+ state.openFile(marker.fileName);
163
+ state.verifyHover('markdown', {
164
+ marker: '```python\n(function) def f(a: int, b: str = 3) -> None\n```',
165
+ });
166
+ });
167
+ test('function hover substitutes multiple stub ellipsis defaults from source', async () => {
168
+ const code = `
169
+ // @filename: pyrightconfig.json
170
+ //// {
171
+ //// "useLibraryCodeForTypes": true
172
+ //// }
173
+
174
+ // @filename: test.py
175
+ //// import mylib
176
+ ////
177
+ //// mylib.[|/*marker*/f|]()
178
+
179
+ // @filename: mylib.pyi
180
+ //// def f(a: int = ..., b: str = ...) -> None: ...
181
+
182
+ // @filename: mylib.py
183
+ //// def f(a: int = 3, b: str = "hello") -> None:
184
+ //// ...
185
+ `;
186
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
187
+ const marker = state.getMarkerByName('marker');
188
+ state.openFile(marker.fileName);
189
+ state.verifyHover('markdown', {
190
+ marker: '```python\n(function) def f(a: int = 3, b: str = "hello") -> None\n```',
191
+ });
192
+ });
193
+ test('function hover shows concrete default values when provided by stub', async () => {
194
+ const code = `
195
+ // @filename: pyrightconfig.json
196
+ //// {
197
+ //// "useLibraryCodeForTypes": true
198
+ //// }
199
+
200
+ // @filename: test.py
201
+ //// import mylib
202
+ ////
203
+ //// mylib.[|/*marker*/f|]()
204
+
205
+ // @filename: mylib.pyi
206
+ //// def f(a: int = 3, b: str = "hello") -> None: ...
207
+ `;
208
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
209
+ const marker = state.getMarkerByName('marker');
210
+ state.openFile(marker.fileName);
211
+ state.verifyHover('markdown', {
212
+ marker: '```python\n(function) def f(a: int = 3, b: str = "hello") -> None\n```',
213
+ });
214
+ });
215
+ test('function hover substitutes multiple stub ellipsis defaults for selected overload', async () => {
216
+ const code = `
217
+ // @filename: pyrightconfig.json
218
+ //// {
219
+ //// "useLibraryCodeForTypes": true
220
+ //// }
221
+
222
+ // @filename: test.py
223
+ //// import mylib
224
+ ////
225
+ //// mylib.[|/*marker*/f|](1)
226
+
227
+ // @filename: mylib.pyi
228
+ //// from typing import overload
229
+ ////
230
+ //// @overload
231
+ //// def f(a: int = ..., b: str = ...) -> None: ...
232
+ ////
233
+ //// @overload
234
+ //// def f(a: str = ..., b: str = ...) -> None: ...
235
+ ////
236
+ //// def f(*args, **kwargs) -> None: ...
237
+
238
+ // @filename: mylib.py
239
+ //// def f(a: int = 3, b: str = "hello") -> None:
240
+ //// ...
241
+ `;
242
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
243
+ const marker = state.getMarkerByName('marker');
244
+ state.openFile(marker.fileName);
245
+ state.verifyHover('markdown', {
246
+ marker: '```python\n(function) def f(a: int = 3, b: str = "hello") -> None\n```',
247
+ });
248
+ });
249
+ test('function hover does not substitute unsafe long defaults for stub ellipsis defaults', async () => {
250
+ const longNumber = '9'.repeat(150);
251
+ const code = `
252
+ // @filename: pyrightconfig.json
253
+ //// {
254
+ //// "useLibraryCodeForTypes": true
255
+ //// }
256
+
257
+ // @filename: test.py
258
+ //// import mylib
259
+ ////
260
+ //// mylib.[|/*marker*/f|](1)
261
+
262
+ // @filename: mylib.pyi
263
+ //// def f(a: int, b: str = ...) -> None: ...
264
+
265
+ // @filename: mylib.py
266
+ //// def f(a: int, b: int = ${longNumber}) -> None:
267
+ //// ...
268
+ `;
269
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
270
+ const marker = state.getMarkerByName('marker');
271
+ state.openFile(marker.fileName);
272
+ state.verifyHover('markdown', {
273
+ marker: '```python\n(function) def f(a: int, b: str = ...) -> None\n```',
274
+ });
275
+ });
276
+ test('function hover does not substitute unsafe multiline defaults for stub ellipsis defaults', async () => {
277
+ const code = `
278
+ // @filename: pyrightconfig.json
279
+ //// {
280
+ //// "useLibraryCodeForTypes": true
281
+ //// }
282
+
283
+ // @filename: test.py
284
+ //// import mylib
285
+ ////
286
+ //// mylib.[|/*marker*/f|](1)
287
+
288
+ // @filename: mylib.pyi
289
+ //// def f(a: int, b: str = ...) -> None: ...
290
+
291
+ // @filename: mylib.py
292
+ //// def f(a: int, b: int = """hello
293
+ //// world""") -> None:
294
+ //// ...
295
+ `;
296
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
297
+ const marker = state.getMarkerByName('marker');
298
+ state.openFile(marker.fileName);
299
+ state.verifyHover('markdown', {
300
+ marker: '```python\n(function) def f(a: int, b: str = ...) -> None\n```',
301
+ });
302
+ });
96
303
  test('import tooltip - import reference - stub files', async () => {
97
304
  const code = `
98
305
  // @filename: pyrightconfig.json
@@ -395,4 +602,87 @@ test('hover on __call__ method', async () => {
395
602
  marker2: '```python\n(variable) def foo(a: int) -> int\n```',
396
603
  });
397
604
  });
605
+ test('hover return type remains stable after trivial edit for callable-returning function', () => {
606
+ const code = `
607
+ // @filename: test.py
608
+ //// from collections.abc import Callable
609
+ ////
610
+ //// def [|/*markerA*/a|][**P, R](f: Callable[P, R]):
611
+ //// def [|/*markerB*/b|](*args: P.args, **kwargs: P.kwargs):
612
+ //// return str(f(*args, **kwargs))
613
+ //// return b
614
+ ////
615
+ //// a
616
+ `;
617
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
618
+ const markerA = state.getMarkerByName('markerA');
619
+ state.openFile(markerA.fileName);
620
+ // Baseline call with file fully checked.
621
+ state.program.analyzeFile(markerA.fileUri, vscode_languageserver_1.CancellationToken.None);
622
+ const baselineA = getHoverText(state, 'markerA');
623
+ const baselineB = getHoverText(state, 'markerB');
624
+ assert_1.default.strictEqual(getHoverSignatureLine(baselineA), '(function) def a(f: (**P@a) -> R@a) -> ((**P@a) -> str)', `unexpected baseline hover signature for a: ${baselineA}`);
625
+ assert_1.default.strictEqual(getHoverSignatureLine(baselineB), '(function) def b(**P@a) -> str', `unexpected baseline hover signature for b: ${baselineB}`);
626
+ // Trivial edit: insert trailing whitespace after `return b`.
627
+ const file = state.testData.files.find((f) => f.fileUri.key === markerA.fileUri.key);
628
+ assert_1.default.ok(file, 'expected to find test file in state');
629
+ const fileText = file.content;
630
+ const target = 'return b\n';
631
+ const offset = fileText.indexOf(target);
632
+ assert_1.default.ok(offset >= 0, 'expected to find "return b" in test file');
633
+ state.openFile(file.fileName);
634
+ state.replace(offset + 'return b'.length, 0, ' ');
635
+ // Regression: do not force analysis here. Hover should remain stable.
636
+ const editedA = getHoverText(state, 'markerA');
637
+ const editedB = getHoverText(state, 'markerB');
638
+ assert_1.default.strictEqual(editedA, baselineA, `expected hover for a to remain stable after edit: baseline=${baselineA}, edited=${editedA}`);
639
+ assert_1.default.strictEqual(editedB, baselineB, `expected hover for b to remain stable after edit`);
640
+ });
641
+ test('hover on self-returning nested function does not recurse infinitely', () => {
642
+ const code = `
643
+ // @filename: test.py
644
+ //// def [|/*marker*/outer|]():
645
+ //// def inner():
646
+ //// return inner
647
+ //// return inner
648
+ ////
649
+ //// outer
650
+ `;
651
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
652
+ const marker = state.getMarkerByName('marker');
653
+ state.openFile(marker.fileName);
654
+ const hover = getHoverText(state, 'marker');
655
+ assert_1.default.strictEqual(hover, '```python\n(function) def outer() -> (() -> ...)\n```');
656
+ });
657
+ test('hover on mutually-recursive nested functions does not recurse infinitely', () => {
658
+ const code = `
659
+ // @filename: test.py
660
+ //// def [|/*marker*/outer|]():
661
+ //// def left():
662
+ //// return right
663
+ //// def right():
664
+ //// return left
665
+ //// return left
666
+ ////
667
+ //// outer
668
+ `;
669
+ const state = (0, testState_1.parseAndGetTestState)(code).state;
670
+ const marker = state.getMarkerByName('marker');
671
+ state.openFile(marker.fileName);
672
+ const hover = getHoverText(state, 'marker');
673
+ assert_1.default.strictEqual(hover, '```python\n(function) def outer() -> (() -> (() -> ...))\n```');
674
+ });
675
+ function getHoverText(state, markerName) {
676
+ const marker = state.getMarkerByName(markerName);
677
+ const position = state.convertOffsetToPosition(marker.fileName, marker.position);
678
+ const hover = new hoverProvider_1.HoverProvider(state.program, marker.fileUri, position, 'markdown', vscode_languageserver_1.CancellationToken.None).getHover();
679
+ assert_1.default.ok(hover, `expected hover result for marker ${markerName}`);
680
+ assert_1.default.ok(vscode_languageserver_1.MarkupContent.is(hover.contents), `expected MarkupContent for marker ${markerName}`);
681
+ return hover.contents.value;
682
+ }
683
+ function getHoverSignatureLine(hover) {
684
+ const lines = hover.split('\n');
685
+ assert_1.default.ok(lines.length >= 2, `unexpected hover format: ${hover}`);
686
+ return lines[1];
687
+ }
398
688
  //# sourceMappingURL=hoverProvider.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hoverProvider.test.js","sourceRoot":"","sources":["../../../../../src/tests/hoverProvider.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hoverProvider.test.js","sourceRoot":"","sources":["../../../../../src/tests/hoverProvider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};