Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
287 commits
Select commit Hold shift + click to select a range
ec8426d
Merge pull request #20411 from BenjaminBrienen/duplicate-field
lnicola Aug 9, 2025
e3d99dd
fix: generate function by indet token
Hmikihiro Aug 9, 2025
840d813
Merge pull request #20412 from Hmikihiro/fix_generate_function_genera…
Veykril Aug 9, 2025
eb2bbbb
Implement next trait solver
jackh726 Aug 1, 2025
eca3152
Merge pull request #20409 from A4-Tacks/minicore-write
ChayimFriedman2 Aug 10, 2025
6b8a812
parser: fix parsing of trait bound polarity and for-binders
npmccallum Aug 10, 2025
8c0f4b4
Fix extract_expressions_from_format_string on write!
A4-Tacks Aug 10, 2025
949c649
Merge pull request #20417 from npmccallum/syntax
ChayimFriedman2 Aug 10, 2025
e526663
Merge pull request #20418 from A4-Tacks/fix-extract-expr-from-fmtstr-…
ChayimFriedman2 Aug 10, 2025
b9f2bb7
internal: Make flycheck generational
ShoyuVanilla Aug 10, 2025
bd46f7b
Merge pull request #20419 from ShoyuVanilla/flyck-gen
ShoyuVanilla Aug 10, 2025
802fa92
Add config option to exclude locals from doc search
iorizu Aug 10, 2025
00d000c
Fix minor things
iorizu Aug 10, 2025
af10cb7
Prepare for merging from rust-lang/rust
invalid-email-address Aug 11, 2025
0585bdf
Merge ref '21a19c297d4f' from rust-lang/rust
invalid-email-address Aug 11, 2025
6bb9af0
Merge pull request #20424 from rust-lang/rustc-pull
lnicola Aug 11, 2025
7daaa4e
hotfix: Update flycheck diagnostics generation
ShoyuVanilla Aug 11, 2025
1b5dbd9
Merge pull request #20429 from ShoyuVanilla/master
Veykril Aug 11, 2025
2e4c8e2
Merge pull request #20420 from iorizu/doc-symbols-filter
ChayimFriedman2 Aug 11, 2025
380d89d
Make import sorting order follow 2024 edition style
ShoyuVanilla Aug 10, 2025
6c3c620
fix: Panic while trying to clear old diagnostics while there's nothing
ShoyuVanilla Aug 11, 2025
c14814c
Merge pull request #20434 from ShoyuVanilla/diag-fix-again
ShoyuVanilla Aug 11, 2025
875c158
fix: Implement default member to resolve IdentPat
sgasho Aug 11, 2025
40b8d41
Merge pull request #20432 from sgasho/fix/20215_implement_default_mem…
ChayimFriedman2 Aug 12, 2025
49ebe9f
Only import the item in "Unqualify method call" if needed
ChayimFriedman2 Aug 13, 2025
6e4644f
Merge pull request #20329 from jackh726/next-trait-solver-querify
Veykril Aug 13, 2025
8d24747
Merge Trait and TraitAlias handling
fee1-dead Aug 4, 2025
0d2f8af
add test for trait alias projections
fee1-dead Aug 4, 2025
b416845
Print fields of interned IDs in hir-ty instead of just the ID
Veykril Aug 13, 2025
2a50971
Fix metrics checking out repos into toplevel folder instead of `target`
Veykril Aug 13, 2025
b62116b
fix errors after rebase
fee1-dead Aug 13, 2025
4bbbe6e
fix: Attach db for inlay hint compute
Veykril Aug 13, 2025
0387ecb
Merge pull request #20444 from rust-lang/veykril/push-snuuupqnrqzx
Veykril Aug 13, 2025
39ac6e1
update a few fixmes, and one trivial improvement
lcnr Aug 13, 2025
178007c
Merge pull request #20445 from rust-lang/veykril/push-twmmuyzwtxno
Veykril Aug 13, 2025
9b08901
Merge pull request #20376 from fee1-dead/traitalias
Veykril Aug 13, 2025
00941b3
implement `type_of_opaque`
lcnr Aug 13, 2025
5849fef
layout_of uses `PostAnalysis`
lcnr Aug 13, 2025
67b1e32
manually normalize alias
lcnr Aug 13, 2025
b7e4b28
Merge pull request #20446 from lcnr/kinda-unhelpful-3
Veykril Aug 13, 2025
1d57d78
Fix dead link to Cargo.toml in documentation
donni-h Aug 13, 2025
8ef6a8f
[internal] Update to the latest @vscode/vsce for extension build
Wilfred Aug 13, 2025
3d16f1c
Merge pull request #20450 from Wilfred/update_vsce
lnicola Aug 13, 2025
a5e2a53
Merge pull request #20448 from donni-h/patch-2
ChayimFriedman2 Aug 13, 2025
fbf642e
Merge pull request #20390 from A4-Tacks/if-else-comp-in-args-or-let
ChayimFriedman2 Aug 13, 2025
23e8a1e
Don't panic if unable to identify host in metrics
jackh726 Aug 13, 2025
8e5818d
Shift vars when mapping Dyn
jackh726 Aug 13, 2025
861f912
Fix indent for convert_match_to_let_else
A4-Tacks Aug 14, 2025
c78177b
Add guard to let-chain for replace_match_with_if_let
A4-Tacks Aug 14, 2025
82006f9
Merge pull request #20456 from A4-Tacks/match-with-if-let-guard
ShoyuVanilla Aug 14, 2025
6e55052
Merge pull request #20455 from A4-Tacks/fix-indent-conv-match-to-let-…
ShoyuVanilla Aug 14, 2025
6772f18
Track diagnostic generations per package
Veykril Aug 14, 2025
e9ca08a
Merge pull request #20459 from rust-lang/veykril/push-pwzyxwuozkrq
ShoyuVanilla Aug 14, 2025
58ec13d
feat: hint at unterminated strings in unknown prefix errors
avrabe Aug 11, 2025
50690b1
Merge pull request #20425 from avrabe/feat/unterminated-string-hints
ChayimFriedman2 Aug 14, 2025
0dbacbc
Merge pull request #20453 from jackh726/nts-part2
Veykril Aug 14, 2025
cc3c5cf
Add test for webrender-2022 metrics
jackh726 Aug 14, 2025
06336ef
add comment
jackh726 Aug 15, 2025
1f12c62
Merge pull request #20462 from jackh726/nts-part3
Veykril Aug 15, 2025
b38dd2a
Use a more specific error message when talking about the server logs
SomeoneToIgnore Aug 15, 2025
8e7cca8
Merge pull request #20467 from SomeoneToIgnore/error-message
Veykril Aug 15, 2025
b9861fb
fix: Make lang items query properly filter out overwritten/excluded s…
ShoyuVanilla Aug 17, 2025
029cecf
Merge pull request #20475 from ShoyuVanilla/analysis-std-panic
ChayimFriedman2 Aug 17, 2025
9c7ef48
Convert some of dyn_compatibility to next-solver and remove generic_p…
jackh726 Aug 8, 2025
a25a1e3
Convert more of dyn_compatibility to next-solver
jackh726 Aug 8, 2025
3f78a1f
impl HirDisplay for next_solver::Ty
jackh726 Aug 9, 2025
faf0dd9
Deduplicate layout_of_adt
jackh726 Aug 10, 2025
1b03009
Convert some of mir/eval to next-solver types
jackh726 Aug 10, 2025
73a5134
Change direct_super_traits to use generic_predicates_for_param_ns
jackh726 Aug 11, 2025
418f419
Cleanup assoc_type_shorthand_candidates
jackh726 Aug 11, 2025
064f1c7
Switch associated_type_shorthand_candidates to lower_nextsolver
jackh726 Aug 11, 2025
d10e5d1
Convert more of dyn_compatibility to next-solver
jackh726 Aug 12, 2025
cd0e095
Switch generics_require_sized_self to next solver
jackh726 Aug 12, 2025
00856fc
Remove all_super_traits in dyn_compatibility
jackh726 Aug 12, 2025
f92ca61
Replace layout_of_ty with layout_of_ty_ns
jackh726 Aug 12, 2025
05bc181
Switch TraitRef in hir::TraitRef to next solver
jackh726 Aug 13, 2025
49f1660
Use impl_trait_ns in Impl::trait_ref
jackh726 Aug 13, 2025
e5d320f
Remove a bunch of stuff from chalk_db
jackh726 Aug 13, 2025
5c89346
Add new_empty_tuple
jackh726 Aug 15, 2025
0e2b63c
Update fixme
jackh726 Aug 15, 2025
3e41e85
Add fixme to associated_ty_item_bounds
jackh726 Aug 15, 2025
058a398
Add FIXME in named_associated_type_shorthand_candidates
jackh726 Aug 15, 2025
3486a2c
Remove fixme comment
jackh726 Aug 15, 2025
37a352d
Merge pull request #20454 from jackh726/next-trait-solver-next
ShoyuVanilla Aug 17, 2025
af8988c
Merge pull request #20442 from ChayimFriedman2/unqualify
ShoyuVanilla Aug 18, 2025
b9d225b
Auto-attach database in `Analysis` calls
Veykril Aug 16, 2025
2ffa022
Merge pull request #20470 from rust-lang/veykril/push-wppxsntzqtou
Veykril Aug 18, 2025
8eaa4ad
user facing code should use not use `PostAnalysis`
lcnr Aug 13, 2025
51524e0
Merge pull request #20447 from lcnr/typing-mode
ShoyuVanilla Aug 19, 2025
3141739
Optimize icon
lumiscosity Aug 19, 2025
d8b4700
Merge pull request #20483 from lumiscosity/optimize-icon
lnicola Aug 20, 2025
4a9b73b
Attach the DB in symbol queries
ChayimFriedman2 Aug 21, 2025
ff2b186
Merge pull request #20496 from ChayimFriedman2/symbols-attach
ChayimFriedman2 Aug 21, 2025
73d1aa9
Attach the DB when mapping the result of `world_symbols()`
ChayimFriedman2 Aug 21, 2025
fa7659d
Merge pull request #20497 from ChayimFriedman2/symbols-attach2
ChayimFriedman2 Aug 21, 2025
b5e3230
Remove unnecessary `salsa::attach()` calls
ChayimFriedman2 Aug 21, 2025
d515547
Merge pull request #20502 from ChayimFriedman2/attach-db-3
ChayimFriedman2 Aug 21, 2025
99576aa
fix: Infinite recursion while lowering assoc type bounds from supertr…
ShoyuVanilla Aug 21, 2025
e901386
Merge pull request #20504 from ShoyuVanilla/ethereum-madness
ChayimFriedman2 Aug 21, 2025
b20ddc2
Fix indent for move_guard_to_arm_body
A4-Tacks Aug 22, 2025
cf478a0
Fix panic in syntax_highlighting
Veykril Aug 22, 2025
cf358c0
Merge pull request #20506 from Veykril/veykril/push-xlytslrrylzq
ShoyuVanilla Aug 22, 2025
3868f8a
fix: convert_integer_literal not on selected
A4-Tacks Aug 22, 2025
c9fbcdc
Add let in let-chain completion support
A4-Tacks Aug 22, 2025
183fbdc
Fix `else` completion in `let _ = if x {} $0`
A4-Tacks Aug 23, 2025
a9973f6
Merge pull request #20511 from A4-Tacks/fix-conv-int-lit-on-selected
ChayimFriedman2 Aug 23, 2025
4b077a9
Merge pull request #20518 from A4-Tacks/fix-else-in-in-let
ChayimFriedman2 Aug 23, 2025
086eeb0
Merge pull request #20513 from A4-Tacks/let-in-let-chain
ChayimFriedman2 Aug 23, 2025
4715c6d
Add an option to remove reborrows from adjustment inlay hints
ChayimFriedman2 Aug 23, 2025
5e81912
replace_arith_op not applicable on selected
A4-Tacks Aug 22, 2025
6de4860
Merge pull request #20512 from A4-Tacks/arith-op-not-on-selected
ChayimFriedman2 Aug 24, 2025
c92af4d
Add ReturnExpr completion suggest
A4-Tacks Aug 22, 2025
d50f0c7
Merge pull request #20507 from A4-Tacks/suggest-return-expr
ChayimFriedman2 Aug 24, 2025
31245ca
Fix opaque generics
ChayimFriedman2 Aug 24, 2025
80f4a79
Merge pull request #20523 from ChayimFriedman2/opaque-generics
ShoyuVanilla Aug 24, 2025
5ddf684
fix: Masquerade as nightly cargo when invoking flycheck with `-Zscript`
ShoyuVanilla Aug 24, 2025
ca42d07
Fix rust-analyzer-contributors reference
emmanuel-ferdman Aug 24, 2025
781e026
Merge pull request #20529 from emmanuel-ferdman/master
ShoyuVanilla Aug 24, 2025
56bc9c3
Fix ExprStmt delete semicolon for toggle_macro_delimiter
A4-Tacks Aug 25, 2025
a0aa1c1
Cache trait solving across queries in the same revision
ChayimFriedman2 Aug 24, 2025
aa49c0b
Normalize all types when finishing inference
ChayimFriedman2 Aug 25, 2025
4b5bb18
Don't map Chalk's `Normalize` to next solver's `NormalizesTo`
ChayimFriedman2 Aug 25, 2025
769f164
Merge pull request #20528 from ShoyuVanilla/nightly-zscript
ChayimFriedman2 Aug 25, 2025
69c25d1
Merge pull request #20423 from ShoyuVanilla/import-2024
ChayimFriedman2 Aug 25, 2025
05a6199
Merge pull request #20537 from ChayimFriedman2/new-solver-normalize
ShoyuVanilla Aug 26, 2025
daeb540
Merge pull request #20520 from ChayimFriedman2/reborrow
ShoyuVanilla Aug 26, 2025
3b0352e
Merge pull request #20509 from A4-Tacks/fix-move-guard-to-arm-indent
ShoyuVanilla Aug 26, 2025
36d8f4e
Merge pull request #20534 from A4-Tacks/tog-macro-delim-semicolon
ShoyuVanilla Aug 26, 2025
7375e2c
Merge pull request #20399 from rust-lang/veykril/push-klrwvmzokqwu
ShoyuVanilla Aug 26, 2025
83f22cc
Remove `SolverDefId::ForeignId`
ChayimFriedman2 Aug 26, 2025
ab5113a
Merge pull request #20545 from ChayimFriedman2/ns-foreign
lnicola Aug 26, 2025
28a248f
In highlight_related, when on an unsafe block, don't highlight unsafe…
ChayimFriedman2 Aug 26, 2025
035bed8
Merge pull request #20527 from ChayimFriedman2/cache-next-solver
ShoyuVanilla Aug 27, 2025
54d36de
Merge pull request #20547 from ChayimFriedman2/highlight-related-unsa…
lnicola Aug 27, 2025
f31a378
Attach the db in one more place in highlighting
ChayimFriedman2 Aug 27, 2025
da33061
Merge pull request #20553 from ChayimFriedman2/ns-highlight-attach
ChayimFriedman2 Aug 27, 2025
0a55022
Add progress bars to more places in analysis-stats
ChayimFriedman2 Aug 28, 2025
c36b75b
Don't require a full `InferenceTable` for `CastTy`
ChayimFriedman2 Aug 28, 2025
85d383f
Merge pull request #20561 from ChayimFriedman2/no-table-for-you
ChayimFriedman2 Aug 28, 2025
dce4f30
When mapping next-solver's `dyn` type, add `Self` (aka. bound var ^1.…
ChayimFriedman2 Aug 28, 2025
37048a0
Merge pull request #20560 from ChayimFriedman2/analysis-stats-improve
Veykril Aug 29, 2025
d396d2f
Bump tracing-subscriber from 0.3.19 to 0.3.20
dependabot[bot] Aug 29, 2025
9916ee3
Merge pull request #20569 from rust-lang/dependabot/cargo/tracing-sub…
davidbarsky Aug 29, 2025
fd996d0
Merge pull request #20563 from ChayimFriedman2/ns-projection-dyn-auto…
ShoyuVanilla Aug 30, 2025
823101e
Pass `--target` before `--` for `cargo rustc`
Elliot-Roberts Aug 30, 2025
dada5f4
Merge pull request #20579 from Elliot-Roberts/fix-double-target-option
ChayimFriedman2 Aug 30, 2025
a324fe9
Make sense of the mess that were (are) different kind of generics in …
ChayimFriedman2 Sep 2, 2025
dd75ad4
Deduplicate methods in completion by function ID and not by name
ChayimFriedman2 Sep 2, 2025
dfaff28
Merge pull request #20587 from ChayimFriedman2/private-inherent
lnicola Sep 2, 2025
2127c2d
Merge pull request #20586 from ChayimFriedman2/placeholder-ns
ShoyuVanilla Sep 3, 2025
169013d
Fix typo in config
ChayimFriedman2 Sep 4, 2025
d5cb7e7
Add a regression test for a fixed new trait solver bug
ChayimFriedman2 Sep 4, 2025
dfc0433
Merge pull request #20606 from ChayimFriedman2/reborrow-config-typo
ChayimFriedman2 Sep 4, 2025
a5872e9
Merge pull request #20607 from ChayimFriedman2/ns-dyn-mismatch
ChayimFriedman2 Sep 4, 2025
7ff5a3d
Upgrade rustc crates
ChayimFriedman2 Sep 4, 2025
3b7313b
Merge pull request #20609 from ChayimFriedman2/update-rustc
ShoyuVanilla Sep 5, 2025
b9b235a
Fix indent for unresolved_field fixes
A4-Tacks Sep 5, 2025
a5bb60b
Add allow `else` keyword completion in LetStmt
A4-Tacks Sep 6, 2025
6da8094
Improve make::struct_ field_list whitespace
A4-Tacks Sep 7, 2025
1fa24ce
Merge pull request #20626 from A4-Tacks/make-record-ws
lnicola Sep 8, 2025
c9e5e40
Merge pull request #20620 from A4-Tacks/let-else-completion
lnicola Sep 8, 2025
a21866a
Remove support for register_attr
Wilfred Sep 8, 2025
bb5b153
feat: support navigation on primitives
rmehri01 Sep 8, 2025
e665f6f
Merge pull request #20631 from Wilfred/remove_register_attr
ChayimFriedman2 Sep 8, 2025
224428d
Clarify intro in README and manual
Wilfred Sep 8, 2025
1e1886a
Merge pull request #20633 from Wilfred/improve_intro
ChayimFriedman2 Sep 8, 2025
a6a53ac
impl TryToNav for BuiltinType instead
rmehri01 Sep 8, 2025
fc4450b
add test
rmehri01 Sep 8, 2025
2ffa851
make TryToNav take Semantics instead of RootDatabase
rmehri01 Sep 8, 2025
152c0d6
Merge pull request #20632 from rmehri01/navigation-on-prims
ChayimFriedman2 Sep 8, 2025
17943cc
Skip flycheck for workspace if it is already being checked
iorizu Sep 8, 2025
e8206d0
Update documentation about how to build the RA book
Kobzol Sep 9, 2025
a1a1ed2
Add a FAQ entry about RA and Cargo interaction
Kobzol Sep 9, 2025
2079d11
Fix LifetimeParam::lifetime_bounds invalid implement
A4-Tacks Sep 7, 2025
564ba7c
Merge pull request #20638 from Kobzol/book-share-cache
ChayimFriedman2 Sep 9, 2025
d09f3d8
Merge pull request #20624 from A4-Tacks/fix-syn-lifetime-bounds
ChayimFriedman2 Sep 9, 2025
a69ac55
Resolve paths to snapshot test libraries absolutely
ChayimFriedman2 Sep 9, 2025
74a8f74
Expand target info to include the architecture
ChayimFriedman2 Sep 9, 2025
d6638e9
Make `#[target_feature]` safe always on WASM
ChayimFriedman2 Sep 9, 2025
0fad524
WIP switch inference table to next-solver
jackh726 Aug 13, 2025
69140ec
Fix failing tests and fill-in missing details
ShoyuVanilla Aug 29, 2025
0cce47c
Merge pull request #20578 from ShoyuVanilla/inftbl
ChayimFriedman2 Sep 9, 2025
54c8cd5
Merge pull request #20639 from ChayimFriedman2/update-test-abs
davidbarsky Sep 9, 2025
8764ecf
Merge pull request #20613 from A4-Tacks/diag-unresolved-field-fixes-ws
davidbarsky Sep 9, 2025
ce2f518
Upgrade rustc crates and handle changes to canonicalization
ChayimFriedman2 Sep 9, 2025
8407376
Adopt even more custom types in the new solver
ChayimFriedman2 Sep 9, 2025
1acb4c2
An associated type is not a projection!
ChayimFriedman2 Aug 28, 2025
4a4b77f
Properly handle normalization
ChayimFriedman2 Sep 10, 2025
98d863c
Merge pull request #20647 from ChayimFriedman2/ns-projections
ShoyuVanilla Sep 10, 2025
84097a1
Merge pull request #20645 from ChayimFriedman2/update-rustc
ShoyuVanilla Sep 10, 2025
b2b33f9
Always coerce in a cast, even when there are unknown types
ChayimFriedman2 Sep 10, 2025
1800ec1
Merge pull request #20649 from ChayimFriedman2/cast-unknown
ShoyuVanilla Sep 10, 2025
2d87bc3
Fix empty generic param list for generate_function
A4-Tacks Sep 11, 2025
7f38c05
Merge pull request #20653 from A4-Tacks/gen-function-empty-gen-param
lnicola Sep 11, 2025
fa2f5f9
Merge pull request #20642 from ChayimFriedman2/wasm-safe
ShoyuVanilla Sep 11, 2025
68217c7
Minor refactoring
iorizu Sep 8, 2025
8a574ca
Fix extra semicolon before else in let-stmt
A4-Tacks Sep 12, 2025
c307fd8
Merge pull request #20657 from A4-Tacks/fix-before-else-incomplete-let
lnicola Sep 13, 2025
c2e1012
Merge pull request #20635 from iorizu/fix-double-flycheck
ShoyuVanilla Sep 14, 2025
9f850ce
fix: Infinite loop while elaborting predicates
ShoyuVanilla Sep 11, 2025
d6d3c4b
Merge pull request #20654 from ShoyuVanilla/predicates
ChayimFriedman2 Sep 14, 2025
5025bfa
Improve `rust-analyzer diagnostics`
ChayimFriedman2 Sep 10, 2025
55b8d4e
Don't mark unknown type as implementing every notable trait
ChayimFriedman2 Sep 15, 2025
91f32ed
Add regression tests to some S-blocked-on-new-solver issues
ChayimFriedman2 Sep 15, 2025
4515e78
Merge pull request #20666 from ChayimFriedman2/ns-cleanup1
ChayimFriedman2 Sep 15, 2025
03e3830
Merge pull request #20665 from ChayimFriedman2/error-notable
ShoyuVanilla Sep 15, 2025
c88fb50
Merge pull request #20652 from ChayimFriedman2/cli-diags
lnicola Sep 15, 2025
f40e71c
Add Regression Test For The One And The Only Issue #5514
ChayimFriedman2 Sep 15, 2025
3c82a25
Merge pull request #20667 from ChayimFriedman2/ns-cleanup2
ChayimFriedman2 Sep 15, 2025
f6a7da8
Add a testing guide
ChayimFriedman2 Sep 15, 2025
af5ca03
Merge pull request #20669 from ChayimFriedman2/testing-guide
lnicola Sep 15, 2025
4e28612
Port a bunch of stuff from rustc and fix a bunch of type mismatches/d…
ChayimFriedman2 Sep 15, 2025
487cdbc
fix: More precise clause filtering for `explicit_*_predicates_of`
ShoyuVanilla Sep 15, 2025
933cce6
Merge pull request #20671 from ShoyuVanilla/explicit-preds-fix
ChayimFriedman2 Sep 15, 2025
181bd11
fix: Fix expand macro recursively not working correctly for nested ma…
Veykril Sep 5, 2025
8a9ec5d
fix: Only compute unstable paths on nightly toolchains for IDE features
Veykril Aug 23, 2025
9699d35
Workaround lsp-types typo
Veykril Aug 7, 2025
fd28cc8
Add more workaround hacks for incorrect startup diagnostics
Veykril Aug 7, 2025
b4151f8
Merge pull request #20517 from Veykril/veykril/push-wrurmtqppzus
Veykril Sep 16, 2025
16feb82
Merge pull request #20402 from rust-lang/veykril/push-pursotqxutsx
Veykril Sep 16, 2025
1b3c3a8
Merge pull request #20612 from Veykril/veykril/push-vzuykrsxvrts
Veykril Sep 16, 2025
f71f756
Fix "sync-from-ra" for `rust-lang/rust`
ShoyuVanilla Sep 16, 2025
dfa11e7
Merge pull request #20677 from ShoyuVanilla/fix-ena
davidbarsky Sep 16, 2025
ad19341
Merge pull request #20379 from skewb1k/fix/consistent-hover-doc-breaks
ChayimFriedman2 Sep 17, 2025
6e10163
Add the `rust-analyzer.semanticHighlighting.comments.enable` configur…
btj Sep 17, 2025
1718127
Merge pull request #20583 from btj/comments-enable
ChayimFriedman2 Sep 17, 2025
28b0e4e
Fix applicable on variant field for change_visibility
A4-Tacks Sep 17, 2025
bb7cdc2
Merge pull request #20682 from A4-Tacks/fix-change-vis-applicable-on-…
ShoyuVanilla Sep 17, 2025
a520c46
Merge pull request #20664 from ChayimFriedman2/coerce-ns
ChayimFriedman2 Sep 18, 2025
7e270ab
chore: Update rustc deps
ShoyuVanilla Sep 18, 2025
42466b5
Merge pull request #20690 from ShoyuVanilla/update-rustc
lnicola Sep 18, 2025
c6b4f6f
Bump rustc crates again
lnicola Sep 18, 2025
4f24cc6
Merge pull request #20691 from lnicola/bump-rustc-again
ShoyuVanilla Sep 18, 2025
60f0407
fix: Fix `indexmap` with `in-rust-tree`
ShoyuVanilla Sep 18, 2025
ddbfd3a
Merge pull request #20693 from ShoyuVanilla/fix-indexmap-in-tree
lnicola Sep 18, 2025
3ba8b8e
minor: Yet another rustc crates bump
ShoyuVanilla Sep 18, 2025
9348de0
Merge pull request #20694 from ShoyuVanilla/bump-rustc
lnicola Sep 18, 2025
01cd04f
fix: Fix one more thing in `in-rust-tree`
ShoyuVanilla Sep 18, 2025
c68acff
Merge pull request #20695 from ShoyuVanilla/fix-another-in-tree
ShoyuVanilla Sep 18, 2025
47d6936
fix negative const generic integer literals
Sep 18, 2025
6870e24
Set WithCachedTypeInfo::stable_hash when in-tree
lnicola Sep 19, 2025
fefecbc
Merge pull request #20699 from lnicola/ena-fingerprint
lnicola Sep 19, 2025
f69da33
Add `#[track_caller]` for check_assist_by_label
A4-Tacks Sep 19, 2025
bf5fe6e
minor: Get rid of unused deps `chalk-solve` and `chalk-recursive`
ShoyuVanilla Sep 19, 2025
b1d9569
Merge pull request #20703 from ShoyuVanilla/remove-chalk-solve
lnicola Sep 19, 2025
9ba9869
address review feedback
Sep 19, 2025
6ec196a
Merge pull request #20697 from Oblarg/fix-negative-const-generic-lite…
ShoyuVanilla Sep 19, 2025
300aee8
Merge pull request #20701 from A4-Tacks/track-caller-assist-test
ChayimFriedman2 Sep 19, 2025
4d8655e
Bump rustc crates once more
lnicola Sep 20, 2025
0afd767
Merge pull request #20707 from lnicola/bump-rustc
lnicola Sep 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
227 changes: 117 additions & 110 deletions src/tools/rust-analyzer/Cargo.lock

