Commit Graph

263604 Commits

Author SHA1 Message Date
Laurențiu Nicola 2ec71c8e85 Preparing for merge from rust-lang/rust 2024-08-29 10:02:05 +03:00
bors 266bb1fd96 Auto merge of #17994 - Veykril:proc-macro-srv-from-str-panic, r=Veykril
fix: Fix TokenStream::to_string implementation dropping quotation marks

Fixes https://github.com/rust-lang/rust-analyzer/issues/17986
We might wanna consider backporting this to beta if that's simple enough to do
2024-08-29 06:46:16 +00:00
Lukas Wirth 03d67458ee fix: Fix TokenStream::to_string implementation dropping quotation marks 2024-08-29 08:45:35 +02:00
Lukas Wirth 14ec1202e5 fix: Fix proc-macro server crashing when parsing a non-lexable string into a TokenStream 2024-08-29 08:45:19 +02:00
bors 3a14e301dd Auto merge of #17992 - Wilfred:newlines_in_logs, r=Veykril
internal: Avoid newlines in fetch errors

Most logs lines don't have newlines, ensure fetch errors follow this pattern. This makes it easier to see which log line is associated with the error.

Before:

    2024-08-28T21:11:58.431856Z ERROR FetchWorkspaceError:
    rust-analyzer failed to discover workspace

After:

    2024-08-28T21:11:58.431856Z ERROR FetchWorkspaceError: rust-analyzer failed to discover workspace
2024-08-29 04:52:11 +00:00
Wilfred Hughes 5aefe78301 internal: Avoid newlines in fetch workspace errors
Most logs lines don't have newlines, ensure fetch workspace errors follow this
 pattern.

Before:

2024-08-28T21:11:58.431856Z ERROR FetchWorkspaceError:
rust-analyzer failed to discover workspace

After:

2024-08-28T21:11:58.431856Z ERROR FetchWorkspaceError: rust-analyzer failed to discover workspace
2024-08-28 14:18:45 -07:00
bors 248a55723b Auto merge of #17981 - lnicola:proc-macro-cwd, r=Veykril
minor: Fix cwd used for proc macro expansion

Fixes #17980.
2024-08-28 10:36:11 +00:00
Laurențiu Nicola 51055f7141 Fix cwd used for proc macro expansion 2024-08-28 13:20:21 +03:00
bors 199c01df7a Auto merge of #17757 - alibektas:toggle_macro_delimiters, r=Veykril
assist: Add new assist toggle_macro_delimiter

Closes #17716
2024-08-27 12:25:43 +00:00
Lukas Wirth c9a3b02281 Fix tests 2024-08-27 14:23:23 +02:00
bors 2dce25020e Auto merge of #17974 - lnicola:rm-apache-appendix, r=lnicola
internal: Drop Apache license appendices

Closes #14586

Similar to https://github.com/rust-lang/rust/pull/67734
2024-08-27 12:08:25 +00:00
bors e4c404e2bd Auto merge of #17973 - Veykril:proc-macro-curr-dir, r=Veykril
Expand proc-macros in workspace root, not package root

Should fix https://github.com/rust-lang/rust-analyzer/issues/17748. The approach is generally not perfect though as rust-project.json projects don't benefit from this (still, nothing changes in that regard)
2024-08-27 11:53:04 +00:00
Laurențiu Nicola b592256bf0 Drop Apache license appendices 2024-08-27 14:52:34 +03:00
Lukas Wirth df4580b5c1 Expand proc-macros in workspace root, not package root 2024-08-27 13:40:24 +02:00
bors 65936887ff Auto merge of #17970 - ChayimFriedman2:unwrap-unsafe-block, r=Veykril
fix: Fix "Unwrap block" assist with block modifiers

The assist just assumes the `{` will be the first character, which led to strange outputs such as `nsafe {`.

Fixes #17964.
2024-08-27 09:17:10 +00:00
bors f0bfd43b32 Auto merge of #17972 - rust-lang:revert-17936-module_path, r=Veykril
Revert "feat: Implement `module_path` macro"

