Commit fd27621
committed
Auto merge of #14549 - lowr:patch/no-unstable-item-compl-on-stable, r=Veykril
Don't suggest unstable items on stable toolchain
Closes #3020
This PR implements stability check in `ide-completion` so that unstable items are only suggested if you're on nightly toolchain.
It's a bit unfortunate `CompletionContext::check_stability()` is spammed all over the crate, but we should call it before building `CompletionItem` as you cannot get attributes on the item it's completing from that struct. I looked up every callsite of `Builder::add_to()`, `Completions::add[_opt]()`, and`Completions::add_all()` and inserted the check wherever necessary.
The tests are admittedly incomplete in that I didn't add tests for every kind of item as I thought that would be too big and not worthwhile. I copy-pasted some existing basic tests in every test module and adjusted them.File tree
21 files changed
+602
-80
lines changed- crates
- base-db/src
- hir-def/src
- ide-completion/src
- completions
- item_list
- tests
- ide/src
- doc_links
- hover
- rust-analyzer/tests/slow-tests
- test-utils/src
21 files changed
+602
-80
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
| 7 | + | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
15 | | - | |
| 16 | + | |
16 | 17 | | |
17 | 18 | | |
18 | 19 | | |
| |||
102 | 103 | | |
103 | 104 | | |
104 | 105 | | |
105 | | - | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
106 | 114 | | |
107 | 115 | | |
108 | 116 | | |
| |||
166 | 174 | | |
167 | 175 | | |
168 | 176 | | |
169 | | - | |
| 177 | + | |
170 | 178 | | |
171 | 179 | | |
172 | 180 | | |
| |||
205 | 213 | | |
206 | 214 | | |
207 | 215 | | |
208 | | - | |
| 216 | + | |
209 | 217 | | |
210 | 218 | | |
211 | 219 | | |
| |||
247 | 255 | | |
248 | 256 | | |
249 | 257 | | |
250 | | - | |
| 258 | + | |
251 | 259 | | |
252 | 260 | | |
253 | 261 | | |
| |||
286 | 294 | | |
287 | 295 | | |
288 | 296 | | |
289 | | - | |
| 297 | + | |
290 | 298 | | |
291 | 299 | | |
292 | 300 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
269 | 269 | | |
270 | 270 | | |
271 | 271 | | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
272 | 276 | | |
273 | 277 | | |
274 | 278 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
26 | | - | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
181 | 181 | | |
182 | 182 | | |
183 | 183 | | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
184 | 187 | | |
185 | 188 | | |
186 | 189 | | |
| |||
206 | 209 | | |
207 | 210 | | |
208 | 211 | | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
209 | 215 | | |
210 | 216 | | |
211 | 217 | | |
| |||
228 | 234 | | |
229 | 235 | | |
230 | 236 | | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
231 | 240 | | |
232 | 241 | | |
233 | 242 | | |
| |||
241 | 250 | | |
242 | 251 | | |
243 | 252 | | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
244 | 256 | | |
245 | 257 | | |
246 | 258 | | |
| |||
257 | 269 | | |
258 | 270 | | |
259 | 271 | | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
260 | 275 | | |
261 | 276 | | |
262 | 277 | | |
| |||
280 | 295 | | |
281 | 296 | | |
282 | 297 | | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
283 | 301 | | |
284 | 302 | | |
285 | 303 | | |
| |||
304 | 322 | | |
305 | 323 | | |
306 | 324 | | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
307 | 328 | | |
308 | 329 | | |
309 | 330 | | |
| |||
328 | 349 | | |
329 | 350 | | |
330 | 351 | | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
331 | 355 | | |
332 | 356 | | |
333 | 357 | | |
| |||
348 | 372 | | |
349 | 373 | | |
350 | 374 | | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
351 | 378 | | |
352 | 379 | | |
353 | 380 | | |
| |||
364 | 391 | | |
365 | 392 | | |
366 | 393 | | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
367 | 397 | | |
368 | 398 | | |
369 | 399 | | |
| |||
380 | 410 | | |
381 | 411 | | |
382 | 412 | | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
383 | 416 | | |
384 | 417 | | |
385 | 418 | | |
| |||
390 | 423 | | |
391 | 424 | | |
392 | 425 | | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
393 | 429 | | |
394 | 430 | | |
395 | 431 | | |
| |||
404 | 440 | | |
405 | 441 | | |
406 | 442 | | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
407 | 446 | | |
408 | 447 | | |
409 | 448 | | |
| |||
425 | 464 | | |
426 | 465 | | |
427 | 466 | | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
428 | 470 | | |
429 | 471 | | |
430 | 472 | | |
| |||
448 | 490 | | |
449 | 491 | | |
450 | 492 | | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
451 | 496 | | |
452 | 497 | | |
453 | 498 | | |
| |||
462 | 507 | | |
463 | 508 | | |
464 | 509 | | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
465 | 513 | | |
466 | 514 | | |
467 | 515 | | |
| |||
473 | 521 | | |
474 | 522 | | |
475 | 523 | | |
| 524 | + | |
| 525 | + | |
476 | 526 | | |
477 | 527 | | |
478 | 528 | | |
| |||
494 | 544 | | |
495 | 545 | | |
496 | 546 | | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
497 | 550 | | |
498 | 551 | | |
499 | 552 | | |
| |||
511 | 564 | | |
512 | 565 | | |
513 | 566 | | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
514 | 570 | | |
515 | 571 | | |
516 | 572 | | |
| |||
529 | 585 | | |
530 | 586 | | |
531 | 587 | | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
532 | 591 | | |
533 | 592 | | |
534 | 593 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
172 | 172 | | |
173 | 173 | | |
174 | 174 | | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
175 | 212 | | |
176 | 213 | | |
177 | 214 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
270 | | - | |
271 | | - | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
272 | 274 | | |
273 | 275 | | |
274 | 276 | | |
| |||
315 | 317 | | |
316 | 318 | | |
317 | 319 | | |
318 | | - | |
319 | | - | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
320 | 324 | | |
321 | 325 | | |
322 | 326 | | |
| |||
Lines changed: 17 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
158 | 169 | | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
| 170 | + | |
168 | 171 | | |
169 | 172 | | |
170 | 173 | | |
| |||
0 commit comments