Commit graph

31122 commits

Author SHA1 Message Date
bors
e75bd2e00f Auto merge of #17843 - mo8it:flycheck, r=Veykril
internal: Performance optimizations

- Use `Command::arg` directly
- Avoid the overhead of the `select!` macro when possible
- Use `select_biased!`
2024-08-12 09:27:47 +00:00
bors
aa845d033e Auto merge of #17842 - mo8it:crossbeam-channel, r=Veykril
internal: Optimize the usage of channel senders

Used `Sender` directly instead of a boxed closure. There is no need to use the boxed closure. This also allows the caller to decide to do something other than `unwrap` (not a fan of it BTW).
2024-08-12 09:13:37 +00:00
bors
e2fd1db609 Auto merge of #17859 - Veykril:rustc_deprecated_safe_2024, r=Veykril
fix: Correctly support `#[rustc_deprecated_safe_2024]`

Fixes https://github.com/rust-lang/rust-analyzer/issues/17852
2024-08-12 08:59:08 +00:00
Lukas Wirth
ded3e21fdd fix: Correctly support #[rustc_deprecated_safe_2024] 2024-08-12 10:56:59 +02:00
mo8it
1549f10e95 Use the send method 2024-08-12 10:55:04 +02:00
mo8it
66859ed9d3 Add more track_caller 2024-08-12 10:54:46 +02:00
mo8it
b06cd17c13 Add track_caller 2024-08-12 10:44:00 +02:00
mo8it
7cce80c173 Revert "Remove unneeded send method"
This reverts commit 567bde603c.
2024-08-12 10:42:35 +02:00
bors
c7cbbb9195 Auto merge of #17833 - edevil:fix_expansion_limit, r=Veykril
Reuse recursion limit as expansion limit

A configurable recursion limit was introduced by looking at the recursion_limit crate attribute. Instead of relying on a global constant we will reuse this value for expansion limit as well.

Addresses: https://github.com/rust-lang/rust-analyzer/issues/8640#issuecomment-2271740272
2024-08-12 08:22:55 +00:00
bors
6d9af33b31 Auto merge of #17845 - ShoyuVanilla:tait, r=Veykril
feat: Implement TAIT and fix ATPIT a bit

Closes #16296 (Commented on the issue)

In #16852, I implemented ATPIT, but as I didn't discern ATPIT and other non-assoc TAIT, I guess that it has been working for some TAITs.

As the definining usage of TAIT requires it should be appear in the Def body's type(const blocks' type annotations or functions' signatures), this can be done in simlilar way with ATPIT

And this PR also corrects some defining-usage resolution for ATPIT
2024-08-12 08:08:40 +00:00
mo8it
2ece0fbfef Fix deadlock 2024-08-11 14:58:50 +02:00
bors
0daeb5c0b0 Auto merge of #17844 - Veykril:find-path-std-fix, r=Veykril
fix: Fix find_path not respecting non-std preference config correctly

Fixes https://github.com/rust-lang/rust-analyzer/issues/17840
2024-08-10 15:47:18 +00:00
bors
0832df8d94 Auto merge of #17849 - Veykril:rust-analyzer-crate, r=Veykril
internal: Move some main crate stuff
2024-08-10 15:07:37 +00:00
Lukas Wirth
1829460eed Add comments regarding workspace structure change querying 2024-08-10 17:04:38 +02:00
Lukas Wirth
6869b30980 Move some stuff 2024-08-10 16:46:53 +02:00
Lukas Wirth
24c0e0bd48 fix: Fix find_path not respecting non-std preference config correctly 2024-08-10 10:32:10 +02:00
Shoyu Vanilla
c530e21714 feat: Implement TAIT 2024-08-10 15:22:05 +09:00
mo8it
d30711ae73 Avoid the overhead of select! when possible 2024-08-10 02:12:09 +02:00
mo8it
9731fa9fe0 Use select_biased 2024-08-10 02:05:08 +02:00
mo8it
cb1c7b3b99 Simplify check_command while avoiding allocations 2024-08-10 00:24:55 +02:00
mo8it
567bde603c Remove unneeded send method 2024-08-09 23:59:42 +02:00
mo8it
0b541ebbaa Use crossbeam-channel from the workspace 2024-08-09 23:48:03 +02:00
mo8it
3b560a550a Use Sender instead of boxed closure in vfs 2024-08-09 23:40:32 +02:00
mo8it
cb6b2ab5ba Use Sender directly instead of a boxed closure 2024-08-09 23:24:57 +02:00
bors
56f63dfd8a Auto merge of #17836 - winstxnhdw:sysroot, r=Veykril
minor: log error when sysroot can't be discovered

Closes #17808
2024-08-09 09:20:44 +00:00
winstxnhdw
c2ee843b31
minor: log error when sysroot can't be discovered 2024-08-09 03:50:48 +08:00
André Cruz
6041433999
Reuse recursion limit as expansion limit
A configurable recursion limit was introduced by looking at the
recursion_limit crate attribute. Instead of relying on a global constant
we will reuse this value for expansion limit as well.
2024-08-08 17:12:20 +01:00
bors
dab022fb31 Auto merge of #17832 - ShoyuVanilla:issue-17811, r=Veykril
fix: Panic while rendering function type hint with impl trait arg

