Commit graph

18537 commits

Author SHA1 Message Date
bors
8d3522e557 Auto merge of #15825 - Austaras:master, r=flodiebold
fix: better resolve assoc item with type bound

Closes #15772
2023-11-21 09:44:43 +00:00
bors
2e7e8cc7b9 Auto merge of #15940 - pascalkuthe:fix_rename, r=Veykril
ensure renames happen after edit

This is a bugfix for an issue I fould while working on helix. Rust-analyzer currently always sends any filesystem edits (rename/file creation) before any other edits. When renaming a file that is also being edited that would mean that the edit would be discarded and therefore an incomplete/incorrect refactor (or even cause the creation of a new file in helix altough that  is probably a pub on our side).

Example:

* create a module: `mod foo` containing a `pub sturct Bar;`
* reexport the struct uneder a different name in the `foo` module using a *fully qualified path*: `pub use crate::foo::Bar as Bar2`.
* rename the `foo` module to `foo2` using rust-analyzer
* obsereve that the path is not correctly updated (rust-analyer first sends a rename `foo.rs` to `foo2.rs` and then edits `foo.rs` after)

This PR fixes that issue by simply executing all rename operations after all edit operations (while still executing file creation operations first). I also added a testcase similar to the example above.

Relevent excerpt from the LSP standard:

> Since version 3.13.0 a workspace edit can contain resource operations (create, delete or rename files and folders) as well. If resource operations are present clients need to execute the operations in the order in which they are provided. So a workspace edit for example can consist of the following two changes: (1) create file a.txt and (2) a text document edit which insert text into file a.txt. An invalid sequence (e.g. (1) delete file a.txt and (2) insert text into file a.txt) will cause failure of the operation. How the client recovers from the failure is described by the client capability: workspace.workspaceEdit.failureHandling
2023-11-21 09:33:01 +00:00
bors
1a5cee1731 Auto merge of #15911 - Young-Flash:fix_missing_assoc_item, r=lnicola
fix: handle default constant values in `trait_impl_missing_assoc_item` diagnostic

A patch of https://github.com/rust-lang/rust-analyzer/pull/15895, close https://github.com/rust-lang/rust-analyzer/issues/15909

cc `@Veykril`
2023-11-20 17:49:45 +00:00
bors
375142902c Auto merge of #15885 - RunDevelopment:patch-1, r=lnicola
Fix typo in highlight_related.rs

While reading the user manual, I noticed a random tick, so I went ahead and fixed it. The `await` keyword should be properly rendered as inline code.