Reverts rust-lang/rust-analyzer#17936 Fixes https://github.com/rust-lang/rust-analyzer/issues/17968
2024-08-27 06:21:03 +00:00
Lukas Wirth 65d25fe17f
Revert "feat: Implement `module_path` macro" 2024-08-27 08:19:09 +02:00
Chayim Refael Friedman 65e9f8ba7f Fix "Unwrap block" assist with block modifiers
The assist just assumes the `{` will be the first character, which led to strange outputs such as `nsafe {`.
2024-08-26 19:02:36 +03:00
bors 05e6fb63c2 Auto merge of #17963 - avrong:avrong/error-lifetimes, r=Veykril
Always show error lifetime arguments as `'_`

Fixes #17947

Changed error lifetime argument presentation in non-test environment to `'_` and now showing them even if all of args are error lifetimes.

This also influenced some of the other tests like `extract_function.rs`, `predicate.rs` and `type_pos.rs`. Not sure whether I need to refrain from adding lifetimes args there. Happy to fix if needed
2024-08-26 10:06:21 +00:00
Aleksei Trifonov 9d4fdc0157 Show lifetime args if there are only error ones 2024-08-26 12:19:50 +03:00
Aleksei Trifonov 9dad25a7cb Show and render error lifetime args as `'_` 2024-08-26 12:19:42 +03:00
bors 239dc5db1c Auto merge of #17941 - ChayimFriedman2:pre-closure-to-fn, r=Veykril
Preliminary work for #17940

I split the PR as requested, and made small commits.
2024-08-26 08:09:15 +00:00
bors a3f1196dad Auto merge of #17962 - ChayimFriedman2:update-rtn, r=Veykril
fix: Fix Return Type Syntax to include `..` (i.e. `method(..)` and not `method()`) as specified in the RFC

Fixes #17952.
2024-08-26 07:51:30 +00:00
Chayim Refael Friedman 326a1c669d Fix Return Type Syntax to include `..` (i.e. `method(..)` and not `method()`) as specified in the RFC 2024-08-26 01:45:52 +03:00
bors e0b1719171 Auto merge of #17960 - duncanawoods:master, r=HKalbasi
fix: add extra_test_bin_args to test explorer test runner

`@HKalbasi` I thought I included this in #17470 but it appears not so I have created a new issue #17959 for this fix.
2024-08-25 11:48:32 +00:00
bors 31a532a30c Auto merge of #17961 - Veykril:autoderef-alloc, r=Veykril
internal: Don't allocate autoderef steps when not needed
2024-08-25 11:13:53 +00:00
Lukas Wirth 98e23d3706 internal: Don't allocate autoderef steps when not needed 2024-08-25 13:12:07 +02:00
duncan 2703ea1623 fix: add extra_test_bin_args to test explorer test runner
trim whitespace
2024-08-25 12:11:36 +01:00
bors bdee5c9c8c Auto merge of #17958 - Veykril:deref-chain-method-completions, r=Veykril
fix: Fix trait method completions not acknowledging Deref impls
2024-08-25 08:56:23 +00:00
Lukas Wirth 606401f03c fix: Fix trait method completions not acknowledging Deref impls 2024-08-25 10:47:30 +02:00
bors c223013005 Auto merge of #17956 - Veykril:metadata-err, r=Veykril
fix: Fix metadata retrying eating original errors
2024-08-25 07:30:09 +00:00
Lukas Wirth d9d8d9477f fix: Fix metadata retrying eating original errors 2024-08-25 09:28:47 +02:00
bors cba00a8406 Auto merge of #17955 - ChayimFriedman2:fix-fast-search-with-scope, r=Veykril
fix: Don't enable the search fast path for short associated functions when a search scope is set

