Commit graph

21109 commits

Author SHA1 Message Date
Lukas Wirth
e7b96dd2de fix: Fix syntax fixup inserting unnecessary semicolons 2024-12-02 13:35:58 +01:00
Michael Goulet
29d59c58d8 Remove redundant associated type bounds from dyn 2024-11-30 03:33:33 +00:00
Laurențiu Nicola
6db5e962ca Fix proc macro test 2024-11-28 09:40:14 +02:00
Laurențiu Nicola
6f8286dcbc Merge from rust-lang/rust 2024-11-28 08:37:36 +02:00
Laurențiu Nicola
8d5e91c94f
Merge pull request #18511 from darichey/sysroot-query-metadata
Re-add `rust-analyzer.cargo.sysrootQueryMetadata`
2024-11-26 15:11:44 +00:00
Mark Murphy
a53ee64e70 Add macro expansion test for raw variable names 2024-11-26 00:42:27 -05:00
Laurențiu Nicola
157c7d0114
Merge pull request #18559 from ChayimFriedman2/recur-unsized
fix: Fix a stack overflow when computing the sizedness of a struct that includes itself as the tail field
2024-11-25 19:24:00 +00:00
Chayim Refael Friedman
0d43932235 Fix a stack overflow when computing the sizedness of a struct that includes itself as the tail field 2024-11-25 20:49:35 +02:00
Chayim Refael Friedman
b66bc91b4b Fix a bug when synthetic AST node were searched in the AST ID map and caused panics 2024-11-25 14:52:58 +02:00
Laurențiu Nicola
8fc5f3deb5 Fix missing rust-src message 2024-11-24 18:27:40 +02:00
David Barsky
c0bbbb3e5d
Merge pull request #18485 from davidkurilla/feat-migrate-add_braces-to-use-SyntaxFactory
feat: convert add_braces to SyntaxFactory SyntaxEditor abstraction
2024-11-19 21:05:17 +00:00
David Barsky
84078238c1
Merge pull request #18521 from tareknaser/syntax_factory_reorder_impl_items
Migrate `reorder_impl_items` Assist to Use `SyntaxFactory`
2024-11-19 20:38:57 +00:00
Laurențiu Nicola
a9aaa90d45
Merge pull request #18529 from cmrschwarz/allow_leading_whitespace_in_merge_match_arms
Improve selection handling for the `merge_match_arms` assist
2024-11-19 17:45:52 +00:00
Laurențiu Nicola
e761618aa4
Merge pull request #18459 from Giga-Bowser/match-placeholders
feat: Use snippet placeholders for generated match arms
2024-11-19 17:12:16 +00:00
Christian Schwarz
f12d5e3f20
improve selection handling for merge_match_arms 2024-11-19 08:22:13 +01:00
Nicholas Nethercote
81aa2d2b10 Remove TokenKind::InvalidPrefix.
It was added in #123752 to handle some cases involving emoji, but it
isn't necessary because it's always treated the same as
`TokenKind::InvalidIdent`. This commit removes it, which makes things a
little simpler.
2024-11-19 18:06:22 +11:00
David Richey
3c98b98ca7 Re-add rust-analyzer.cargo.sysrootQueryMetadata 2024-11-18 16:29:33 -06:00
Tarek
05c2c162a5
feat: migrate reorder_impl_items assist to use SyntaxFactory
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-11-17 12:17:44 +02:00
Chayim Refael Friedman
72e280a5e7 Fix related documents diagnostics
They were converted to LSP position using the current file's line index, which is obviously wrong.
2024-11-16 21:17:15 +02:00
David Kurilla
888f9606d1 style: remove needless borrow 2024-11-15 19:08:01 +00:00
David Kurilla
b68ae2b150 style: cargo fmt 2024-11-15 18:02:16 +00:00
Tarek
5c41c20c11
feat: migrate reorder_fields assist to use SyntaxFactory
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-11-13 15:02:08 +02:00
David Kurilla
c768a24673 fix: remove unused imports 2024-11-13 00:06:12 +00:00
David Kurilla
f3715c1d22 fix: fix indentation error 2024-11-12 23:58:24 +00:00
David Kurilla
9a805a2abd fix: fix immutable tree error 2024-11-12 22:43:48 +00:00
Kirill Bulatov
81636f1fd1 Use completion item indices instead of property matching when searching for the completion item to resolve 2024-11-11 15:50:04 +01:00
Laurențiu Nicola
aabab29274
Merge pull request #18482 from regexident/hir_trait_supertraits_accessors
internal: Add public `direct_supertraits(…)` & `all_supertraits(…)` accessor methods to `hir::Trait`
2024-11-11 06:58:17 +00:00
Laurențiu Nicola
1042a8c22c
Merge pull request #18490 from ShoyuVanilla/dyn-compat-rename
minor: Rename `dyn compatible` to `dyn-compatible`
2024-11-07 14:21:40 +00:00
Shoyu Vanilla
05e5f9e4fd minor: Rename dyn compatible to dyn-compatible 2024-11-07 23:00:29 +09:00
David Kurilla
9f87bdc08a feat: convert add_braces to SyntaxFactory SyntaxEditor abstraction 2024-11-06 14:45:00 +00:00
Vincent Esche
e6461522bc Add direct_supertraits(…) HIR-level method to hir::Trait type 2024-11-06 10:02:13 +01:00
Vincent Esche
c1155213f3 Add pub fn direct_super_traits(db, trait_id) to hir_ty crate 2024-11-06 10:02:13 +01:00
Vincent Esche
5a9767b115 Refactor hir::Trait's existing items_with_supertraits(…) method based on new all_supertraits(…) method 2024-11-06 10:02:13 +01:00
Vincent Esche
89a002ef9b Add pub fn all_supertraits(…) HIR-level method to hir::Trait type 2024-11-06 10:02:13 +01:00
Giga Bowser
494bde3c13 Properly use final tabstop when adding missing match arms 2024-11-05 12:19:20 -05:00
Lukas Wirth
1d65cd466f
Merge pull request #18475 from Veykril/push-zkvkpxttozup
Support new #[rustc_intrinsic] attribute and fallback bodies
2024-11-04 12:48:00 +00:00
Lukas Wirth
36d68c5d0f Support new #[rustc_intrinsic] attribute and fallback bodies 2024-11-04 13:33:55 +01:00
Lukas Wirth
9ad98df61d
Merge pull request #18473 from Veykril/push-xnlzukoqttvz
Render extern blocks in `file_structure`
2024-11-04 11:34:35 +00:00
Lukas Wirth
3ceaf1fb68 Render extern blocks in file_structure 2024-11-04 12:21:05 +01:00
Laurențiu Nicola
881ef8bf13 Fix feature name casing 2024-11-04 10:27:32 +02:00
Lukas Wirth
78f3112626 Allow interpreting consts and statics with interpret function command 2024-11-03 15:35:45 +01:00
Lukas Wirth
20ab9708b4
Merge pull request #18469 from Veykril/push-zwnywqmvtuts
feat: Show `static` values on hover
2024-11-03 13:00:32 +00:00
benluiwj
1c71a50e01 Improve error message for too new proc-macro server 2024-11-02 21:46:05 +08:00
Lukas Wirth
94c35f6138 Allow static initializers to be const evaluated 2024-11-02 12:43:11 +01:00
Giga Bowser
92b2b3d26b Use snippet placeholders for generated match arms 2024-11-01 12:35:01 -04:00
Laurențiu Nicola
b385bf2e53 Format code 2024-11-01 14:12:18 +02:00
Laurențiu Nicola
fabe447c7d Merge from rust-lang/rust 2024-11-01 13:14:25 +02:00
Chayim Refael Friedman
210ead8454 Parse patterns with leading pipe properly in all places 2024-10-31 15:32:37 +02:00
Lukas Wirth
86a850d49e
Merge pull request #18447 from ChayimFriedman2/cleanup-tylowerctx
Avoid interior mutability in `TyLoweringContext`
2024-10-31 12:48:17 +00:00
bjorn3
ad858841e7 Remove support for compressed dylib metadata from rust-analyzer 2024-10-31 12:48:09 +00:00
Lukas Wirth
1aac2c637b
Merge pull request #18448 from Veykril/push-zwuuoytnmnqz
Move `child_by_source` from `hir-def` to `hir`
2024-10-31 08:42:59 +00:00
Lukas Wirth
70348faf2b Move child_by_source from hir-def to hir 2024-10-31 09:28:08 +01:00
Lukas Wirth
fb8ca32d06
Merge pull request #18437 from sam-mccall/publish_fixture
Publish test-fixture => ra_ap_test_fixture
2024-10-31 08:03:44 +00:00
Chayim Refael Friedman
4317927231 Avoid interior mutability in TyLoweringContext
This requires some serious code juggling.
2024-10-30 21:24:19 +02:00
Chayim Refael Friedman
3a8dc27e72 Only parse safe as contextual kw in extern blocks
I don't like the party of `bool`s that is becoming, but two isn't worth a refactoring yet IMO.
2024-10-30 19:28:33 +02:00
Lukas Wirth
223979bf97
Merge pull request #18382 from dqkqd/issue-17042
fix: auto-complete import for aliased function and module
2024-10-30 09:42:46 +00:00
Lukas Wirth
bb3239d415
Merge pull request #18385 from Giga-Bowser/master
feat: Add assist to generate a type alias for a function
2024-10-30 09:36:55 +00:00
Lukas Wirth
436ace3ecb
Merge pull request #18436 from Veykril/lw-yvkqwpnwsouo
Do not render meta info when hovering usages
2024-10-30 09:21:35 +00:00
Jubilee Young
92faf55954 rust-analyzer: rustc_abi::Abi => BackendRepr 2024-10-29 15:01:01 -07:00
Lukas Wirth
a953875f49 Style hover messages a bit differently 2024-10-29 16:59:48 +01:00
Sam McCall
98f3304831 Publish test-fixture => ra_ap_test_fixture 2024-10-29 16:26:18 +01:00
Lukas Wirth
3741b863a6 Do not render meta info when hovering usages 2024-10-29 15:34:17 +01:00
Lukas Wirth
468b5cd430
Merge pull request #18432 from Veykril/lw-yptzmuxyvxxt
fix: Fix the server not honoring diagnostic refresh support
2024-10-29 10:32:11 +00:00
Lukas Wirth
1da6138b40 fix: Fix the server not honoring diagnostic refresh support 2024-10-29 11:06:16 +01:00
Lukas Wirth
3fd6a72556
Merge pull request #18427 from ChayimFriedman2/cleanup-ty
Cleanup TypeRef lowering
2024-10-29 10:00:44 +00:00
Laurențiu Nicola
779074df51 Merge from rust-lang/rust 2024-10-29 08:13:34 +02:00
Chayim Refael Friedman
41658de227 Cleanup TypeRef lowering
By removing interior mutability from it.
2024-10-28 17:38:37 +02:00
Lukas Wirth
cf8f950baa
Merge pull request #18420 from ChayimFriedman2/cfg-true-false
feat: Support `cfg(true)` and `cfg(false)`
2024-10-28 13:56:41 +00:00
Lukas Wirth
8672eb8adb
Merge pull request #18421 from Veykril/push-uxxwvwnqvomr
Move text-edit into ide-db
2024-10-28 13:52:16 +00:00
Lukas Wirth
09547e9ea5
Merge pull request #18413 from ShoyuVanilla/extern-crate-reexport
fix: Allow public re-export of `extern crate` import
2024-10-28 13:51:26 +00:00
Lukas Wirth
343abd9193
Merge pull request #18422 from ChayimFriedman2/cursed-name-res
fix: Properly resolve prelude paths inside modules inside blocks
2024-10-28 13:45:19 +00:00
Lukas Wirth
68e2d8465f
Merge pull request #18312 from LastExceed/symbolkind-variable
Report document symbols of kind `variable` for let statements
2024-10-28 13:40:42 +00:00
Lukas Wirth
27306c5e4b Reformat 2024-10-28 14:37:52 +01:00
Lukas Wirth
64f56f458f Move text-edit into ide-db 2024-10-28 14:37:41 +01:00
Lukas Wirth
80e9d014be
Merge pull request #18074 from ChayimFriedman2/typeref-source-map
internal: Build source map for `hir_def::TypeRef`s
2024-10-28 11:01:12 +00:00
Laurențiu Nicola
ae86e6a229
Merge pull request #18256 from MoskalykA/use-is_none_or
Start using `Option::is_none_or`
2024-10-28 10:12:36 +00:00
Jubilee Young
f806406728 rust-analyzer: Rename LayoutS to LayoutData 2024-10-27 22:32:58 -07:00
LastExceed
167fe5fd7c add test 2024-10-27 23:29:14 +01:00
LastExceed
7c8c28ce96 add LetStmt arm 2024-10-27 23:29:14 +01:00
Chayim Refael Friedman
1fed2403d1 Properly resolve prelude paths inside modules inside blocks
I.e. the following situation:
```
fn foo() {
    mod bar {
        fn qux() {
            // Prelude path here (e.g. macro use prelude or extern prelude).
        }
    }
}
```
Those were previously unresolved, because, in order to support `self` and `super` properly, since #15148 we do not ascend block paths when there is a module in between, but only crate def maps register preludes, not block def maps, and we can't change this because block def map prelude can always be overridden by another block. E.g.
```
fn foo() {
    struct WithTheSameNameAsPreludeItem;
    {
        WithTheSameNameAsPreludeItem
    }
}
```
Here `WithTheSameNameAsPreludeItem` refer to the item from the top block, but if we would register prelude items in each block the child block would overwrite it incorrectly.
2024-10-27 19:23:12 +02:00
Shoyu Vanilla
eb2a50e75d fix: Allow public re-export of extern crate import 2024-10-27 23:44:44 +09:00
Lukas Wirth
3b3a87fe9b
Merge pull request #18419 from ChayimFriedman2/leading-or
fix: Put leading `|` in patterns under `OrPat`
2024-10-27 11:25:16 +00:00
Chayim Refael Friedman
e12a001b55 Put leading | in patterns under OrPat
Previously it was one level above, and that caused problems with macros that expand to it, because macros expect to get only one top-level node.
2024-10-27 13:11:38 +02:00
Lukas Wirth
715b67c425
Merge pull request #18410 from Veykril/veykril/push-lvwxpnowqrxk
internal: Invert token iteration order in macro mapping
2024-10-27 10:44:32 +00:00
Lukas Wirth
20ac30fb75 Invert token iteration order in macro mapping 2024-10-27 11:32:12 +01:00
Lukas Wirth
79b86f25b4
Merge pull request #18418 from ChayimFriedman2/explicitly-disable
feat: Split `macro-error` diagnostic so users can ignore only parts of it
2024-10-27 09:37:56 +00:00
Lukas Wirth
8d10e248c8
Merge pull request #18417 from ChayimFriedman2/hash-string
fix: Correctly handle `#""` in edition <2024
2024-10-27 09:28:47 +00:00
Chayim Refael Friedman
074050c242 Support cfg(true) and cfg(false)
As per RFC 3695.
2024-10-27 10:46:49 +02:00
Chayim Refael Friedman
f4585ea023 Split macro-error diagnostic so users can ignore only parts of it
Split it into `macro-error`, `proc-macros-disabled` and `proc-macro-disabled`.
2024-10-27 02:24:15 +02:00
Chayim Refael Friedman
3b3beaab31 Correctly handle #"" in edition <2024 2024-10-27 00:47:13 +03:00
MoskalykA
feba680c39 Use method syntax 2024-10-26 09:39:04 +03:00
MoskalykA
41fa877362 Start using Option::is_none_or 2024-10-26 09:39:04 +03:00
Laurențiu Nicola
4e3c331d86 Turn Remove dbg into a quick fix for better prioritization 2024-10-26 09:06:10 +03:00
Lukas Wirth
ca3699bd50 Factor out token ranking 2024-10-25 12:03:12 +02:00
Lukas Wirth
a12f1781eb Only construct a resolver in macro descension when needed 2024-10-25 10:23:59 +02:00
Lukas Wirth
52a03ec237
Merge pull request #18408 from Veykril/veykril/push-ulxyznwzokut
fix: Don't compute diagnostics for non local files
2024-10-25 05:55:32 +00:00
Lukas Wirth
8eef1c5275 Add server cancellation support to pull diagnostic handler 2024-10-25 07:39:28 +02:00
Lukas Wirth
eac7840810 Don't compute diagnostics for non local files 2024-10-25 07:28:29 +02:00
Chayim Refael Friedman
bf7edd3783 Shrink TypeRef from 16 from 32 bytes
Only references and arrays need to be boxed, and they comprise only 9.4% of the types (according to counting on r-a's code).

This saves 17mb.
2024-10-25 06:44:56 +03:00
Chayim Refael Friedman
061e5d7f71 Shrink Path to 16 bytes
Thanks to the observation (supported by counting) that the vast majority paths have neither generics no type anchors, and thanks to a new datastructure `ThinVecWithHeader` that is essentially `(T, Box<[U]>)` but with the size of a single pointer, we are able to reach this feat.

This (together with `ThinVecWithHeader`) makes the possibility to shrink `TypeRef`, because most types are paths.
2024-10-25 06:44:56 +03:00