Large diffs are not rendered by default.

61 changes: 30 additions & 31 deletions src/tools/rust-analyzer/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ debug = 2
[patch.'crates-io']
# rowan = { path = "../rowan" }

# chalk-solve = { path = "../chalk/chalk-solve" }
# chalk-ir = { path = "../chalk/chalk-ir" }
# chalk-recursive = { path = "../chalk/chalk-recursive" }
# chalk-derive = { path = "../chalk/chalk-derive" }
# line-index = { path = "lib/line-index" }
# la-arena = { path = "lib/la-arena" }
Expand Down Expand Up @@ -89,29 +87,30 @@ vfs-notify = { path = "./crates/vfs-notify", version = "0.0.0" }
vfs = { path = "./crates/vfs", version = "0.0.0" }
edition = { path = "./crates/edition", version = "0.0.0" }

ra-ap-rustc_lexer = { version = "0.123", default-features = false }
ra-ap-rustc_parse_format = { version = "0.121", default-features = false }
ra-ap-rustc_index = { version = "0.123", default-features = false }
ra-ap-rustc_abi = { version = "0.123", default-features = false }
ra-ap-rustc_pattern_analysis = { version = "0.123", default-features = false }
ra-ap-rustc_lexer = { version = "0.132", default-features = false }
ra-ap-rustc_parse_format = { version = "0.132", default-features = false }
ra-ap-rustc_index = { version = "0.132", default-features = false }
ra-ap-rustc_abi = { version = "0.132", default-features = false }
ra-ap-rustc_pattern_analysis = { version = "0.132", default-features = false }
ra-ap-rustc_ast_ir = { version = "0.132", default-features = false }
ra-ap-rustc_type_ir = { version = "0.132", default-features = false }
ra-ap-rustc_next_trait_solver = { version = "0.132", default-features = false }