Fixes #17811
2024-08-08 13:39:42 +00:00
Shoyu Vanilla
aa62c9d664 fix: Panic while rendering function with impl trait arg 2024-08-08 22:03:31 +09:00
bors
34d9409211 Auto merge of #17831 - Veykril:flycheck-move-to-rust-analyzer, r=Veykril
internal: Move and split flycheck crate into rust-analyzer main crate

The crate no longer is about flychecking, it mainly hosts common command process handling shared by flycheck, test explorer and now project discovery. This re-organizes that into the main crate.
2024-08-08 11:10:28 +00:00
Lukas Wirth
6bb29b1b54 Split up flycheck module 2024-08-08 13:08:50 +02:00
Lukas Wirth
085e4126e6 Move flycheck crate into rust-analyzer main crate 2024-08-08 13:06:39 +02:00
bors
b02c6bff7d Auto merge of #17827 - regexident:improve-crate-manifests-continuation, r=lnicola
Improve crate manifest of 'syntax-bridge', adding missing `[package.repository]` and `[package.description]` fields

This is a follow-up of https://github.com/rust-lang/rust-analyzer/pull/17745, specifically [this comment](https://github.com/rust-lang/rust-analyzer/pull/17745#issuecomment-2271102382) by `@lnicola.`

It refines the manifest of the newly added 'syntax-bridge' crate, adding a `[package.repository]` as `workspace = true` and changes the existing `[package.description]` from "TBD" to a more useful description.
2024-08-08 09:35:56 +00:00
Vincent Esche
b8cf3c48f3 Add missing [package.description] for 'syntax-bridge' crate 2024-08-07 19:58:13 +02:00
Vincent Esche
a966f6ec31 Make 'syntax-bridge' crate inherit [package.repository] from workspace 2024-08-07 19:57:59 +02:00
bors
935883fd82 Auto merge of #17825 - Veykril:server-things, r=Veykril
internal: Offload diagnostics serialization to the task pool
2024-08-07 15:01:52 +00:00
bors
9f69ed32b2 Auto merge of #17824 - ShoyuVanilla:fix-diags, r=Veykril
fix: Native diagnostics not working

              This should be a `continue` now

_Originally posted by `@Veykril` in https://github.com/rust-lang/rust-analyzer/pull/17775#discussion_r1706845633_

I've tested the release compile output with IDE in the original PR, but my test workspace had only one `.rs` file 🤦 😢
2024-08-07 14:47:34 +00:00
Lukas Wirth
a147018e8e Offload diagnostics serialization to the task pool 2024-08-07 16:43:51 +02:00
Lukas Wirth
bb60c21885 Slightly quieter fatal panics 2024-08-07 16:35:58 +02:00
Shoyu Vanilla
ec0f00fc03 Fix native diagnostics not working 2024-08-07 23:33:39 +09:00
bors
0e282fcd04 Auto merge of #17823 - Veykril:mod-unconfigured-diag, r=Veykril
fix: Fix unconfigured diagnostic being attached to the wrong file for modules

Fixes https://github.com/rust-lang/rust-analyzer/issues/17817
2024-08-07 13:08:35 +00:00
Lukas Wirth
e3e31ce199 Fix unconfigured diagnostic being attached to the wrong file for modules 2024-08-07 15:07:09 +02:00
bors
4523657760 Auto merge of #17821 - Veykril:project-model-cleanup, r=Veykril
internal: Remove unnecessary CfgFlag definition in project-model
2024-08-07 12:46:26 +00:00
Lukas Wirth
ffd28e6ee9 Fix cargo config get env parsing 2024-08-07 14:36:22 +02:00
Lukas Wirth
d2fe906a62 Remove unnecessary CfgFlag definition in project-model 2024-08-07 14:27:59 +02:00
bors
0c20faf1f3 Auto merge of #17809 - nicolas-guichard:index-vendored, r=Veykril
Include vendored crates in StaticIndex

`StaticIndex::compute` filters out modules from libraries. This makes an exceptions for vendored libraries, ie libraries actually defined inside the workspace being indexed.

This aims to solve https://bugzilla.mozilla.org/show_bug.cgi?id=1846041 In general StaticIndex is meant for code browsers, which likely want to index all visible source files.
2024-08-07 11:05:49 +00:00
bors
ee10731c31 Auto merge of #17813 - roife:fix-issue-17803, r=Veykril
fix: tyck for non-ADT types when searching refs for `Self` kw

See e0276dc5dd (r1389848845)

For ADTs, to handle `{error}` in generic args, we should to convert them to ADT for comparisons; for others, we can directly compare the types.
2024-08-07 06:34:46 +00:00
bors
ddcd66b6b0 Auto merge of #17818 - alibektas:hidden_rust_project_json, r=Veykril
Allow rust-project.json to be hidden

Closes #17816
2024-08-07 06:20:40 +00:00
Ali Bektas
2426649661 Allow rust-project.json to be hidden 2024-08-07 03:27:03 +02:00
roife
dc104b05cd fix: tyck for non-ADT types when searching refs for Self kw 2024-08-06 21:52:43 +08:00