Commit graph

24711 commits

Author SHA1 Message Date
Lukas Wirth
679df2adf1 Specify rust-version via workspace.package 2023-01-16 16:33:01 +01:00
Lukas Wirth
3a95864df5 Unconditionally enable location links in inlay hints again 2023-01-16 16:04:38 +01:00
bors
5306eb06cc Auto merge of #13947 - WaffleLapkin:adjustment_hint_tooltips, r=Veykril
Add basic tooltips to adjustment hints

![2023-01-16_16-45](https://user-images.githubusercontent.com/38225716/212681383-a60b60bb-a8e7-410d-8b24-f6b72c197311.png)

I'm not sure how to make them look nicer, but it's at least something.
2023-01-16 13:11:16 +00:00
bors
27c9c2fcaf Auto merge of #13961 - lowr:fix/impl-missing-members-type-neq, r=Veykril
fix: don't generate `PartialEq`/`PartialOrd` methods body for types don't match

Fixes #12985

This PR changes the implementation of well-known trait methods body generation so that it takes generic arguments of traits into account and does not generate `PartialEq`/`PartialOrd` methods body when the self type and rhs type don't match.

I took this opportunity to add `hir::TraitRef`, which has been suggested by a FIXME note. I didn't change the signature of the existing method `hir::Impl::trait_(self, db) -> Option<Trait>` as suggested by FIXME but added a new method because you quite often only want to know the trait rather than `TraitRef`s.
2023-01-16 12:56:35 +00:00
Maybe Waffle
81d7e302ed Add basic tooltips to adjustment hints 2023-01-16 12:44:39 +00:00
Ryo Yoshida
fc56cacfc1
Test TraitRef equality before generating missing impl method body 2023-01-16 20:55:56 +09:00
Ryo Yoshida
8afaaa54b0
Add TraitRef for HIR 2023-01-16 20:55:51 +09:00
bors
ff4d55e480 Auto merge of #13956 - nielx:fix/nix-haiku-fix, r=lnicola
Update command-group from 1.0.8 to 2.0.1

With #13552 the depencency of on the command-group crate was introduced, which also introduced a dependency on nix. That version of nix does not build on Haiku. This change introduces a newer version of command-group, which also updates nix from 0.22.3 to 0.26.1, which is compatible on Haiku.
2023-01-15 13:37:07 +00:00
Niels Sascha Reedijk
8aa1d2d789 Update command-group from 1.0.8 to 2.0.1
With #13552 the depencency of on the command-group crate was introduced, which also
introduced a dependency on nix. That version of nix does not build on Haiku. This
change introduces a newer version of command-group, which also updates nix from
0.22.3 to 0.26.1, which is compatible on Haiku.
2023-01-15 08:20:25 +00:00
bors
6189be13ab Auto merge of #13952 - WaffleLapkin:either_ast_node2, r=lnicola
minor: Use the fact that `Either`: `AstNode`

Continuation of https://github.com/rust-lang/rust-analyzer/pull/13949
2023-01-14 15:34:32 +00:00
Maybe Waffle
a7787533af Use the fact that Either: AstNode 2023-01-14 15:20:32 +00:00
bors
c78b9f0068 Auto merge of #13949 - WaffleLapkin:either_ast_node, r=Veykril
minor: implement `AstNode` for `Either`

Makes code a little bit nicer
2023-01-14 13:50:11 +00:00
bors
ce86f12e8d Auto merge of #13945 - bvanjoi:orpat-match, r=lnicola
fix: check orpat in missing match

fixed #13942
2023-01-14 13:37:30 +00:00
bors
8800ea6461 Auto merge of #13950 - WaffleLapkin:iterate_over_arrays_directly, r=Veykril
minor: Iterate over arrays dirrectly, instead of going through a slice

Minor code improvement.
2023-01-14 13:08:36 +00:00
Maybe Waffle
bd04416aaa Iterate over arrays dirrectly, instead of going through a slice 2023-01-14 13:02:28 +00:00
bors
6673e515b7 Auto merge of #13948 - Veykril:inlay-hints, r=Veykril
Make inlay hint location links work for more types
2023-01-14 12:50:26 +00:00
Maybe Waffle
cfc01150bf implement AstNode for Either 2023-01-14 12:45:20 +00:00
Lukas Wirth
27ba598dfe Make inlay hint location links work for more types 2023-01-14 13:30:56 +01:00
bors
ce6955c10e Auto merge of #13946 - Veykril:inlay-hints, r=Veykril
Remove hover inlay tooltips, replace them with location links

Turns out we re-implemented what clients can already figure out through the use of location-links. We might want lazy resolves tooltips later on still, but for now this simplifies things again.
2023-01-14 12:22:43 +00:00
Lukas Wirth
f2444b2a40 Remove unnecessary Hint suffix on InlayKind variants 2023-01-14 13:08:45 +01:00
Lukas Wirth
60075a6625 Remove hover inlay tooltips, replace them with location links 2023-01-14 12:19:29 +01:00
bvanjoi
e9724e55df fix: check orpat in missing match 2023-01-14 18:54:45 +08:00
bors
32be158630 Auto merge of #13941 - matklad:rpj, r=Veykril
internal: explain the idea behind rust-project.json
2023-01-14 09:40:40 +00:00
bors
2e15df6900 Auto merge of #106646 - Amanieu:ilp32-object, r=Mark-Simulacrum
Fix aarch64-unknown-linux-gnu_ilp32 target

This was broken because the synthetic object files produced by rustc were for 64-bit AArch64, which caused link failures when combined with 32-bit ILP32 object files.

This PR updates the object crate to 0.30.1 which adds support for generating ILP32 AArch64 object files.
2023-01-14 08:33:09 +00:00
bors
b7dc94fafd Auto merge of #106520 - ehuss:update-mdbook, r=Mark-Simulacrum
Update mdbook

This updates mdbook from 0.4.21 to 0.4.25. The list of changes is [here](https://github.com/rust-lang/mdBook/blob/master/CHANGELOG.md#mdbook-0425). The only user-visible changes are some changes around the theme picker, and change to the copy-to-clipboard ignoring hidden lines.

Internally there were some dependency updates and small fixes.

This also updates `clap` from 4.0.15 to 4.0.32 whose changelog is [here](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md#4032---2022-12-22). This impacts tools like cargo. I don't see anything particularly noteworthy there, though there are some small user-visible changes.

Unfortunately this required adding a hack for building `rustix` with a bootstrap tool. The comment explains why. I am unable to think of some other workaround (or even a cleaner way to set the rustflag). Ideas are welcome if you can think of alternatives. I'm struggling to even think of a long-term solution, other than asking projects not to do auto-nightly feature detection.

One medium-term solution is to avoid the clap dependency for the mdbook library (which is how rustix gets pulled in). That is one of my goals for the 0.5 release of mdbook, but that probably won't happen until later this year. It would also require dropping clap from `rustbook` and using some other means to parse arguments (there's only two options, so it can probably be done manually).
2023-01-14 03:04:40 +00:00
Lukas Wirth
aafb0f1f8d Use smallvec for inlay-hint parts 2023-01-13 15:03:37 +01:00
bors
a119352ada Auto merge of #13937 - danieleades:recursive-display, r=lnicola
remove recursive 'Display' implementations

closes #13920

`@lnicola` is this the solution you were looking for?

having explicitly unimplemented methods seems preferable to apparently implemented methods that can't be called
2023-01-13 12:07:28 +00:00
Alex Kladov
bd350085f6
Update crates/project-model/src/project_json.rs
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2023-01-13 12:01:04 +00:00
Alex Kladov
87315ef5c3
Apply suggestions from code review
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2023-01-13 11:57:02 +00:00
bors
15fb082cc1 Auto merge of #13753 - kdy1:limit, r=lnicola
fix: Increase token limit of proc macro

Fixes #13738

[The swc project](https://swc.rs) has lots of type definitions, and the current limit is too low for the ECMAScript/CSS visitors.

[rustdoc](https://rustdoc.swc.rs/swc_ecma_visit)

---

With this fix, the rust-analyzer shows trait-related actions.

<img width="1840" alt="image" src="https://user-images.githubusercontent.com/29931815/206839269-d7a04589-7dba-449b-ad0b-1f69d52bd039.png">
2023-01-13 11:45:50 +00:00
Aleksey Kladov
aa73366b0b internal: explain the idea behind rust-project.json 2023-01-13 11:44:02 +00:00
bors
cdbe025232 Auto merge of #13922 - danieleades:loop-that-never-loops, r=lnicola
minor: loop-that-never-loops

closes #13921
2023-01-13 11:23:51 +00:00
bors
c7a3f34ad8 Auto merge of #13940 - nlydv:unwrap-panic, r=lnicola
Fix panicking Option unwraping in match arm analysis

Hi, first PR here!

I've noticed my IDE sometimes briefly becoming pretty slow to respond while writing Rust. When checking the logs I found reams of this same error repeating itself.

```
thread 'Worker' panicked at 'called `Option::unwrap()` on a `None` value'
crates/ide-assists/src/handlers/convert_match_to_let_else.rs:90:46
```

RA seemed to have been panicking on virtually every keystroke I made whenever I was part way through writing/refactoring a match statement of relevance to this assist.

The fix in this PR should be self-explanatory.
2023-01-13 09:11:22 +00:00
Neel Yadav
9721505bf1
Fix panicking Option unwraping in match arm analysis 2023-01-12 22:33:58 -06:00
bors
458c998197 Auto merge of #101138 - Rejyr:diagnostic-migration-rustc-lint-pt2, r=davidtwco
Migrate `rustc_lint` lint diagnostics

Part 2 of [Migrate `rustc_lint` errors to `SessionDiagnostic`](https://github.com/rust-lang/rust/pull/100776)

r? `@davidtwco`

# TODO
- [x] Refactor some lints manually implementing `DecorateLint` to use `Option<Subdiagnostic>`.
- [x] Add `#[rustc_lint_diagnostics]` to lint functions in `context.rs`.
- [x] Migrate `hidden_unicode_codepoints.rs`.
- [x] Migrate `UnsafeCode` in `builtin.rs`.
- [x] Migrate the rest of `builtin.rs`.
2023-01-13 02:13:00 +00:00
bors
fb39efe26c Auto merge of #13934 - Veykril:unlinked-file-inline-modules, r=Veykril
feat: Make unlinked_file diagnostic quickfixes work for inline modules

Finally got myself to fix this, bothered me quite a bit that this never worked
![Code_Qe3WlMvt5Q](https://user-images.githubusercontent.com/3757771/211927799-023e48ee-7cdd-4dd7-8e25-a23eddc7d897.gif)

(Just gotta fix up the indentation still)
2023-01-12 15:25:12 +00:00
Daniel Eades
c4b36b64aa remove recursive 'Display' implementations 2023-01-12 11:53:45 +00:00
bors
80e616e00b Auto merge of #13936 - danieleades:static-mod-depth-limit, r=lnicola
interior-mutable types should be 'static' rather than 'const

with the 'tracking' feature enabled, `limit::Limit` is interior mutable, so the `const` `hir_def::nameres::mod_resolution::MOD_DEPTH_LIMIT` is probably meant to be `static` rather than `const`.

with `const` you get a new copy of it everywhere it's used, instead of the shared, global value that seems to be the intent.

This fix brought to you by the catchily-named `clippy::declare_interior_mutable_const` lint.
2023-01-12 10:58:19 +00:00
Daniel Eades
7413a9954f interior-mutable types should be 'static' rather than 'const 2023-01-12 10:48:10 +00:00
Lukas Wirth
14777ce751 fix indentation of unlinked_file quickfix 2023-01-12 11:24:44 +01:00
Roland Fredenhagen
03bc46f96b
Convert pub to pub(crate) 2023-01-12 09:54:48 +01:00
bors
720be155ec Auto merge of #106711 - albertlarsan68:use-ci-llvm-when-lld, r=jyn514
Use CI LLVM in `test-various` builder

It was disabled because it needs `lld`, but since #104748 was merged it is no longer needed.

This will speed this test, since it no longer needs to build LLVM.
2023-01-12 04:58:03 +00:00
Roland Fredenhagen
6f201cfc56
Assist: desugar doc-comment 2023-01-12 02:28:13 +01:00
Lukas Wirth
5214a98d9c Simplify 2023-01-11 23:04:35 +01:00
Lukas Wirth
1ce3e820dc feat: Make unlinked_file diagnostic quickfixes work for inline modules 2023-01-11 22:39:05 +01:00
bors
09aceea36d Auto merge of #13933 - Veykril:assoc-search, r=Veykril
Refine search for const and function assoc items

This changes our searching behavior, before we always associated all usages and definitions of associated items with all implementations of a trait and the trait itself. Now, when searching for references of a an associated trait item, we still do the same and consider all implementations, but when searching for an associated item of an implementation we now only consider the uses of that specific implementations associated item.

This does not affect associated type aliases as we unfortunately are missing information in the IDE layer here still.
2023-01-11 16:21:11 +00:00
Lukas Wirth
bb4e272d8a Refine search for const and function assoc items 2023-01-11 17:10:04 +01:00
daniel.eades
a3114c3697 move loop index inside iterator 2023-01-11 16:07:35 +00:00
bors
73fdc4b3cc Auto merge of #106458 - albertlarsan68:move-tests, r=jyn514
Move src/test to the root

See MCP at rust-lang/compiler-team#573

There may be more changes needed.

The first commit is just the move of the files:
You can check that the first commit did not do anything else than renames by running
```
git diff --diff-filter=r -M100% <rust-lang remote>/master <first commit hash>
```
The output should be empty, because the filter excludes renames, and the match threshold for qualifying a rename is 100%.

The second one is mostly a "find and replace" of `src/test` to `tests` and whatever is needed to make CI pass.

What is left to do:
---

- [x] Move directory
- [ ] Change references to `src/test`
    - [x] Change references in-tree
    - [ ] Change references in submodules / out-of-tree docs
- [x] Make CI pass:
    - [x] Fix tidy
    - [x] Fix tests
    - [x] Bless tests if needed (shouldn't normally)
- [ ] Merge it !
2023-01-11 11:17:22 +00:00
bors
f32f64bffc Auto merge of #13929 - danieleades:simplify, r=lnicola
internal: a number of code simplifications
2023-01-11 09:38:34 +00:00