22110 Commits

Author SHA1 Message Date
Lukas Wirth
a05564370d
Merge pull request #19550 from Veykril/push-rsskztqzwuzk
refactor: Turn `LifetimeRef` into an enum
2025-04-09 14:09:59 +00:00
Lukas Wirth
07212140db refactor: Turn LifetimeRef into an enum
This makes things more structured
2025-04-09 15:58:06 +02:00
Lukas Wirth
f4747f2617
Merge pull request #19255 from geetanshjuneja/master
Add children modules feature
2025-04-09 09:53:25 +00:00
Lukas Wirth
dc363f7f77
Merge pull request #19462 from Veykril/push-ypvprvvwkyll
refactor: Lower type-refs before type inference
2025-04-09 08:54:28 +00:00
Lukas Wirth
1fd9520c92 refactor: Lower type-refs before type inference
This refactors how we deal with items in hir-def lowering.

- It now lowers all of them through an "ExpressionStore" (kind of a misnomer as this point) as their so called *Signatures.
- We now uniformly lower type AST into TypeRefs before type inference.
- Likewise, this moves macro expansion out of type inference, resulting in a single place where we do non-defmap macro expansion.
- Finally, this PR removes a lot of information from ItemTree, making the DefMap a lot less likely to be recomputed and have it only depend on actual early name resolution related information (not 100% true, we still have ADT fields in there but thats a follow up removal).
2025-04-09 10:43:23 +02:00
David Barsky
f3f6b5f4f1
Merge pull request #19536 from jackh726/closure-infer
Port closure inference from rustc
2025-04-08 14:17:30 +00:00
Lukas Wirth
fa53aab6f1
Merge pull request #19541 from Veykril/push-twqrorwqzmwv
fix(auto-import): Prefer imports of matching types for argument lists
2025-04-08 07:32:52 +00:00
Lukas Wirth
7255ef1375 fix(auto-import): Prefer imports of matching types for argument lists 2025-04-08 09:21:32 +02:00
jackh726
bc3e9d9fcb Port closure inference from rustc 2025-04-07 21:48:01 +00:00
geetanshjuneja
8f6d32cf62 cargo xtask tidy 2025-04-07 21:41:26 +05:30
geetanshjuneja
1f7c3e8b92 added children modules 2025-04-07 21:14:01 +05:30
Lukas Wirth
c5882732e6
Merge pull request #19425 from ConradIrwin/drop-drop-glue-goo
Tidy up drop glue notification
2025-04-07 10:32:50 +00:00
Lukas Wirth
33c3f67764
Merge pull request #19511 from snprajwal/fixmes
chore: clean up some FIXMEs
2025-04-07 10:30:46 +00:00
Lukas Wirth
a2783704bf
Merge pull request #19432 from ShoyuVanilla/issue-19431
fix: Yet another false positive invalid cast diagnostic
2025-04-07 10:29:54 +00:00
Lukas Wirth
6832c5a961
Merge pull request #19512 from BenjaminBrienen/update-stdx
Upstream stdx changes
2025-04-07 07:14:01 +00:00
BenjaminBrienen
428ee50540 upstream stdx changes 2025-04-06 23:55:12 +02:00
Lukas Wirth
7e00f91a72
Merge pull request #19531 from Veykril/push-kxyrpznnllkx
fix: Fix `format_args` lowering for >=1.87
2025-04-06 08:18:23 +00:00
Lukas Wirth
e7ce86ddea fix: Fix format_args lowering for >=1.87 2025-04-06 10:05:56 +02:00
Lukas Wirth
bec545920a
Merge pull request #19447 from Natural-selection1/add_impl_for
add more completion about "impl"
2025-04-05 13:01:51 +00:00
Lukas Wirth
1d1771c15f
Merge pull request #19501 from ChayimFriedman2/macro-expansion
fix: Fix a bug in MBE expansion that arose from incorrect fixing of an older bug in MBE
2025-04-05 13:00:30 +00:00
Jonathan Chan Kwan Yin
1428aa9b6f
the rustdoc file prefix for constants is "constant" not "const" 2025-04-05 18:16:39 +08:00
Lukas Wirth
55c8cdeafb
Merge pull request #19519 from snprajwal/project-control-no-deps
feat(project-model): provide flag for no deps
2025-04-04 16:50:27 +00:00
David Barsky
9aa99eec60 internal: fix salsa-ified crate graph working with lazy project discovery 2025-04-04 12:14:55 -04:00
Lukas Wirth
2261e4e892
Merge pull request #19522 from davidbarsky/davidbarsky/fix-panic-in-view-crate-graph
internal: fix panic in `view_crate_graph`
2025-04-04 16:00:18 +00:00
Lukas Wirth
8b6621a138
Merge pull request #19515 from jrmuizel/multiple-definitions
fix: don't drop references with more than one definition.
2025-04-04 15:50:33 +00:00
David Barsky
069de21793 internal: fix panic in view_crate_graph 2025-04-04 11:38:19 -04:00
Jeff Muizelaar
e9d997e97d fix: don't drop references with more than one definition.
Implicit field references during struct initialization were
being dropped because get_definition was returning None because
there were multiple definitions.

