Commit graph

271848 commits

Author SHA1 Message Date
Lukas Wirth
fb79ab78cf
Merge pull request #18629 from Veykril/push-wlsvxwomumpp
Highlight right angle as part of fat arrow in macro rules arm
2024-12-06 15:44:39 +00:00
Lukas Wirth
667697eac6 Highlight right angle as part of fat arrow in macro rules arm 2024-12-06 16:28:32 +01:00
Lukas Wirth
5b2fcf327e
Merge pull request #18628 from Veykril/push-sqpymrtxysmw
Add typing handler for param list pipe
2024-12-06 15:03:41 +00:00
Lukas Wirth
3fe75c7d90 Add typing handler for param list pipe 2024-12-06 15:49:36 +01:00
Lukas Wirth
9549e473a0
Merge pull request #18627 from Veykril/push-tzvnrnytrksr
Improve heuristics for on typing semicolon insertion
2024-12-06 14:15:13 +00:00
Lukas Wirth
a086560b23 Improve heuristics for on typing semicolon insertion 2024-12-06 15:00:09 +01:00
Lukas Wirth
2a06000cae
Merge pull request #18551 from ShoyuVanilla/migrate-turbofish-assist
Migrate `add_turbo_fish` to `SyntaxEditor`
2024-12-06 13:44:54 +00:00
Lukas Wirth
0631f460d1
Merge pull request #18563 from alibektas/workspace_key_high_precedence
minor: run `FlycheckHandle::restart_workspace` when `check_workspace` true
2024-12-06 13:09:32 +00:00
Lukas Wirth
8466efcf72
Merge pull request #18594 from ChayimFriedman2/async-closures
feat: Support `AsyncFnX` traits
2024-12-06 12:48:47 +00:00
Lukas Wirth
b4dc94d305
Merge pull request #18474 from Veykril/push-nvtxykxkwnvs
Make bracket typing handler work on more things
2024-12-06 12:03:52 +00:00
Lukas Wirth
02676108a5
Merge pull request #18610 from Veykril/push-kynytqktmnxq
Add implict unsafety inlay hints for extern blocks
2024-12-06 12:01:49 +00:00
Lukas Wirth
2c91563eb5 Add implict unsafety inlay hints for extern blocks 2024-12-06 12:49:03 +01:00
Lukas Wirth
069fb0f475 Make bracket typing handler work on more things 2024-12-06 12:47:32 +01:00
Lukas Wirth
c2253c2c37
Merge pull request #18625 from Veykril/push-npnxwpxuzlqz
fix: Fix parser getting stuck for bad asm expressions
2024-12-06 05:11:08 +00:00
Lukas Wirth
3db9b1d943 fix: Fix parser getting stuck for bad asm expressions 2024-12-06 05:57:00 +01:00
Lukas Wirth
d5c7e64419
Merge pull request #18622 from Veykril/push-wlzptrukvyup
fix: Fix parsing of dyn T in generic arg on 2015 edition
2024-12-05 19:41:34 +00:00
Lukas Wirth
59a5b38bf4 fix: Fix parsing of dyn T in generic arg on 2015 edition 2024-12-05 20:26:49 +01:00
David Barsky
23339cb44c
Merge pull request #18538 from tareknaser/syntax_factory_sort_items
Migrate `sort_items` Assist to Use `SyntaxFactory`
2024-12-05 19:21:51 +00:00
David Barsky
6ef7f8e014
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
f31547dc0e
Merge pull request #18621 from Veykril/push-suuyuvsmqpyq
fix: Resolve generic parameters within use captures
2024-12-05 18:26:37 +00:00
Lukas Wirth
64832b0ddb fix: Resolve generic parameters within use captures 2024-12-05 19:11:33 +01:00
Lukas Wirth
0d8e5113d5
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
085ea34357 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
f9351a86ee
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
70380736bc fix: Panic when displaying generic params with defaults 2024-12-06 01:10:46 +09:00
Lukas Wirth
4883a12a97
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
a19e1dffe5 fix: Fix parsing of integer/keyword name refs in various places 2024-12-05 15:27:50 +01:00
Tarek
0a99a9f05f
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
b8db0c5a85
Merge pull request #18616 from Veykril/push-pkumxswtxspo
fix: Disable `<` typing handler again
2024-12-05 09:00:46 +00:00
Lukas Wirth
a9afc99c13 Disable < typing handler again 2024-12-05 09:46:23 +01:00
Lukas Wirth
3640db2190
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
6120a8ad0b
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
d5f3ed89cb Do not report warnings from proc macros, ever 2024-12-04 15:25:01 +02:00
Lukas Wirth
39aab9839c
Merge pull request #18541 from ChayimFriedman2/different-generic-args
feat: Complete diagnostics in ty lowering groundwork and serve a first diagnostic 🎉
2024-12-04 13:17:05 +00:00
Tarek
60e0e02a21
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
b1e0d31221 fix: refactor introduce_named_generic assist
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
d453198999 fix: correct token type for closing angle bracket
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
e7fd49cfb4 fix: refactor syntax_editor_add_generic_param
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
cfd5f7a40c 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
e275203e80 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
54b597ccf2 fix: implement syntax_editor_create_generic_param_list
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
797eb3ebe8 define syntax_editor_add_generic_param
Signed-off-by: Tarek <tareknaser360@gmail.com>
2024-12-04 14:50:03 +02:00
Tarek
7fa84a3f4b 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
61e8403ee2 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
1aae52210a 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
63acf60253 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
2a949d8725 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
609621db7f
Merge pull request #18593 from Veykril/push-nokqpzuqtmww
Fix parsing of parenthesized type args and RTN
2024-12-04 11:02:49 +00:00
Lukas Wirth
2b4dc9caac Fix parsing of parenthesized type args and RTN 2024-12-04 11:48:47 +01:00
Tarek
a1fa4971a6 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