![image](https://github.com/rust-lang/rust-analyzer/assets/20878432/f134a4c9-e539-4635-97ac-506790893869)
2023-11-20 17:37:59 +00:00
Laurențiu Nicola
a54c0dafc8 Remove debugging code in path resolution 2023-11-17 20:58:43 +02:00
Young-Flash
1cbda612bc chore: add use case for PathSegment::qualifying_trait 2023-11-17 21:31:33 +08:00
austaras
808f6687f7 address comment 2023-11-17 16:53:38 +08:00
Laurențiu Nicola
5fde7a4485 Merge commit '141fc695dca1df7cfc3c9803972ec19bb178dcbc' into sync-from-ra 2023-11-16 22:27:35 +02:00
Laurențiu Nicola
480cb60be3 Bump libc 2023-11-16 21:48:49 +02:00
Sarrus1
97dea2c699
remove unused PhantomData 2023-11-16 18:39:36 +01:00
austaras
e95ec55273 fix: better resolve assoc item with type bound 2023-11-16 23:17:00 +08:00
Young-Flash
cfc881ae13 fix missing assoc item 2023-11-16 22:27:21 +08:00
bors
58de0b130a Auto merge of #15902 - lnicola:bump-deps, r=Veykril
internal: Bump deps pt. 1
2023-11-15 19:37:06 +00:00
Laurențiu Nicola
da24b6fb12 Bump memchr 2023-11-15 21:24:20 +02:00
Laurențiu Nicola
8ea06c8ec8 Bump arbitrary and derive-arbitrary 2023-11-15 21:22:34 +02:00
Laurențiu Nicola
c6fad55c98 Bump bitflags 2023-11-15 21:20:47 +02:00
Laurențiu Nicola
3ed27d21f2 Bump cargo_metadata 2023-11-15 21:18:49 +02:00
Laurențiu Nicola
2814d646cb Bump rayon 2023-11-15 21:14:56 +02:00
Laurențiu Nicola
b18ce4f8ea Bump xshell 2023-11-15 21:12:18 +02:00
Lukas Wirth
e8c4007cfc Fix builtin line! expansion 2023-11-15 14:06:10 +01:00
Laurențiu Nicola
c66084b9c6 Bump ra-ap-rustc_index and ra-ap-rustc_abi 2023-11-15 13:42:13 +02:00
Laurențiu Nicola
b267f6b071 Bump ra-ap-rustc_lexer 2023-11-15 13:40:43 +02:00
Laurențiu Nicola
829cf8db4c Bump dissimilar 2023-11-15 13:34:56 +02:00
Laurențiu Nicola
a1f81a7e75 Bump chalk 2023-11-15 13:31:45 +02:00
Laurențiu Nicola
441e8c71f1 Remove outdated comment 2023-11-15 13:27:48 +02:00
Laurențiu Nicola
c4dfa06b9d Bump tracing-log 2023-11-15 13:25:19 +02:00
Laurențiu Nicola
1fc056ec93 Bump indexmap 2023-11-15 13:21:34 +02:00
Laurențiu Nicola
2bfd6b659d Bump serde_json 2023-11-15 13:17:36 +02:00
Laurențiu Nicola
cb8434e594 Bump either 2023-11-15 13:07:36 +02:00
Laurențiu Nicola
2dbdaa247b Bump tracing-subscriber 2023-11-15 13:04:39 +02:00
Laurențiu Nicola
d83620a5ba Bump tracing-tree 2023-11-15 13:01:54 +02:00
Laurențiu Nicola
f53368dd3f Bump tracing 2023-11-15 13:00:32 +02:00
Laurențiu Nicola
f66df10f87 Bump itertools 2023-11-15 12:53:56 +02:00
Laurențiu Nicola
dfc885e0fd Bump anyhow 2023-11-15 12:49:32 +02:00
bors
57ef70cc08 Auto merge of #15901 - Veykril:inner-diag, r=lnicola
fix: Diagnose everything in nested items, not just def diagnostics

Turns out we only calculated def diagnostics for these before (was wondering why I wasn't getting any type mismatches)
2023-11-15 10:07:15 +00:00
bors
535eb0da9d Auto merge of #15874 - DropDemBits:structured-snippet-migrate-4, r=Veykril
internal: Migrate assists to the structured snippet API, part 4

Continuing from #15260

Migrates the following assists:
- `add_turbo_fish`
- `add_type_ascription`
- `destructure_tuple_binding`
- `destructure_tuple_binding_in_subpattern`

I did this a while ago, but forgot to make a PR for the changes until now. 😅
2023-11-15 09:54:45 +00:00
bors
a47330308b Auto merge of #15875 - Young-Flash:fix_grammar, r=Veykril
fix `PathSegment` grammar

close https://github.com/rust-lang/rust-analyzer/issues/15778
2023-11-15 09:43:11 +00:00
Lukas Wirth
498f39eae2 fix: Diagnose everything in nested items, not just def diagnostics 2023-11-15 10:34:09 +01:00
Laurențiu Nicola
6b53c09ef5 Merge branch 'master' into sync-from-rust 2023-11-15 09:46:27 +02:00
Laurențiu Nicola
610eafe009 Merge commit '76633199f4316b9c659d4ec0c102774d693cd940' into sync-from-rust 2023-11-15 09:45:17 +02:00
DropDemBits
3f99a56fae
Fix panic in add_type_ascription
Assist wasn't applicable when the let statement was missing a pattern
before, so we should do the same now.
2023-11-14 18:43:48 -05:00
DropDemBits
df629627c5
Add tests for LetStmt::set_ty 2023-11-14 17:35:24 -05:00
Lukas Wirth
723d799ec1 Diagnose missing assoc items in trait impls 2023-11-14 22:00:52 +01:00
Lukas Wirth
e21d21a8fb Diagnose incorrect unsafety for trait impls 2023-11-14 21:05:27 +01:00
Lukas Wirth
d5faad1dae Fix inlay-hint tests being invalidated by minicore chanes 2023-11-14 18:53:48 +01:00
Lukas Wirth
6ddccc9a6e Diagnose some orphan trait impl cases 2023-11-14 18:09:34 +01:00
Laurențiu Nicola
d45ff2484f Depend on rustc_driver 2023-11-14 18:07:02 +02:00
Laurențiu Nicola
0bed774795 Depend on rustc_driver 2023-11-14 18:07:02 +02:00
Lukas Wirth
b74015512d Remove UserError from LayoutError 2023-11-14 13:32:04 +01:00
Lukas Wirth
e844784d8d Simplify 2023-11-14 12:53:14 +01:00
DropDemBits
787ca888e3
Add IdentPat::set_pat
Needed so that the `tuple_pat` node gets added to the syntax tree,
which is required as we're using structured snippets.
2023-11-13 20:41:06 -05:00
DropDemBits
6f68cd3394
Remove unwraps from destructure_tuple_binding 2023-11-13 18:42:58 -05:00
Laurențiu Nicola
b6951defa6 Add missing rustc_private features 2023-11-13 21:38:57 +02:00
Laurențiu Nicola
ce8789a78e Add missing rustc_private features 2023-11-13 21:38:57 +02:00
Michael Schmidt
67058605d8
FIxed typo in highlight_related.rs 2023-11-13 13:13:39 +01:00
Young-Flash
3e5bc9a9c8 impl qualifying_trait for PathSegment 2023-11-13 18:14:00 +08:00
Lukas Wirth
d6b908ec41 Fix import preference config keys 2023-11-12 17:48:40 +01:00
Laurențiu Nicola
bad3d9e766 Include toml files in the vfs 2023-11-12 16:45:47 +02:00
bors
1152f593b3 Auto merge of #15870 - lnicola:expand-macro, r=lnicola
minor: Make "Expand macro" command title more explicit

Closes [#15856](https://github.com/rust-lang/rust-analyzer/issues/15856).

I opted for "caret", since it's the better term (cursor is the mouse), but I'm not sure how popular it is these days.
2023-11-12 13:48:43 +00:00
Laurențiu Nicola
cace36cade Make Expand macro command title more explicit 2023-11-12 11:43:46 +02:00
Young-Flash
23fde40fed fix PathSegment grammar 2023-11-12 11:20:14 +08:00
DropDemBits
4aaa592a9a
Migrate destructure_tuple_binding to mutable ast
Due to the way the current tree mutation api works, we need to collect
changes before we can apply them to the real syntax tree, and also can only
switch to a file once.

`destructure_tuple_binding_in_sub_pattern` also gets migrated even
though can't be used.
2023-11-11 21:07:19 -05:00
DropDemBits
f3dcc67dfa
Migrate add_type_ascription 2023-11-11 21:05:27 -05:00
DropDemBits
5fc8cc52e2
Add LetStmt::set_ty
Way for setting and removing the type ascription of a let stmt
2023-11-11 21:05:27 -05:00
DropDemBits
92422f7488
Use syntax's version of SyntaxElement 2023-11-11 21:05:27 -05:00
DropDemBits
cc4e06f04b
Migrate add_turbo_fish to mutable ast
`add_type_ascription` is still left as-is since it's a different assist
2023-11-11 21:05:26 -05:00
DropDemBits
02c7b8b9ba
Add MethodCallExpr::get_or_create_generic_arg_list
Mirrors `PathSegment's` version, except that it always generates a
turbofish
2023-11-11 21:05:26 -05:00
Lukas Wirth
74e5444f15 Fix some FIXMEs 2023-11-11 15:49:57 +01:00
Lukas Wirth
ba61766217 Add config for preferring / ignoring prelude modules in find_path 2023-11-11 14:56:38 +01:00
Lukas Wirth
801a887954 Record all import paths per item in ImportMap 2023-11-11 14:48:44 +01:00
Lukas Wirth
2339ba4440 Prepare ImportMap for supportin multiple import paths per item 2023-11-11 14:04:24 +01:00
Pascal Kuthe
0647b645cd
ensure renames happen after edit 2023-11-10 17:39:32 +01:00
Laurențiu Nicola
9826717550 Improve check for include macro 2023-11-10 16:53:08 +02:00
bors
7cca4e5816 Auto merge of #15854 - alibektas:15782/relax_hidden_attr, r=lnicola
fix: Ignore doc(hidden) attr if no body is present

fixes #15782
2023-11-10 13:30:52 +00:00
bors
5afaf680b8 Auto merge of #15864 - Young-Flash:find_self, r=lnicola
fix: find `Self` reference

took a lot of time to debug to find the problem, here should compare the actual `Adt` type

close https://github.com/rust-lang/rust-analyzer/issues/12693
2023-11-10 13:13:14 +00:00
Young-Flash
e0276dc5dd fix: find Self reference 2023-11-10 19:54:43 +08:00
bors
76633199f4 Auto merge of #15860 - HKalbasi:fix-capture-raw-pointer, r=HKalbasi
Truncate closure capture place for raw pointer

fix https://github.com/rust-lang/rust-analyzer/issues/15670#issuecomment-1804070623
2023-11-09 17:53:52 +00:00
bors
ebb9ed90d1 Auto merge of #15853 - Kangaxx-0:gaxx/update-parser-event-comment, r=lnicola
Try to update parser/event doc

`TokenSource` and `TreeSink` has been refactored as part of #10765, they no longer exist in code repo. This pr tries to remove them from event module level comment to prevent confusion.
2023-11-09 17:39:58 +00:00
hkalbasi
3bcdb7d886 Truncate closure capture place for raw pointer 2023-11-09 20:59:17 +03:30
Young-Flash
be62e0bf08 fix: remove parenthesis should ensure space 2023-11-09 18:33:49 +08:00
Ali Bektas
b0101da116 Ignore doc(hidden) attr if no body is present 2023-11-09 02:12:53 +01:00
Gaxx
fa7a91844a Try to update parser doc 2023-11-08 16:29:21 -08:00
bors
7059ae2fc2 Auto merge of #15847 - wasd96040501:feat/preview_adt, r=lnicola
feat: preview adt field when hover

Closes #13977
![20231108194345_rec_](https://github.com/rust-lang/rust-analyzer/assets/14040068/95894c4b-de6e-4ca4-98b3-6ab4559d0950)
2023-11-08 13:48:19 +00:00
YangzeLuo
41bcd542e2 feat: preview adt field when hover 2023-11-08 21:45:32 +08:00
Laurențiu Nicola
d1d111d09e Merge commit '3b7c7f97e4a7bb253a8d398ee4f8346f6cf2817b' into sync-from-ra 2023-11-08 08:15:03 +02:00
Laurențiu Nicola
741875e6a2 Merge commit '3b7c7f97e4a7bb253a8d398ee4f8346f6cf2817b' into sync-from-ra 2023-11-08 08:15:03 +02:00
hkalbasi
1086b294c2 update rustc dependencies 2023-11-08 01:16:47 +03:30
roife
13249b7dd9 fix: correct a typo in a comment in base-db/lib.rs 2023-11-07 14:51:34 +08:00
Young-Flash
b84940b199 make generate_mut_trait_impl assist trigged for std trait only 2023-11-05 12:27:10 +08:00
Young-Flash
8d8d12120d feat: add generate_mut_trait_impl assist 2023-11-05 12:27:10 +08:00
Laurențiu Nicola
19bf0da9d7 Fix docs path for derive macros 2023-11-04 13:33:19 +02:00
Nicholas Nethercote
6eaf3f8bb2 Remove support for compiler plugins.
They've been deprecated for four years.

This commit includes the following changes.
- It eliminates the `rustc_plugin_impl` crate.
- It changes the language used for lints in
  `compiler/rustc_driver_impl/src/lib.rs` and
  `compiler/rustc_lint/src/context.rs`. External lints are now called
  "loaded" lints, rather than "plugins" to avoid confusion with the old
  plugins. This only has a tiny effect on the output of `-W help`.
- E0457 and E0498 are no longer used.
- E0463 is narrowed, now only relating to unfound crates, not plugins.
- The `plugin` feature was moved from "active" to "removed".
- It removes the entire plugins chapter from the unstable book.
- It removes quite a few tests, mostly all of those in
  `tests/ui-fulldeps/plugin/`.

Closes #29597.
2023-11-04 08:50:46 +11:00
Nicholas Nethercote
924d2cec3a Remove support for compiler plugins.
They've been deprecated for four years.

This commit includes the following changes.
- It eliminates the `rustc_plugin_impl` crate.
- It changes the language used for lints in
  `compiler/rustc_driver_impl/src/lib.rs` and
  `compiler/rustc_lint/src/context.rs`. External lints are now called
  "loaded" lints, rather than "plugins" to avoid confusion with the old
  plugins. This only has a tiny effect on the output of `-W help`.
- E0457 and E0498 are no longer used.
- E0463 is narrowed, now only relating to unfound crates, not plugins.
- The `plugin` feature was moved from "active" to "removed".
- It removes the entire plugins chapter from the unstable book.
- It removes quite a few tests, mostly all of those in
  `tests/ui-fulldeps/plugin/`.

Closes #29597.
2023-11-04 08:50:46 +11:00
bors
11a263d5ee Auto merge of #15819 - wasd96040501:feat/skip_tt_count_limit, r=lnicola
feat: skip checking token tree count for include! macro call

fix #15335 #15648
2023-11-02 10:48:51 +00:00
luoyangze.ptrl
b76f2c8ee0 fix: using name(include) instead of str 2023-11-02 10:14:54 +08:00
luoyangze.ptrl
740a864b7c feat: skip checking tt count for include macro call 2023-11-02 00:27:11 +08:00
bors
99e94d2938 Auto merge of #15788 - Young-Flash:import_anonymously, r=lnicola
feat: import trait with alias

![import_trait_with_alias](https://github.com/rust-lang/rust-analyzer/assets/71162630/81601160-fe55-46e3-ab8d-b2705e1aa696)

cc `@Veykril`

close https://github.com/rust-lang/rust-analyzer/issues/15684
2023-10-31 14:33:00 +00:00
Young-Flash
929544ef28 use check_assist_by_label to pick assist 2023-10-31 22:13:07 +08:00
Young-Flash
a723acf346 simplify the code 2023-10-31 21:03:26 +08:00
cui fliter
9c99afe3aa Fix some typos
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-10-30 10:31:50 +08:00