This adds a new helper, `get_defintions`, that supports returning
more than one definition for a given token and hooks it up.

Fixes #19393
2025-04-04 11:37:14 -04:00
BenjaminBrienen
2462624a7d prefer default over new 2025-04-04 15:49:50 +02:00
Prajwal S N
865681d779
feat(project-model): provide flag for no deps
A Cargo project can now be built without any dependency metadata being fetched.

Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-04 18:57:10 +05:30
Prajwal S N
72c7cd3869
chore: clean up some FIXMEs
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-04 17:40:56 +05:30
Prajwal S N
094407aba4
feat(proc-macro-srv): support metadata version 10
Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-03 14:58:59 +05:30
Prajwal S N
e02d76aa61
fix(ide-assists): remove AssistKind::None
This was being used by a single assist, which qualifies under the "refactor"
kind. The variant has been removed, and all usages updated accordingly.

Signed-off-by: Prajwal S N <prajwalnadig21@gmail.com>
2025-04-03 14:38:31 +05:30
Chayim Refael Friedman
3953b604ce Fix a bug in MBE expansion that arose from incorrect fixing of an older bug in MBE
Specifically, #18744 was the PR that was supposed to fix the old bug, but it fixed it incorrectly (and didn't add a test!) The underlying reason was that we marked metavariables in expansions as joint if they were joint in the macro call, which is incorrect.

This wrong fix causes other bug, #19497, which this PR fixes by removing the old (incorrect) fix.
2025-04-01 21:05:51 +03:00
Lukas Wirth
c7845a6d70
Merge pull request #19494 from Veykril/push-uzmzppouxuvr
chore: Remove unnecessary `Arc` clones
2025-04-01 11:29:33 +00:00
Lukas Wirth
1c7f253ec9 chore: Remove unnecessary Arc clones 2025-04-01 13:18:37 +02:00
Lukas Wirth
bcc8e3a0b6 chore: Replace some invokes with invoke_actual in hir-ty 2025-04-01 13:13:20 +02:00
Chayim Refael Friedman
cdcadb4265
Merge pull request #19492 from ChayimFriedman2/experiment
Avoid relying on `block_def_map()` needlessly
2025-04-01 04:08:26 +00:00
Chayim Refael Friedman
2d99b5ead5 Avoid relying on block_def_map() needlessly
We can compute the wanted information from the block's interned data.
2025-04-01 06:58:21 +03:00
Ross Delinger
1b49b41248 fix: Fix panic in progress due to splitting unicode incorrectly 2025-03-31 17:32:02 -07:00
Lukas Wirth
1e1571e1c8 fix: Fix new nightly lints 2025-03-31 13:27:54 +02:00
Lukas Wirth
2b382eb772 fix: Cleanup param name inlay hint filtering 2025-03-31 09:40:57 +02:00
Lukas Wirth
faf1b49a9a fix: Fix, clarify and require a value for proc_macro_cwd of CrateData 2025-03-29 08:08:48 +01:00
Hegui Dai
e3ec43319a update test 2025-03-28 18:28:56 +08:00
Hegui Dai
307cd68fc6 move "impl<> for <>" and test about it 2025-03-28 18:25:32 +08:00
Lukas Wirth
2e1ff255ae
Merge pull request #19375 from ChayimFriedman2/do-not-complete
feat: Allow crate authors to control completion of their things
2025-03-28 09:06:19 +00:00
Chayim Refael Friedman
246d678d77 Fix a bug in orphan rules calculation
Where a fundamental type applied twice wasn't considered local.
2025-03-28 05:37:29 +03:00
Chayim Refael Friedman
7b584ef9bf Allow crate authors to control completion of their things
Via the new `#[rust_analyzer::completions(...)]` attribute.

Also fix a bug with existing settings for that where the paths wouldn't resolve correctly.
2025-03-27 14:01:26 +02:00
Lukas Wirth
5bbf2ce419
Merge pull request #19460 from Veykril/push-krmvxxvrlmyx
fix: Fix `format_args` lowering using wrong integer suffix
2025-03-27 08:12:29 +00:00
Lukas Wirth
1fb465fa5e
Merge pull request #19459 from Veykril/push-swywyozvsqow
refactor: Shuffle some unsafety around in proc-macro-srv
2025-03-27 07:57:57 +00:00
Lukas Wirth
9a5a11fb30 fix: Fix format_args lowering using wrong integer suffix 2025-03-27 08:56:15 +01:00