Commit graph

264793 commits

Author SHA1 Message Date
roife
544ccedd55 feat: Allow hir-def prettifier formatting into one-line 2024-09-09 20:59:23 +08:00
bors
f16a03f3a9 Auto merge of #18067 - Veykril:prevent-mir-building, r=Veykril
fix: Properly prevent mir building with unknown types present
2024-09-06 13:47:03 +00:00
Lukas Wirth
bdc9da9361 fix: Properly prevent mir building with unknown types present 2024-09-06 14:44:05 +02:00
bors
835972b30b Auto merge of #18068 - Veykril:ty-fixes, r=Veykril
fix: Always explicitly set `TraitRef` self types when lowering
2024-09-06 12:18:04 +00:00
Lukas Wirth
2c8e24e9e8 fix: Always explicitly set trait ref self types when lowering 2024-09-06 14:06:41 +02:00
Lukas Wirth
5f8823bf8f Bump lsp-server 2024-09-06 14:06:38 +02:00
bors
07544c57dd Auto merge of #18066 - Veykril:lsp-server-no-panic, r=Veykril
fix: Don't panic lsp writer thread on dropped receiver

Should reduce the noise a bit (https://github.com/rust-lang/rust-analyzer/issues/18055). This removes the panic (and a follow up panic) when the server incorrectly shuts down, turning it into a proper late exit error.
2024-09-06 07:15:13 +00:00
Lukas Wirth
775c5c84a5 fix: Don't panic lsp writer thread on dropped receiver 2024-09-06 09:13:00 +02:00
bors
56fde6ef41 Auto merge of #18065 - Veykril:catchy-diagnostics, r=Veykril
fix: Catch panics from diagnostics computation
2024-09-06 06:22:41 +00:00
Lukas Wirth
7e5a0e5777 fix: Catch panics from diagnostics computation 2024-09-06 08:21:08 +02:00
bors
ecd835de15 Auto merge of #18059 - Wilfred:config_cleanups, r=Veykril
fix: Updating settings should not clobber discovered projects

`linkedProjects` is owned by the user's configuration, so when users update this setting, `linkedProjects` is reset. This is problematic when `linkedProjects` also contains projects discovered with `discoverCommand`.

The buggy behaviour occurred when:

(1) The user configures `discoverCommand` and loads a Rust project.

(2) The user changes any setting in VS Code, so rust-analyzer receives `workspace/didChangeConfiguration`.

(3) `handle_did_change_configuration` ultimately calls `Client::apply_change_with_sink()`, which updates
`config.user_config` and discards any items we added in `linkedProjects`.

Instead, separate out `discovered_projects_from_filesystem` and `discovered_projects_from_command` from user configuration, so user settings cannot affect any type of discovered project.

This fixes the subtle issue mentioned here: https://github.com/rust-lang/rust-analyzer/pull/17246#issuecomment-2185259122
2024-09-06 06:04:03 +00:00
Wilfred Hughes
06c86a1069 fix: Updating settings should not clobber discovered projects
`linkedProjects` is owned by the user's configuration, so when users
update this setting, `linkedProjects` is reset. This is problematic when
`linkedProjects` also contains projects discovered with `discoverCommand`.

The buggy behaviour occurred when:

(1) The user configures `discoverCommand` and loads a Rust project.

(2) The user changes any setting in VS Code, so rust-analyzer receives
`workspace/didChangeConfiguration`.

(3) `handle_did_change_configuration` ultimately calls
`Client::apply_change_with_sink()`, which updates `config.user_config`
and discards any items we added in `linkedProjects`.

Instead, separate out `discovered_projects_from_filesystem` and
`discovered_projects_from_command` from user configuration, so user
settings cannot affect any type of discovered project.

This fixes the subtle issue mentioned here:
https://github.com/rust-lang/rust-analyzer/pull/17246#issuecomment-2185259122
2024-09-05 15:46:03 -07:00
bors
a3be866668 Auto merge of #18053 - Veykril:asm-parse, r=Veykril
fix: Couple asm! parsing and lowering fixes
2024-09-05 15:09:02 +00:00
Lukas Wirth
4e2e1bf6ed fix: Fix parser panicking on invalid asm options 2024-09-05 17:07:10 +02:00
Lukas Wirth
20e9c8d110 asm! parsing and lowering fixes 2024-09-05 15:08:16 +02:00
bors
bdfb2f6745 Auto merge of #18022 - Veykril:asm-parse, r=Veykril
feat: IDE support for `asm!` expressions

Fixes https://github.com/rust-lang/rust-analyzer/issues/10461, Fixes https://github.com/rust-lang/rust-analyzer/issues/6031 Progresses https://github.com/rust-lang/rust-analyzer/issues/11621

Notably this only works for asm expressions not items yet. Most IDE features work, mainly completions need extra logic still.
2024-09-05 11:50:34 +00:00
Lukas Wirth
72980c417c Fix name fetching being incorrect for asm operands 2024-09-05 13:41:03 +02:00
Lukas Wirth
2120b38adf Add missing doc comments 2024-09-05 13:19:32 +02:00
Lukas Wirth
bdb734b63a Support more IDE features for asm operands 2024-09-05 13:19:02 +02:00
Lukas Wirth
f3b6965f90 Give InlineAsmOperand a HIR representation 2024-09-05 12:40:48 +02:00
Lukas Wirth
304f54e023 Add Definition kind for asm register operand 2024-09-05 10:53:07 +02:00
Lukas Wirth
44e3b7d205 Add Definition kind for asm register classes 2024-09-05 10:23:00 +02:00
Lukas Wirth
1328b52e91 Lower asm expressions 2024-09-05 09:59:08 +02:00
Lukas Wirth
7222f2de38 Parse builtin#asm expressions 2024-09-04 14:09:03 +02:00
bors
1c26c99fcd Auto merge of #18045 - Veykril:fix-loop-lower, r=Veykril
fix: Fix lowering of for loops dropping the loop block
2024-09-04 10:03:39 +00:00
Lukas Wirth
1e7d99ff43 fix: Fix lowering of for loops dropping the loop block 2024-09-04 12:00:16 +02:00
bors
0b432fc32c Auto merge of #18044 - Veykril:highlight-kw-test, r=Veykril
internal: Add edition dependent keyword highlighting tests
2024-09-04 09:49:17 +00:00
Lukas Wirth
01b1bfd18a Add edition dependent keyword highlighting tests 2024-09-04 11:32:59 +02:00
bors
b7138a816d Auto merge of #18036 - Veykril:smol_str, r=Veykril
Bump `smol_str`
2024-09-03 09:59:33 +00:00
Lukas Wirth
17e5f01d2b Bump smol_str 2024-09-03 11:54:33 +02:00
bors
c01d5e03f2 Auto merge of #17984 - ShoyuVanilla:cast, r=Veykril
feat: Implement cast typecheck and diagnostics

Fixes  #17897 and fixes #16564
Mainly adopted from 100fde5246/compiler/rustc_hir_typeck/src/cast.rs
2024-09-03 06:00:10 +00:00
bors
6faf40992e Auto merge of #18031 - roife:suggest-name-in-completion, r=Veykril
feat: Suggest name in completion for let_stmt and fn_param

fix #17780

1. Refactor: move `ide_assist::utils::suggest_name` to `ide-db::syntax_helpers::suggest_name` for reuse.
2. When completing `IdentPat`, detecte if the current node is a `let_stmt` or `fn_param`, and suggesting a new name based on the context.
2024-09-03 05:45:53 +00:00
roife
ef491f2299 tests: suggesting names in completions for let_stmt and fn_param 2024-09-03 05:23:04 +08:00
roife
5f7fcbe0d4 feat: suggest name in let_stmt and fn_param 2024-09-03 05:22:55 +08:00
roife
b880890e59 refactor: move ide_assist::utils::suggest_name to ide-db 2024-09-03 05:21:05 +08:00
Shoyu Vanilla
111c690426 feat: Implement cast typechecks 2024-09-03 04:11:36 +09:00
bors
c2f9b47c21 Auto merge of #18029 - lnicola:minor-stuff, r=lnicola
minor: fix two nits
2024-09-02 17:07:43 +00:00
Laurențiu Nicola
2f8ef4c887 Merge some strings 2024-09-02 20:05:35 +03:00
Laurențiu Nicola
42ed30f0c6 Avoid Option::is_none_or for a while 2024-09-02 20:04:35 +03:00
bors
090a38cd94 Auto merge of #18028 - Veykril:lifetime-hints-panic, r=Veykril
fix: lifetime hint panic in non generic defs
2024-09-02 16:05:36 +00:00
Lukas Wirth
011a1fc41f fix: lifetime hint panic in non generic defs 2024-09-02 18:04:21 +02:00
bors
86c6382a53 Auto merge of #18016 - IvarWithoutBones:wrap-return-ty-local-result, r=Veykril
fix: use Result type aliases in "Wrap return type in Result" assist

This commit makes the "Wrap return type in Result" assist prefer type aliases of standard library type when the are in scope, use at least one generic parameter, and have the name `Result`.

The last restriction was made in an attempt to avoid false assumptions about which type the user is referring to, but that might be overly strict. We could also do something like this, in order of priority:
* Use the alias named "Result".
* Use any alias if only a single one is in scope, otherwise:
* Use the standard library type.

This is easy to add if others feel differently that is appropriate, just let me know.

Fixes #17796
2024-09-02 11:33:44 +00:00
bors
7a0fc46551 Auto merge of #18026 - Veykril:completions, r=Veykril
internal:  Adjust completions scoring
2024-09-02 11:19:33 +00:00
Lukas Wirth
3414a9e94f Adjust completions scoring 2024-09-02 13:17:52 +02:00
Lukas Wirth
f5ccde6d45 Simplify CompletionRelevance 2024-09-02 13:17:49 +02:00
bors
fb38e4b851 Auto merge of #18025 - cuishuang:master, r=lnicola
minor: remove repetitive words
2024-09-02 10:48:27 +00:00
cuishuang
ddb1e41e50 chore: fix some comments
Signed-off-by: cuishuang <imcusg@gmail.com>
2024-09-02 18:33:23 +08:00
Ivar Scholten
92b8b56766 fix: use Result type aliases in "Wrap return type in Result" assist
This commit makes the "Wrap return type in Result" assist prefer type aliases of standard library
type when the are in scope, use at least one generic parameter, and have the name "Result".

The last restriction was made in an attempt to avoid false assumptions about which type the
user is referring to, but that might be overly strict. We could also do something like this, in
order of priority:

* Use the alias named "Result".
* Use any alias if only a single one is in scope, otherwise:
* Use the standard library type.

This is easy to add if others feel differently that is appropriate, just let me know.
2024-09-02 02:00:19 +02:00
bors
c7f4874be0 Auto merge of #17967 - Veykril:mbe-tests, r=Veykril
internal: Lay basic ground work for standalone mbe tests

Most of our mbe hir-def tests don't actually do anything name res relevant, we can (and should) move those down the stack into `mbe/hir-expand`.
2024-09-01 11:44:58 +00:00
Lukas Wirth
01b7676fe7 internal: Lay basic ground work for standalone mbe tests 2024-09-01 12:42:44 +02:00