In most places where we set a search scope it is a single file, and so the fast path will actually harm performance, since it has to search for aliases in the whole project. The only exception that qualifies for the fast path is SSR (there is an exception that don't qualify for the fast path as it search for `use` items). It sets the search scope to avoid dependencies. We could make it use the fast path, but I didn't bother.

I forgot this while working on #17927.
2024-08-25 05:19:07 +00:00
Chayim Refael Friedman 7bd3ca102d Don't enable the search fast path for short associated functions when a search scope is set
In most places where we set a search scope it is a single file, and so the fast path will actually harm performance, since it has to search for aliases in the whole project.
The only exception that qualifies for the fast path is SSR (there is an exception that don't qualify for the fast path as it search for `use` items). It sets the search scope to avoid dependencies. We could make it use the fast path, but I didn't bother.
2024-08-25 04:35:58 +03:00
Chayim Refael Friedman becfc5aeb9 Impl PartialEq and Eq for `IndentLevel`
We can impl PartialOrd and Ord too, but I didn't need that.
2024-08-24 23:46:32 +03:00
Chayim Refael Friedman 634052268f Provide `impl From<ast::TypeOrConstParam> for ast::GenericParam` 2024-08-24 23:46:32 +03:00
Chayim Refael Friedman 7339337793 Modify `hacks::parse_expr_from_str()` to take an edition too
This will be needed as we parse unknown identifiers and want to insert them into source code.
2024-08-24 23:46:32 +03:00
Chayim Refael Friedman 737a969aa5 Add helper methods to retrieve `Future::Output` and `Iterator::Item` 2024-08-24 23:46:32 +03:00
Chayim Refael Friedman 2c6a521bab Provide `Future::Output` and `Iterator` lang items 2024-08-24 23:46:32 +03:00
Chayim Refael Friedman 1e0df17667 Handle associated types that are lang items
Previously we were ignoring them.
2024-08-24 23:46:32 +03:00
Chayim Refael Friedman cf243e5211 Add `gen` modifier to functions
We don't yet lower or maybe even parse them, but blocks already have `gen`, so why not.
2024-08-24 23:46:32 +03:00
Chayim Refael Friedman 77ab5686c6 Preserve all spans for closure captures, not just one
This is important for the "convert closure to fn" assist, as it needs to find and modify the places the captures are used.
2024-08-24 23:46:32 +03:00
Chayim Refael Friedman 12faedd9b0 Fix few bugs in closure capture computation, and add tests
Also create a test infrastructure for capture computation.
2024-08-24 22:35:49 +03:00
bors a074e1abbb Auto merge of #17949 - Wilfred:include_build_file_in_watchers, r=lnicola
fix: rust-analyzer should watch build files from rust-project.json

rust-analyzer always watches Cargo.toml for changes, but other build systems using rust-project.json have their own build files.

Ensure we also watch those for changes, so we know when to reconfigure rust-analyzer when dependencies change.
2024-08-24 06:22:07 +00:00
Wilfred Hughes bdbc057bec Include buildfile path in watcher list 2024-08-23 17:49:03 -07:00
bors 3bd42d3c4d Auto merge of #17948 - ShoyuVanilla:parent-self-sized, r=Veykril
fix: Wrong `Self: Sized` predicate for trait assoc items

Again while implementing object safety like #17939 😅

If we call `generic_predicates_query` on `fn foo` in the following code;
```
trait Foo {
    fn foo();
}
```
It returns implicit bound `Self: Sized`, even though `Self` is not appearing as a generic parameter inside angle brackets, but as a parent generic parameter, "trait self".

This PR prevent pushing "implicit" `Self: Sized` predicates in such cases
2024-08-23 18:04:21 +00:00
Shoyu Vanilla eb896a580a fix: Wrong `Self: Sized` predicate for trait assoc items 2024-08-24 01:28:48 +09:00
bors 3a097e1659 Auto merge of #17857 - ChayimFriedman2:rust-project-cfg-group, r=Veykril
feat: Allow declaring cfg groups in rust-project.json, to help sharing common cfgs

Closes #17815.
2024-08-23 10:01:35 +00:00
bors e030cf01ba Auto merge of #17946 - Veykril:flycheck-crates-for, r=Veykril
internal: Don't requery crates_for for flycheck when crates are known
2024-08-23 09:47:05 +00:00
Lukas Wirth 5f7489a3d7 internal: Don't requery crates_for for flycheck when crates are known 2024-08-23 11:45:47 +02:00