# local crates that aren't published to crates.io. These should not have versions.

# in-tree crates that are published separately and follow semver. See lib/README.md
line-index = { version = "0.1.2" }
la-arena = { version = "0.3.1" }
lsp-server = { version = "0.7.8" }
lsp-server = { version = "0.7.9" }

# non-local crates
anyhow = "1.0.98"
arrayvec = "0.7.6"
bitflags = "2.9.1"
cargo_metadata = "0.21.0"
camino = "1.1.10"
chalk-solve = { version = "0.103.0", default-features = false }
chalk-ir = "0.103.0"
chalk-recursive = { version = "0.103.0", default-features = false }
chalk-derive = "0.103.0"
chalk-ir = "0.104.0"
chalk-derive = "0.104.0"
crossbeam-channel = "0.5.15"
dissimilar = "1.0.10"
dot = "0.1.4"
Expand All @@ -125,11 +124,11 @@ memmap2 = "0.9.5"
nohash-hasher = "0.2.0"
oorandom = "11.1.5"
object = { version = "0.36.7", default-features = false, features = [
"std",
"read_core",
"elf",
"macho",
"pe",
"std",
"read_core",
"elf",
"macho",
"pe",
] }
process-wrap = { version = "8.2.1", features = ["std"] }
pulldown-cmark-to-cmark = "10.0.4"
Expand All @@ -139,9 +138,9 @@ rowan = "=0.15.15"
# Ideally we'd not enable the macros feature but unfortunately the `tracked` attribute does not work
# on impls without it
salsa = { version = "0.23.0", default-features = true, features = [
"rayon",
"salsa_unstable",
"macros",
"rayon",
"salsa_unstable",
"macros",
] }
salsa-macros = "0.23.0"
semver = "1.0.26"
Expand All @@ -151,22 +150,22 @@ serde_json = "1.0.140"
rustc-hash = "2.1.1"
rustc-literal-escaper = "0.0.4"
smallvec = { version = "1.15.1", features = [
"const_new",
"union",
"const_generics",
"const_new",
"union",
"const_generics",
] }
smol_str = "0.3.2"
temp-dir = "0.1.16"
text-size = "1.1.1"
tracing = "0.1.41"
tracing-tree = "0.4.0"
tracing-subscriber = { version = "0.3.19", default-features = false, features = [
"registry",
"fmt",
"local-time",
"std",
"time",
"tracing-log",
tracing-subscriber = { version = "0.3.20", default-features = false, features = [
"registry",
"fmt",
"local-time",
"std",
"time",
"tracing-log",
] }
triomphe = { version = "0.1.14", default-features = false, features = ["std"] }
url = "2.5.4"
Expand All @@ -176,7 +175,7 @@ xshell = "0.2.7"
dashmap = { version = "=6.1.0", features = ["raw-api", "inline"] }
# We need to freeze the version of the crate, as it needs to match with dashmap
hashbrown = { version = "0.14.*", features = [
"inline-more",
"inline-more",
], default-features = false }

[workspace.lints.rust]
Expand Down
17 changes: 15 additions & 2 deletions src/tools/rust-analyzer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,21 @@
alt="rust-analyzer logo">
</p>

rust-analyzer is a modular compiler frontend for the Rust language.
It is a part of a larger rls-2.0 effort to create excellent IDE support for Rust.
rust-analyzer is a language server that provides IDE functionality for
writing Rust programs. You can use it with any editor that supports
the [Language Server
Protocol](https://microsoft.github.io/language-server-protocol/) (VS
Code, Vim, Emacs, Zed, etc).

rust-analyzer features include go-to-definition, find-all-references,
refactorings and code completion. rust-analyzer also supports
integrated formatting (with rustfmt) and integrated diagnostics (with
rustc and clippy).

Internally, rust-analyzer is structured as a set of libraries for
analyzing Rust code. See
[Architecture](https://rust-analyzer.github.io/book/contributing/architecture.html)
in the manual.

## Quick Start

Expand Down
4 changes: 1 addition & 3 deletions src/tools/rust-analyzer/crates/base-db/src/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -295,8 +295,6 @@ impl CrateDisplayName {
}
}

pub type TargetLayoutLoadResult = Result<Arc<str>, Arc<str>>;

#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub enum ReleaseChannel {
Stable,
Expand Down Expand Up @@ -929,7 +927,7 @@ mod tests {
use super::{CrateGraphBuilder, CrateName, CrateOrigin, Edition::Edition2018, Env, FileId};

fn empty_ws_data() -> Arc<CrateWorkspaceData> {
Arc::new(CrateWorkspaceData { data_layout: Err("".into()), toolchain: None })
Arc::new(CrateWorkspaceData { target: Err("".into()), toolchain: None })
}

#[test]
Expand Down
37 changes: 32 additions & 5 deletions src/tools/rust-analyzer/crates/base-db/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,22 @@ pub use salsa_macros;
// FIXME: Rename this crate, base db is non descriptive
mod change;
mod input;
pub mod target;

use std::{cell::RefCell, hash::BuildHasherDefault, panic, sync::Once};
use std::{
cell::RefCell,
hash::BuildHasherDefault,
panic,
sync::{Once, atomic::AtomicUsize},
};

pub use crate::{
change::FileChange,
input::{
BuiltCrateData, BuiltDependency, Crate, CrateBuilder, CrateBuilderId, CrateDataBuilder,
CrateDisplayName, CrateGraphBuilder, CrateName, CrateOrigin, CratesIdMap, CratesMap,
DependencyBuilder, Env, ExtraCrateData, LangCrateOrigin, ProcMacroLoadingError,
ProcMacroPaths, ReleaseChannel, SourceRoot, SourceRootId, TargetLayoutLoadResult,
UniqueCrateData,
ProcMacroPaths, ReleaseChannel, SourceRoot, SourceRootId, UniqueCrateData,
},
};
use dashmap::{DashMap, mapref::entry::Entry};
Expand All @@ -30,6 +35,8 @@ use triomphe::Arc;
pub use vfs::{AnchoredPath, AnchoredPathBuf, FileId, VfsPath, file_set::FileSet};

pub type FxIndexSet<T> = indexmap::IndexSet<T, rustc_hash::FxBuildHasher>;
pub type FxIndexMap<K, V> =
indexmap::IndexMap<K, V, std::hash::BuildHasherDefault<rustc_hash::FxHasher>>;

#[macro_export]
macro_rules! impl_intern_key {
Expand Down Expand Up @@ -326,13 +333,33 @@ pub trait SourceDatabase: salsa::Database {

#[doc(hidden)]
fn crates_map(&self) -> Arc<CratesMap>;

fn nonce_and_revision(&self) -> (Nonce, salsa::Revision);
}

static NEXT_NONCE: AtomicUsize = AtomicUsize::new(0);

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Nonce(usize);

impl Default for Nonce {
#[inline]
fn default() -> Self {
Nonce::new()
}
}

impl Nonce {
#[inline]
pub fn new() -> Nonce {
Nonce(NEXT_NONCE.fetch_add(1, std::sync::atomic::Ordering::SeqCst))
}
}

/// Crate related data shared by the whole workspace.
#[derive(Debug, PartialEq, Eq, Hash, Clone)]
pub struct CrateWorkspaceData {
// FIXME: Consider removing this, making HirDatabase::target_data_layout an input query
pub data_layout: TargetLayoutLoadResult,
pub target: Result<target::TargetData, target::TargetLoadError>,
/// Toolchain version used to compile the crate.
pub toolchain: Option<Version>,
}
Expand Down
50 changes: 50 additions & 0 deletions src/tools/rust-analyzer/crates/base-db/src/target.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
//! Information about the target.
use std::fmt;

use triomphe::Arc;

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum Arch {
// Only what we need is present here.
Wasm32,
Wasm64,
Other,
}

#[derive(Debug, PartialEq, Eq, Hash, Clone)]
pub struct TargetData {
pub data_layout: Box<str>,
pub arch: Arch,
}

#[derive(Clone, PartialEq, Eq, Hash)]
pub struct TargetLoadError(Arc<str>);

impl fmt::Debug for TargetLoadError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
fmt::Debug::fmt(&self.0, f)
}
}

impl fmt::Display for TargetLoadError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
fmt::Display::fmt(&self.0, f)
}
}

