Laurențiu Nicola
e37df4cd24
Be more resilient to bad language item definitions in binop inference
2024-08-14 14:38:39 +03:00
bors
b6913c577a
Auto merge of #17885 - Wilfred:op_queue_docs, r=lnicola
...
minor: Add a doc comment for OpQueue
Add an explanatory sentence and some sample code to help readers understand why this struct exists.
2024-08-14 05:13:44 +00:00
Wilfred Hughes
da907c2ec3
docs: Add a doc comment for OpQueue
...
Add an explanatory sentence and some sample code to help
readers understand why this struct exists.
2024-08-13 16:51:54 -07:00
Laurențiu Nicola
bd6fb363f0
Merge from rust-lang/rust
2024-08-13 17:58:52 +03:00
Shoyu Vanilla
588fa2c6ef
Bump rustc_pattern_analysis
2024-08-13 23:15:37 +09:00
Shoyu Vanilla
a7bc556a5e
Temporarily remove non-working test case
2024-08-13 23:10:55 +09:00
Shoyu Vanilla
5316ba9158
feat: `min-exhaustive-patterns
2024-08-13 23:10:55 +09:00
bors
f3d9c9df90
Auto merge of #17876 - Veykril:semantics-include-simplify, r=Veykril
...
internal: Remove unreachable logic for include token mapping
Turns out https://github.com/rust-lang/rust-analyzer/pull/17863 made this obsolete 🎉
2024-08-13 07:48:55 +00:00
Lukas Wirth
bd4785a6f0
Remove unreachable logic for include token mapping
2024-08-13 09:44:13 +02:00
bors
1093803e38
Auto merge of #17867 - ShoyuVanilla:issue-17854, r=Veykril
...
fix: Trailing excess comma in "Convert to named struct" assist
Fixes #17854
2024-08-13 06:24:19 +00:00
Shoyu Vanilla
2191a4686b
fix: Trailing excess comma in "Convert to named struct" assist
2024-08-12 23:36:28 +09:00
Shoyu Vanilla
db24cf5a48
fix: Missing non-exhaustive let diagnostics inside async or unsafe block
2024-08-12 23:19:03 +09:00
bors
18414cdf64
Auto merge of #17864 - Veykril:lsif, r=Veykril
...
fix: Build and run build scripts in lsif command
2024-08-12 12:34:31 +00:00
Lukas Wirth
154a9a15db
Build and run build scripts in lsif command
2024-08-12 14:33:11 +02:00
bors
518532426d
Auto merge of #17863 - Veykril:include-diags, r=Veykril
...
fix: Resolve included files to their calling modules in IDE layer
Fixes https://github.com/rust-lang/rust-analyzer/issues/17390 at the expense of reporting duplicate diagnostics for modules that have includes in them when both the calling and called file are included.
2024-08-12 11:48:32 +00:00
Lukas Wirth
2362975137
Resolve included files to their calling modules in IDE layer
2024-08-12 13:45:33 +02:00
bors
59c6eae5cc
Auto merge of #17850 - Veykril:rust-analyzer-crate, r=Veykril
...
internal: Reply to requests with defaults when vfs is still loading
There is no reason for us to hit the database with queries when we certainly haven't reached a stable state yet. Instead we just reply with default request results until we are in a state where we can do meaningful work. This should save us from wasting resources while starting up at worst, and at best save us from creating query and interning entries that are non-meaningful which ultimately just end up wasting memory.
2024-08-12 10:21:06 +00:00
Lukas Wirth
da3f7d55eb
internal: Reply to requests with defaults when vfs is still loading
2024-08-12 12:05:15 +02:00
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
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
Nadrieril
459e395519
Fixes in various places
2024-08-10 12:08:46 +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
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
Shoyu Vanilla
aa62c9d664
fix: Panic while rendering function with impl trait arg
2024-08-08 22:03:31 +09: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
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
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
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
Nicolas Guichard
6dcc4e34c2
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-06 14:27:22 +02:00
bors
b23142209e
Auto merge of #17745 - regexident:improve-crate-manifests, r=Veykril
...
Improve crate manifests, adding missing `[package.repository]` and `[package.description]` fields
As [discussed on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Could.20we.20add.20repository.20url.20to.20.60ra_ap_.60.20crates.20on.20crates.2Eio.3F/near/455095161 ).
cc `@Veykril` `@lnicola`
2024-08-06 06:28:54 +00:00
bors
5fe545c87f
Auto merge of #17805 - ShoyuVanilla:issue-17578, r=Veykril
...
fix: Panic in path transform with default type parameters
Fixes #17578
2024-08-06 06:14:36 +00:00
Vincent Esche
7dec7e92ea
Replace [package.repository] = "…"
of published crates with [package.repository.workspace] = true
2024-08-06 00:26:42 +02:00
Vincent Esche
624f2ead7b
Unify package descriptions by adding references to "rust-analyzer"
...
With the lack of a README on the individually published library crates and the somewhat cryptic `ra_ap_` prefix it is hard to figure out where those crates belong to, so mentioning "rust-analyzer" feels like auseful hint there.
2024-08-06 00:25:02 +02:00
Vincent Esche
f8de86b308
Apply Veykril's change suggestions
2024-08-06 00:25:02 +02:00
Vincent Esche
e9ee0d4166
Replace "ra_ap_ide
" with "ide
(aka ra_ap_ide
)"
2024-08-06 00:25:02 +02:00
Vincent Esche
0a45f6dc24
Fix spelling of "data structure"
2024-08-06 00:25:02 +02:00
Vincent Esche
ddb9686246
Fix spelling of "object-oriented"
2024-08-06 00:25:02 +02:00
Vincent Esche
07058a71d4
Fix obsolete repository URL in [package.repository]
of rust-analyzer
crate
2024-08-06 00:25:02 +02:00
Vincent Esche
6f329e6d5b
Add repository URL for published crates' missing [package.repository]
fields
2024-08-06 00:25:02 +02:00
Vincent Esche
b5b0f4bc5a
Replace "TBD"
with more helpful desciptions in published crates' [package.description]
fields
2024-08-06 00:25:02 +02:00
Shoyu Vanilla
0241116462
fix: Panic in path transform with default type parameters
2024-08-06 04:24:40 +09:00
bors
4a99d795d0
Auto merge of #17802 - Veykril:arg-mismatch-no-ty-mismatch, r=Veykril
...
fix: Surpress type mismatches in calls with mismatched arg counts
These tend to get very noisy, hiding the actual problem.
2024-08-05 14:35:50 +00:00
Lukas Wirth
deddbbfa60
Surpress type mismatches in calls with mismatched arg counts
2024-08-05 16:15:28 +02:00
bors
ce73b7cba2
Auto merge of #17771 - Veykril:parallel-vfs-config, r=Veykril
...
internal: Load VFS config changes in parallel
Simple attempt to make some progress f or https://github.com/rust-lang/rust-analyzer/issues/17373
No clue if those atomic orderings are right, though I don't think they are really too relevant either.
A more complete fix would probably need to replace our `ProjectFolders` handling a bit.
2024-08-05 14:07:22 +00:00
Lukas Wirth
e437db2483
Slightly optimize watch list in vfs
2024-08-05 15:56:23 +02:00
bors
25d9e05c03
Auto merge of #17791 - ShoyuVanilla:await-outside-of-async, r=Veykril
...
feat: Implement diagnostic for `await` outside of `async`
Closes #17781
2024-08-05 13:53:21 +00:00
bors
f62d7b9f11
Auto merge of #17775 - ShoyuVanilla:segregate-diags, r=Veykril
...
perf: Segregate syntax and semantic diagnostics
Closes #17731
2024-08-05 13:39:30 +00:00
Shoyu Vanilla
eea1e9b21f
perf: Segregate syntax and semantic diagnostics
2024-08-05 22:12:47 +09:00
Shoyu Vanilla
8a51419a2d
feat: Implement diagnostic for await
outside of async
2024-08-05 21:47:57 +09:00
bors
fbed308ebe
Auto merge of #17799 - Veykril:syntax-bridge, r=Veykril
...
Split out syntax-bridge into a separate crate
This functionality is not really tied to mbe macros, so imo it has no place in that crate.
2024-08-05 12:31:45 +00:00
bors
f6197355eb
Auto merge of #17784 - Young-Flash:block_with_label, r=Veykril
...
feat: support inlay hint for more expr with label
follow up https://github.com/rust-lang/rust-analyzer/pull/17635
2024-08-05 12:03:18 +00:00
Lukas Wirth
c9e1cb4887
Simplify
2024-08-05 13:58:01 +02:00
Lukas Wirth
188c577855
Newtype ErasedFileAstId
2024-08-05 13:46:47 +02:00
Lukas Wirth
d2dd4f6d5f
Split out syntax-bridge into a separate crate
2024-08-05 13:45:00 +02:00
Lukas Wirth
fcb88832de
Simplify FileDelegate
2024-08-05 13:03:03 +02:00
bors
000eed1da8
Auto merge of #17795 - Veykril:library-dep-loading, r=Veykril
...
feat: Load sysroot library via cargo metadata
See https://github.com/rust-lang/rust/pull/128534 , fixes https://github.com/rust-lang/rust-analyzer/issues/7637
Requires a toolchain from 176e54520 2024-08-04 or later to work.
2024-08-05 10:45:47 +00:00
Lukas Wirth
f053b1aa6a
feat: Load sysroot library via cargo metadata
2024-08-05 12:18:19 +02:00
Shoyu Vanilla
8fa454d7aa
fix: Insert a generic arg for impl Trait
when lowering generic args
2024-08-05 00:06:29 +09:00
Young-Flash
747615d95b
test: add test case for inlay hint support for expr with label
2024-08-04 19:19:15 +08:00
Lukas Wirth
c6ae9cde99
Wait with change processing until the vfs is done
2024-08-02 17:09:25 +02:00
Lukas Wirth
8286847bee
internal: Load VFS config changes in parallel
2024-08-02 13:04:15 +02:00
Lukas Wirth
758ad25229
internal: Remove AbsPathBuf::TryFrom impl that checks too many things at once
2024-08-02 11:08:19 +02:00
Young-Flash
722020e63f
feat: support inlay hint for more expr with label
2024-08-01 22:06:15 +08:00
Shoyu Vanilla
3121a91e0a
fix: Insert a tail Ok(())
for expr block instead of wrapping with Ok
2024-08-01 21:24:28 +09:00
Wilfred Hughes
e7d61e8f9c
docs: Fix JSON example for rust-analyzer.workspace.discoverConfig
...
The user does not specify `{arg}` in their JSON, and be pedantic about
commas in JSON sample.
2024-07-31 16:10:42 -07:00
Shoyu Vanilla
b5494d7cc3
Prevent redundant obigation push for assignee exprs
2024-08-01 02:51:33 +09:00