about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-07-25Auto merge of #17695 - Veykril:typeref-size, r=Veykrilbors-17/+18
internal: Reduce size of TypeRef by 8 bytes
2024-07-25Make legacy_const_generics_indices thin by double boxing as its seldom usedLukas Wirth-8/+9
2024-07-25Reduce size of TypeRef by 8 bytesLukas Wirth-9/+9
2024-07-25Auto merge of #17693 - Veykril:astidmap, r=Veykrilbors-466/+1147
Remove Params and Fields from AstIdMap These are too volatile, and the only reason for them seems to be for cfg diagnostics which does not carry the weight
2024-07-25Fix incorrect handling of cfg'd varargsLukas Wirth-16/+37
2024-07-25Remove Params and Fields from AstIdMapLukas Wirth-449/+494
2024-07-25Generate From impls for Any* nodesLukas Wirth-19/+634
2024-07-25Auto merge of #17690 - lnicola:unsafe_op_in_unsafe_fn, r=lnicolabors-30/+29
internal: Fix and enable unsafe_op_in_unsafe_fn Closes #17689
2024-07-25Fix and enable unsafe_op_in_unsafe_fnLaurențiu Nicola-30/+29
2024-07-24Auto merge of #17674 - ↵bors-0/+7
davidbarsky:david/add-more-information-to-status-command, r=Veykril internal: add more output to the status command Bit of a lazy change, but this is was pretty handy. I think I should clean up the configuration into something a bit more legible (maybe serialize as JSON?), but I think this is a good enough starting point that we might as well start asking people for it in issue reports.
2024-07-24Auto merge of #17610 - regexident:impl-all_in_module, r=Veykrilbors-0/+4
Add method `Impl::all_in_module(…)` for allowing more localized querying This PR is motivated by an [outside use](https://github.com/regexident/cargo-modules) of the `ra_ap_hir` crate that would benefit from being able to more efficiently query for all impls of a given module (instead of having to query for its parent crate's impls and then filtering on `impl_hir.module(db) == module_hir`). I have the suspicion that the code as is won't quite work for file-level modules, since those don't have a block, afaict, but with all the crate-rename and version shenanigans around the `ra_ap_` release process I haven't yet been able to figure out how to patch a `ra_ap_` dependency from a third-party crate (let alone how to test this from inside of `rust-analyzer`), so haven't been able to actually run and test this. 😔 Any hints on how to make this (i.e. the code itself, as well as the testing) work are more than welcome!
2024-07-24Auto merge of #17661 - alibektas:read_ratoml_on_startup, r=Veykrilbors-8/+42
minor: Read workspace root ratomls on startup
2024-07-23Auto merge of #17395 - ↵bors-366/+14
davidbarsky:david/remove-unindexed-project-notification, r=Veykril chore: remove `UnindexinedProject` notification This PR is split out from https://github.com/rust-lang/rust-analyzer/pull/17246/ (and contains its changes, which is a little annoying from a review perspective...). I'd like to land this change a week or so after #17246 lands in order to give any users of the unindexed project notification time to adopt migrate.
2024-07-23internal: remove UnindexedProject notificationDavid Barsky-366/+14
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags:
2024-07-23Auto merge of #17483 - alibektas:ratoml/fixes, r=alibektasbors-115/+92
minor : fixes for ratoml module This is a follow-up PR to #17058. - Parse errors are reflected as such by defining a new variant called `ConfigError::ParseError` - New error collection has been added to store config level agnostic errors. EDIT : Some things that this PR promised to solve are removed and will be addressed by other PRs
2024-07-23rename config::ConfigChange::other_errors to validation_errorsAli Bektas-6/+5
2024-07-23minor changesAli Bektas-6/+8
2024-07-23Add method `Impl::all_in_module(…)` for supporting more localized queryingVincent Esche-0/+4
2024-07-23Auto merge of #17675 - PaulDotSH:remove-lens-force-custom-commands-config, ↵bors-23/+2
r=lnicola Remove lens.forceCustomCommands config Closes https://github.com/rust-lang/rust-analyzer/issues/17643 A very simple PR that removes the lens.forceCustomCommands config feature without side effects.
2024-07-23Remove lens.forceCustomCommands configPaulDotSH-23/+2
2024-07-22internal: add more output to the status commandDavid Barsky-0/+7
2024-07-22Auto merge of #17671 - Veykril:binding-size, r=Veykrilbors-56/+94
internal: Shrink size of `Binding` This should save a bit of memory now that we LRU the source map
2024-07-22internal: Shrink size of `Binding`Lukas Wirth-56/+94
2024-07-22Auto merge of #17670 - Veykril:mem, r=Veykrilbors-26/+19
LRU `body_with_source_map` query This query is being invalidated all the time anyways (we have an extra query on top of it for the body incrementality that is not source dependent), so there is little reason to keep these around all the time when only some IDE features are interested in them.
2024-07-22LRU `body_with_source_map` queryLukas Wirth-26/+19
2024-07-22Auto merge of #17668 - Veykril:incorrect-nevers, r=Veykrilbors-3/+2
Remove incorrect never! invocations These can crop up when the `Future` related lang items are missing
2024-07-22Auto merge of #17542 - roife:fix-issue-17517, r=Veykrilbors-194/+1209
feat: go-to-def and find-references on control-flow keywords fix #17517. This PR implements **go-to-definition** and **find-references** functionalities for control flow keywords, which is similar to the behaviors in the `highlight-related` module. Besides, this PR also fixes some incorrect behaviors in `highlight-related`. ## Changes 1. **Support for go-to-definition on control flow keywords**: This PR introduces functionality allowing users to navigate on the definition of control flow keywords (`return`, `break`, `continue`). Commit: 2a3244ee147f898dd828c06352645ae1713c260f..7391e7a608634709db002a4cb09229de4d12c056. 2. **Bug fixes and refactoring in highlight-related**: - **Handling return/break/continue within try_blocks**: This PR adjusted the behavior of these keywords when they occur within `try_blocks`. When encounter these keywords, the program should exit the outer function or loop which containing the `try_blocks`, rather than the `try_blocks` itself; while the `?` will cause the program to exit `try_blocks`. Commit: 59d697e807f0197f59814b37dca1563959da4aa1. - **Support highlighting keywords in macro expansion for highlight-related**: Commit: 88df24f01727c23a667a763ee3ee0cec22d5ad52. - Detailed description for the bug fixes + The previous implementation of `preorder_expr` incorrectly treated `try_blocks` as new contexts, thereby r-a will not continue to traverse inner `return` and `break/continue` statements. To resolve this, a new function `preorder_expr_with_ctx_checker` has been added, allowing users to specify which expressions to skip. * For example, when searching for the `?` in the context, r-a should skip `try_blocks` where the `?` insides just works for `try_blocks`. But when search for the `return` keyword, r-a should collect both the `return` keywords inside and outside the `try_blocks` + Thus, this PR added `WalkExpandedExprCtx` (builder pattern). It offers the following improvements: customizable context skipping, maintenance of loop depth (for `break`/`continue`), and handling macro expansion during traversal. 3. **Support for find-references on control flow keywords**: This PR enables users to find all references to control flow keywords. Commit: 9202a33f81218fb9c2edb5d42e6b4de85b0323a8.
2024-07-22Auto merge of #17586 - ShoyuVanilla:tuple-arg-macro-rest, r=Veykrilbors-5/+108
Allow macro expansions into `RestPat` in tuple args work as ellipsis like plain `RestPat` Fixes #17292 Currently, Rust Analyzer lowers `ast::Pat::RestPat` into `Pat::Missing` in general cases on the following lines; https://github.com/rust-lang/rust-analyzer/blob/ffbc5ad993d5cd2f3b8bcf9a511165470944ab91/crates/hir-def/src/body/lower.rs#L1359-L1367 And in some proper positions such as `TupleStruct(..)`, it is specially handed on the following lines; https://github.com/rust-lang/rust-analyzer/blob/ffbc5ad993d5cd2f3b8bcf9a511165470944ab91/crates/hir-def/src/body/lower.rs#L1429-L1437 This behavior is reasonable because rustc does similar things in https://github.com/rust-lang/rust/blob/62c068feeafd1f4abbf87243d69cf8862e4dd277/compiler/rustc_ast_lowering/src/pat.rs#L108-L111 and https://github.com/rust-lang/rust/blob/62c068feeafd1f4abbf87243d69cf8862e4dd277/compiler/rustc_ast_lowering/src/pat.rs#L123-L142 But this sometimes works differently because Rust Analyzer expands macros while ast lowering; https://github.com/rust-lang/rust-analyzer/blob/ffbc5ad993d5cd2f3b8bcf9a511165470944ab91/crates/hir-def/src/body/lower.rs#L1386-L1398 https://github.com/rust-lang/rust-analyzer/blob/ffbc5ad993d5cd2f3b8bcf9a511165470944ab91/crates/hir-def/src/body/lower.rs#L941-L963 but rustc uses expanded ast in the corresponding tuple-handling process, so it does not have macro patterns there. https://github.com/rust-lang/rust/blob/62c068feeafd1f4abbf87243d69cf8862e4dd277/compiler/rustc_ast_lowering/src/pat.rs#L114 So, if a macro expansion in a tuple arg results in `..`, rustc permits it like plain `..` pattern, but Rust Analyzer rejects it. This is the root cause of #17292 and this PR allows macros expanded into `..` in a tuple arg position work as ellipsis like that.
2024-07-22Auto merge of #17667 - Veykril:r-a-component-override, r=Veykrilbors-18/+44
Use rustup rust-analyzer component when there is a toolchain file override for the opened workspace Fixes https://github.com/rust-lang/rust-analyzer/issues/17663
2024-07-22Remove incorrect never! invocationsLukas Wirth-3/+2
2024-07-22Use rustup rust-analyzer component when there is a toolchain file override ↵Lukas Wirth-18/+44
for the opened workspace
2024-07-22Auto merge of #17647 - joshka:jm/rename-commands, r=Veykrilbors-9/+9
Rename rust-analyzer commands The commands `editor.action.triggerParameterHints` and `editor.action.rename` are now renamed to `rust-analyzer.triggerParameterHints` and `rust-analyzer.rename` This change helps make it clear that these commands are specific to rust-analyzer and not part of the default set of commands provided by VSCode. Fixes: https://github.com/rust-lang/rust-analyzer/issues/17644 Note: This seems like it will be a breaking change for any RA client that previously reacted to `editor.action.triggerParameterHints` - naive search: https://github.com/search?q=editor.action.triggerParameterHints+AND+%28NOT+is%3Afork%29+rust-analyzer&type=code
2024-07-22Auto merge of #17666 - Veykril:simplify, r=Veykrilbors-139/+65
Simplify
2024-07-22SimplifyLukas Wirth-139/+65
2024-07-22Auto merge of #17660 - ObsidianMinor:fix/17645, r=Veykrilbors-1/+71
Fix more path resolution for included submodules Now with more comprehensive testing! This adds tests for includes within modules. Previous testing was not comprehensive enough since submodules that use `include!` didn't actually work either! The `ModDir` used for resolving mods relative to included files has to be `ModDir::root()`. The original test just so happened to put the submodules in the root which made this work, but if you put the `include!` inside a `mod` block it didn't work. With this change, when collecting a macro expansion, if the macro call is an `include!`, we use the `ModDir::root()` instead of the current module we're in.
2024-07-22Auto merge of #17658 - alibektas:rename_get_field, r=Veykrilbors-3/+3
minor: Rename `config::get_field` to `config::get_field_json`
2024-07-22Read rust-analyzer.toml files on startupAli Bektas-8/+40
2024-07-21Fix more path resolution for included submodulesSydney Acksman-1/+71
Now with much more comprehensive testing! This adds tests for includes within modules.
2024-07-22Add FIXME to root ratoml tests.Ali Bektas-9/+8
2024-07-22Apply changes to ratoml/fixesAli Bektas-5/+9
2024-07-22Minor fixes for ratoml moduleAli Bektas-115/+90
- Parse errors are reflected as such by defining a new variant called `ConfigError::ParseError` - New error collection has been added to store config level agnostic errors.
2024-07-21Rename `config::get_field` to `config::get_field_json`Ali Bektas-3/+3
2024-07-21Auto merge of #17657 - Veykril:cfg-slim, r=lnicolabors-64/+77
internal: Make `CfgExpr` slimmer
2024-07-21Make `CfgExpr` slimmerLukas Wirth-64/+77
2024-07-21Auto merge of #17656 - Veykril:flyimport-builtin-mod, r=Veykrilbors-2/+28
fix: Allow flyimport to import primitive shadowing modules Fixes https://github.com/rust-lang/rust-analyzer/issues/16371
2024-07-21fix: Allow flyimport to import primitive shadowing modulesLukas Wirth-2/+28
2024-07-21Auto merge of #17655 - Veykril:std-find-path, r=Veykrilbors-224/+320
More `find_path` improvements
2024-07-21Optimize `find_path` for sysroot library search some moreLukas Wirth-98/+112
2024-07-21Fix visited module tracking not clearing itself on backtrackingLukas Wirth-46/+86
2024-07-21Use out parameter instead of return value for `find_path` choiceLukas Wirth-56/+53