impl std::error::Error for TargetLoadError {}

impl From<String> for TargetLoadError {
fn from(value: String) -> Self {
Self(value.into())
}
}

impl From<&str> for TargetLoadError {
fn from(value: &str) -> Self {
Self(value.into())
}
}

pub type TargetLoadResult = Result<TargetData, TargetLoadError>;
2 changes: 0 additions & 2 deletions src/tools/rust-analyzer/crates/hir-def/src/attr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,6 @@ impl AttrsWithOwner {
AdtId::UnionId(it) => attrs_from_ast_id_loc(db, it),
},
AttrDefId::TraitId(it) => attrs_from_ast_id_loc(db, it),
AttrDefId::TraitAliasId(it) => attrs_from_ast_id_loc(db, it),
AttrDefId::MacroId(it) => match it {
MacroId::Macro2Id(it) => attrs_from_ast_id_loc(db, it),
MacroId::MacroRulesId(it) => attrs_from_ast_id_loc(db, it),
Expand Down Expand Up @@ -659,7 +658,6 @@ impl AttrsWithOwner {
AttrDefId::StaticId(id) => any_has_attrs(db, id),
AttrDefId::ConstId(id) => any_has_attrs(db, id),
AttrDefId::TraitId(id) => any_has_attrs(db, id),
AttrDefId::TraitAliasId(id) => any_has_attrs(db, id),
AttrDefId::TypeAliasId(id) => any_has_attrs(db, id),
AttrDefId::MacroId(id) => match id {
MacroId::Macro2Id(id) => any_has_attrs(db, id),
Expand Down
20 changes: 3 additions & 17 deletions src/tools/rust-analyzer/crates/hir-def/src/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ use crate::{
EnumVariantId, EnumVariantLoc, ExternBlockId, ExternBlockLoc, ExternCrateId, ExternCrateLoc,
FunctionId, FunctionLoc, GenericDefId, ImplId, ImplLoc, LocalFieldId, Macro2Id, Macro2Loc,
MacroExpander, MacroId, MacroRulesId, MacroRulesLoc, MacroRulesLocFlags, ProcMacroId,
ProcMacroLoc, StaticId, StaticLoc, StructId, StructLoc, TraitAliasId, TraitAliasLoc, TraitId,
TraitLoc, TypeAliasId, TypeAliasLoc, UnionId, UnionLoc, UseId, UseLoc, VariantId,
ProcMacroLoc, StaticId, StaticLoc, StructId, StructLoc, TraitId, TraitLoc, TypeAliasId,
TypeAliasLoc, UnionId, UnionLoc, UseId, UseLoc, VariantId,
attr::{Attrs, AttrsWithOwner},
expr_store::{
Body, BodySourceMap, ExpressionStore, ExpressionStoreSourceMap, scope::ExprScopes,
Expand All @@ -28,7 +28,7 @@ use crate::{
nameres::crate_def_map,
signatures::{
ConstSignature, EnumSignature, FunctionSignature, ImplSignature, StaticSignature,
StructSignature, TraitAliasSignature, TraitSignature, TypeAliasSignature, UnionSignature,
StructSignature, TraitSignature, TypeAliasSignature, UnionSignature,
},
tt,
visibility::{self, Visibility},
Expand Down Expand Up @@ -69,9 +69,6 @@ pub trait InternDatabase: RootQueryDb {
#[salsa::interned]
fn intern_trait(&self, loc: TraitLoc) -> TraitId;

#[salsa::interned]
fn intern_trait_alias(&self, loc: TraitAliasLoc) -> TraitAliasId;

#[salsa::interned]
fn intern_type_alias(&self, loc: TypeAliasLoc) -> TypeAliasId;

Expand Down Expand Up @@ -152,11 +149,6 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
self.function_signature_with_source_map(e).0
}

#[salsa::tracked]
fn trait_alias_signature(&self, e: TraitAliasId) -> Arc<TraitAliasSignature> {
self.trait_alias_signature_with_source_map(e).0
}

#[salsa::tracked]
fn type_alias_signature(&self, e: TypeAliasId) -> Arc<TypeAliasSignature> {
self.type_alias_signature_with_source_map(e).0
Expand Down Expand Up @@ -210,12 +202,6 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
e: FunctionId,
) -> (Arc<FunctionSignature>, Arc<ExpressionStoreSourceMap>);

#[salsa::invoke(TraitAliasSignature::query)]
fn trait_alias_signature_with_source_map(
&self,
e: TraitAliasId,
) -> (Arc<TraitAliasSignature>, Arc<ExpressionStoreSourceMap>);

#[salsa::invoke(TypeAliasSignature::query)]
fn type_alias_signature_with_source_map(
&self,
Expand Down
5 changes: 2 additions & 3 deletions src/tools/rust-analyzer/crates/hir-def/src/dyn_map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ pub mod keys {

use crate::{
BlockId, ConstId, EnumId, EnumVariantId, ExternBlockId, ExternCrateId, FieldId, FunctionId,
ImplId, LifetimeParamId, Macro2Id, MacroRulesId, ProcMacroId, StaticId, StructId,
TraitAliasId, TraitId, TypeAliasId, TypeOrConstParamId, UnionId, UseId,
ImplId, LifetimeParamId, Macro2Id, MacroRulesId, ProcMacroId, StaticId, StructId, TraitId,
TypeAliasId, TypeOrConstParamId, UnionId, UseId,
dyn_map::{DynMap, Policy},
};

Expand All @@ -48,7 +48,6 @@ pub mod keys {
pub const IMPL: Key<ast::Impl, ImplId> = Key::new();
pub const EXTERN_BLOCK: Key<ast::ExternBlock, ExternBlockId> = Key::new();
pub const TRAIT: Key<ast::Trait, TraitId> = Key::new();
pub const TRAIT_ALIAS: Key<ast::TraitAlias, TraitAliasId> = Key::new();
pub const STRUCT: Key<ast::Struct, StructId> = Key::new();
pub const UNION: Key<ast::Union, UnionId> = Key::new();
pub const ENUM: Key<ast::Enum, EnumId> = Key::new();
Expand Down
Loading
Loading