David Barsky
2fd06545a6
Merge pull request #18483 from tareknaser/syntax_factory_introduce_named_generic
...
Migrate `introduce_named_generic` Assist to Use `SyntaxFactory`
2024-12-05 18:42:27 +00:00
Lukas Wirth
d6b62265b5
fix: Resolve generic parameters within use captures
2024-12-05 19:11:33 +01:00
Lukas Wirth
7f39ee3fce
Merge pull request #18620 from Veykril/push-pyulxnouvxkq
...
fix: Parse lifetime bounds in lifetime param into TypeBoundList
2024-12-05 17:06:02 +00:00
Lukas Wirth
f3d7415bd6
Parse lifetime bounds in lifetime param into TypeBoundList
...
This mainly aids in error recovery but also makes it a bit easier to handle lifetime resolution.
While doing so it also came apparent that we were not actually lowering lifetime outlives relationships within lifetime parameter declaration bounds, so this fixes that.
2024-12-05 17:52:02 +01:00
Lukas Wirth
0b5f51a264
Merge pull request #18619 from ShoyuVanilla/issue-18613
...
fix: Panic when displaying generic params with defaults
2024-12-05 16:31:33 +00:00
Shoyu Vanilla
405520150d
fix: Panic when displaying generic params with defaults
2024-12-06 01:10:46 +09:00
Lukas Wirth
4df6dc8f9c
Merge pull request #18618 from Veykril/push-ysklqzomkyvp
...
fix: Fix parsing of integer/keyword name refs in various places
2024-12-05 14:42:00 +00:00
Lukas Wirth
df7ab62a06
fix: Fix parsing of integer/keyword name refs in various places
2024-12-05 15:27:50 +01:00
Tarek
8954a7f9e9
fix: rename syntax_editor_add_generic_param
to add_generic_param
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-05 13:50:43 +02:00
Lukas Wirth
e7c8b2fd81
Merge pull request #18616 from Veykril/push-pkumxswtxspo
...
fix: Disable `<` typing handler again
2024-12-05 09:00:46 +00:00
Lukas Wirth
d71e41dba6
Disable <
typing handler again
2024-12-05 09:46:23 +01:00
Lukas Wirth
f499faf72b
Merge pull request #18611 from ChayimFriedman2/proc-macro-warn
...
fix: Do not report warnings from proc macros, ever
2024-12-04 16:39:54 +00:00
Tarek
b7e613c0dc
fix: update introduce_named_generic
to use type_param
directly
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 16:02:03 +02:00
Chayim Refael Friedman
33c7e81e90
Do not report warnings from proc macros, ever
2024-12-04 15:25:01 +02:00
Tarek
9157761f5d
refactor: move editing for ast using SyntaxEditor
to a separate file
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:51:48 +02:00
Tarek
2fb563f192
fix: refactor introduce_named_generic
assist
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
5aaffe6dc9
fix: correct token type for closing angle bracket
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
70ef2f23c2
fix: refactor syntax_editor_add_generic_param
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
54f7ed13f5
fix: refactor syntax_editor_add_generic_param
to handle adding new generic parameters
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
98e10d76ca
fix: refactor syntax_editor_add_generic_param to handle new generic parameters
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
0990d5956d
fix: implement syntax_editor_create_generic_param_list
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
642d4f3385
define syntax_editor_add_generic_param
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
4af3d6f598
fix: remove make_mut from introduce_named_generic assist
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
1400aec433
feat: migrate introduce_named_generic assist to use SyntaxFactory
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Chayim Refael Friedman
21ad3b5b87
Complete diagnostics in ty lowering groundwork
...
Implement diagnostics in all places left: generics (predicates, defaults, const params' types), fields, and type aliases.
Unfortunately this results in a 20mb addition in `analysis-stats .` due to many type methods returning an addition diagnostics result now (even if it's `None` in most cases). I'm not sure if this can be improved.
An alternative strategy that can prevent the memory usage growth is to never produce diagnostics in hir-ty methods. Instead, lower all types in the hir crate when computing diagnostics from scratch (with diagnostics this time). But this has two serious disadvantages:
1. This can cause code duplication (although it can probably be not that bad, it will still mean a lot more code).
2. I believe we eventually want to compute diagnostics for the *entire* workspace (either on-type or on-save or something alike), so users can know when they have diagnostics even in inactive files. Choosing this approach will mean we lose all precomputed salsa queries. For one file this is fine, for the whole workspace this will be very slow.
2024-12-04 14:22:56 +02:00
Chayim Refael Friedman
5f25ae3d1b
Lay the foundation for diagnostics in ty lowering, and implement a first diagnostic
...
The diagnostic implemented is a simple one (E0109). It serves as a test for the new foundation.
This commit only implements diagnostics for type in bodies and body-carrying signatures; the next commit will include diagnostics in the rest of the things.
Also fix one weird bug that was detected when implementing this that caused `Fn::(A, B) -> C` (which is a valid, if bizarre, alternative syntax to `Fn(A, B) -> C` to lower incorrectly.
And also fix a maybe-bug where parentheses were sneaked into a code string needlessly; this was not detected until now because the parentheses were removed (by the make-AST family API), but with a change in this commit they are now inserted. So fix that too.
2024-12-04 14:22:56 +02:00
Chayim Refael Friedman
4e475a3245
Store some hir_def Paths in the type ref source maps
...
Most paths are types and therefore already are in the source map, but the trait in impl trait and in bounds are not.
We do this by storing them basically as `TypeRef`s. For convenience, I created a wrapper around `TypeRefId` called `PathId` that always stores a path, and implemented indexing from the types map to it.
Fortunately, this change impacts memory usage negligibly (adds 2mb to `analysis-stats .`, but that could be just fluff). Probably because there aren't that many trait bounds and impl traits, and this also shrinks `TypeBound` by 8 bytes.
I also added an accessor to `TypesSourceMap` to get the source code, which will be needed for diagnostics.
2024-12-04 14:09:50 +02:00
Lukas Wirth
65c0b29720
Fix parsing of parenthesized type args and RTN
2024-12-04 11:48:47 +01:00
Tarek
c43d565def
refactor: change target parameter to a reference in add_rewrite method
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 12:42:27 +02:00
Tarek
7149c4dab9
feat: migrate sort_items
assist to use SyntaxFactory
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 12:42:26 +02:00
Lukas Wirth
edb432639b
Merge pull request #18609 from ChayimFriedman2/unsafe-coverage
...
feat: Extend reported unsafe operations
2024-12-04 06:40:40 +00:00
Lukas Wirth
99c9a9942a
Merge pull request #18604 from ChayimFriedman2/complete-helpers
...
feat: Complete derive helper attributes
2024-12-04 06:33:29 +00:00
Chayim Refael Friedman
327b8c9f93
Extend reported unsafe operations
...
We add union fields access (in both expressions and patterns) and inline assembly.
That completes the unsafe check (there are some other unsafe things but they are unstable), and so also opens the door to reporting unused unsafe without annoying people about their not-unused unsafe blocks.
2024-12-04 08:27:59 +02:00
Chayim Refael Friedman
890d155ffe
Complete derive helper attributes
...
Only their names, anything can go inside.
2024-12-04 08:20:41 +02:00
Lukas Wirth
ab652f7795
Merge pull request #18608 from Veykril/push-rrozmpnyknkx
...
Better parser recovery for paths
2024-12-04 06:18:39 +00:00
Lukas Wirth
83f5150978
Update mbe test output
2024-12-04 07:03:11 +01:00
Lukas Wirth
caba872f88
fix: Don't create empty path nodes
2024-12-04 07:01:45 +01:00
Lukas Wirth
b6fc9c14ac
Better parser recovery for incomplete attributes
2024-12-04 06:45:59 +01:00
Lukas Wirth
308f5e2814
Merge pull request #18522 from tareknaser/configure_typing_exclude_chars
...
Add Configurable Option to Exclude Trigger Characters for Typing Assists
2024-12-04 05:17:40 +00:00
Lukas Wirth
4b4cec882a
Merge pull request #18605 from ChayimFriedman2/wildcard-imports
...
fix: Fixed another bug with glob imports
2024-12-04 05:15:46 +00:00
Laurențiu Nicola
c195d843f4
Merge pull request #18595 from markmurphydev/remove_platform_intrinsic
...
Remove references to platform-intrinsic ABI
2024-12-04 04:07:25 +00:00
Laurențiu Nicola
273d481922
Merge pull request #18607 from ChayimFriedman2/pattern-record-no-record
...
fix: Fix shadowing of record enum variant in patterns
2024-12-04 03:51:41 +00:00
Chayim Refael Friedman
4ec7e61229
Fix shadowing of record enum variant in patterns
2024-12-04 04:02:54 +02:00
Chayim Refael Friedman
3aeb5e66c4
Improve soundness a bit by making TaggedArcPtr::try_as_arc_owned()
unsafe
...
Since the `ManuallyDrop` it returns can be safely used to consume the `Arc`, which is can cause UB if done incorrectly. See #18499 .
2024-12-04 03:38:37 +02:00
Chayim Refael Friedman
215cbe9e71
Fixed another bug with glob imports
...
When a glob import overriding the visibility of a previous glob import was not properly resolved when the items are only available in the next fixpoint iteration.
The bug was hidden until #18390 .
2024-12-04 03:15:32 +02:00
Mark Murphy
1dbe681757
Remove references to platform-intrinsic ABI
2024-12-03 17:30:17 -05:00
Tarek
9aff46632e
chore: deprecate typing.autoClosingAngleBrackets
configuration
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-03 22:38:51 +02:00
Tarek
d6b701e251
internal: Make exclude characters for typing assists configurable, default to None
...
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-03 22:38:51 +02:00
Chayim Refael Friedman
4049c3b6a9
Support AsyncFnX
traits
...
Only in calls, because to support them in bounds we need support from Chalk. However we don't yet report error from bounds anyway, so this is less severe.
The returned future is shown in its name within inlay hints instead of as a nicer `impl Future`, but that can wait for another PR.
2024-12-03 21:26:26 +02:00
Lukas Wirth
e6276c8b64
Merge pull request #18555 from ChayimFriedman2/issue-17321
...
fix: Fix a bug when synthetic AST node were searched in the AST ID map and caused panics
2024-12-03 15:39:52 +00:00
Kirill Bulatov
4261ac7856
Advertise completions and inlay hints resolve server capabilities based on the client capabilities.
2024-12-03 10:51:17 +02:00
Lukas Wirth
aa38be893c
Merge pull request #18561 from markmurphydev/macro_name_raw_variable
...
Add macro expansion test for raw variable names
2024-12-02 16:23:07 +00:00
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
Ali Bektas
61e9c02dd8
Remove target.is_some() to handle it later inside ra::flycheck
2024-11-26 18:54:25 +01:00
Ali Bektas
4a910095da
Revert #18197
...
Our first attempt to make flycheck only check the current crate
if the crate is one of bin/bench/test targets had caused
`check_workspace` to be ignored, which should have been a config
with higher precedence all along. This commit revert #18197 and closes #18562
2024-11-26 18:37:39 +01: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
Shoyu Vanilla
6aa5ea5411
Migrate add_turbo_fish
to SyntaxEditor
2024-11-26 01:47:15 +09: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