Commit Graph

256534 Commits

Author SHA1 Message Date
Jubilee 8e89f83cbb Rollup merge of #125089 - Urgau:non_local_def-suggestions, r=estebank
Improve diagnostic output the `non_local_definitions` lint

This PR improves (or at least tries to improve) the diagnostic output the `non_local_definitions` lint, by simplifying the wording, by adding a "sort of" explanation of bounds interaction that leak the impl...

This PR is best reviewed commit by commit and is voluntarily made a bit vague as to have a starting point to improve on.

Related to https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/non_local_defs.20wording.20improvements

Fixes https://github.com/rust-lang/rust/issues/125068
Fixes https://github.com/rust-lang/rust/issues/124396
cc ```@workingjubilee```
r? ```@estebank```
2024-05-28 02:07:47 -07:00
Trevor Spiteri 402a649e75 update tracking issue for lazy_cell_consume 2024-05-28 11:02:03 +02:00
León Orell Valerian Liehr 27cdc0df4e Don't suggest turning non-char-literal exprs of ty char into string literals 2024-05-28 09:40:02 +02:00
bors c0d600385b Auto merge of #125636 - workingjubilee:bump-backtrace-0.3.72, r=workingjubilee
Bump backtrace to 0.3.72

This removes a bunch of dead code, contains critical aarch64-windows fixes, some less-critical windows-in-general improvements, adds visionOS support (and probably improves support for a bunch of Apple platforms...), and harmonizes backtrace's dependencies with rustc/std's.

See https://github.com/rust-lang/backtrace-rs/compare/0.3.71...0.3.72

r? `@ghost`
2024-05-28 04:58:04 +00:00
lcnr 98bfd54b0a eagerly normalize when adding goals 2024-05-28 04:54:05 +00:00
lcnr 13ce229042 refactor analyse visitor to instantiate states in order 2024-05-28 04:54:01 +00:00
lcnr 4d5a9bcb86 change selection test to run-pass 2024-05-28 04:44:45 +00:00
lcnr 87599ddd86 add debug_assert to alias-relate 2024-05-28 04:44:45 +00:00
Jubilee Young 3ec9d8db27 Sync libstd deps with backtrace 2024-05-27 19:53:41 -07:00
Jubilee Young 00b759530e Bump backtrace to 0.3.72 2024-05-27 19:53:31 -07:00
bors d86e122941 Auto merge of #125609 - diondokter:opt-size-char-count, r=thomcc
Always use the general case char count with `optimize_for_size`

The faster algo is really expensive, over a kilobyte if the full algo is present in a binary.
With this PR the general case algo is picked always instead of only for small strings.

In a test of mine this change makes the total binary go from 3116 bytes to 2032 bytes in opt-level 3 and from 1652 bytes to 1428 bytes in opt-level z. I've seen it much worse in real application, so the savings (especially on 'z') will be higher in many cases.

This is the second pr of this kind after #125606
2024-05-28 02:47:32 +00:00
Chris Denton ef9e6caabc Fix run-make-support doc errors
error: redundant explicit link target because label contains path that resolves to same destination
2024-05-28 02:12:06 +00:00
Chris Denton b119e42b18 Add run-make-support to x doc 2024-05-28 02:11:56 +00:00
Oneirical 634270e8da rewrite mixing-deps in rmake 2024-05-27 21:10:57 -04:00
Nicholas Nethercote bcfa67d50d Remove out-of-date comment.
This comment -- "by default we ignore everything in the repository" --
was added in #65939 when rustfmt was first being introduced for this
repository and (briefly) every directory was ignored. Since then lots of
directories have opted in to formatting, so it is no longer true.
2024-05-28 11:05:37 +10:00
Oneirical d9d013bec0 rewrite lto-smoke to rmake 2024-05-27 20:57:01 -04:00
bors 71213fd607 Auto merge of #125539 - matthiaskrgr:cräsh, r=jieyouxu
crashes: increment the number of tracked ones

r? `@jieyouxu`
2024-05-28 00:28:52 +00:00
Nicholas Nethercote cf0c2c7333 Convert proc_macro_back_compat lint to an unconditional error.
We still check for the `rental`/`allsorts-rental` crates. But now if
they are detected we just emit a fatal error, instead of emitting a
warning and providing alternative behaviour.

The original "hack" implementing alternative behaviour was added
in #73345.

The lint was added in #83127.

The tracking issue is #83125.

The direct motivation for the change is that providing the alternative
behaviour is interfering with #125174 and follow-on work.
2024-05-28 08:15:15 +10:00
Nicholas Nethercote 3607cee3e7 Use let chains in pretty_printing_compatibility_hack.
To reduce indentation and improve readability.
2024-05-28 08:14:20 +10:00
Nicholas Nethercote d6d2ff055e Remove a stray comment that shouldn't be here. 2024-05-28 08:14:20 +10:00
Urgau c7d300442f non_local_defs: point the parent item when appropriate 2024-05-27 23:59:18 +02:00
Urgau 98273ec612 non_local_defs: point to Self and Trait to give more context 2024-05-27 23:59:18 +02:00
Urgau b71952904d non_local_defs: suggest removing leading ref/ptr to make the impl local 2024-05-27 23:59:18 +02:00
Urgau ab23fd8dea non_local_defs: improve main without a trait note 2024-05-27 23:59:18 +02:00
Urgau d3dfe14b53 non_local_defs: be more precise about what needs to be moved 2024-05-27 23:59:18 +02:00
Urgau 402580bcd5 non_local_defs: improve exception note for impl and macro_rules!
- Remove wrong exception text for non-local macro_rules!
 - Simplify anonymous const exception note
2024-05-27 23:59:18 +02:00
Urgau 22095fbd8d non_local_defs: use labels to indicate what may need to be moved 2024-05-27 23:58:55 +02:00
Urgau 26b873d030 non_local_defs: use span of the impl def and not the impl block 2024-05-27 23:58:55 +02:00
Urgau de1c122950 non_local_defs: improve some notes around trait, bounds, consts
- Restrict const-anon exception diag to relevant places
 - Invoke bounds (and type-inference) in non_local_defs
 - Specialize diagnostic for impl without Trait
2024-05-27 23:58:55 +02:00
Urgau 06c6a2d9d6 non_local_defs: switch to more friendly primary message 2024-05-27 23:58:55 +02:00
Urgau 5ad4ad7aee non_local_defs: move out from #[derive(LintDiagnostic)] to manual impl 2024-05-27 23:58:55 +02:00
Ralf Jung 869306418d miri: avoid making a full copy of all new allocations 2024-05-27 23:33:54 +02:00
bors 84b40fc908 Auto merge of #125628 - matthiaskrgr:rollup-3zk9v3w, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #125339 (The number of tests does not depend on the architecture's pointer width)
 - #125542 (Migrate rustdoc verify output files)
 - #125616 (MIR validation: ensure that downcast projection is followed by field projection)
 - #125625 (Use grep to implement verify-line-endings)

Failed merges:

 - #125573 (Migrate `run-make/allow-warnings-cmdline-stability` to `rmake.rs`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-05-27 20:49:23 +00:00
Mark Rousskov 4c002fce9d Omit non-needs_drop drop_in_place in vtables
This replaces the drop_in_place reference with null in vtables. On
librustc_driver.so, this drops about ~17k dynamic relocations from the
output, since many vtables can now be placed in read-only memory, rather
than having a relocated pointer included.

This makes a tradeoff by adding a null check at vtable call sites.
That's hard to avoid without changing the vtable format (e.g., to use a
pc-relative relocation instead of an absolute address, and avoid the
dynamic relocation that way). But it seems likely that the check is
cheap at runtime.
2024-05-27 16:26:56 -04:00
Matthias Krüger 4966e1ae35 Rollup merge of #125625 - ChrisDenton:line-endings, r=Mark-Simulacrum
Use grep to implement verify-line-endings

Unless I'm missing something (which I might be!) then `verify-line-endings` is easy to implement with `grep` rather than using a bespoke tool with varying availability.
2024-05-27 20:43:26 +02:00
Matthias Krüger 61f9d35798 Rollup merge of #125616 - RalfJung:mir-validate-downcast-projection, r=compiler-errors
MIR validation: ensure that downcast projection is followed by field projection

Cc https://github.com/rust-lang/rust/issues/120369
2024-05-27 20:43:26 +02:00
Matthias Krüger e8dd585dd8 Rollup merge of #125542 - GuillaumeGomez:migrate-rustdoc-verify-output-files, r=jieyouxu
Migrate rustdoc verify output files

Part of https://github.com/rust-lang/rust/issues/121876.

r? ```@jieyouxu```
2024-05-27 20:43:25 +02:00
Matthias Krüger 8bd15878eb Rollup merge of #125339 - tbu-:pr_tidy_ui_tests_u32, r=clubby789
The number of tests does not depend on the architecture's pointer width

Use `u32` instead of `usize` for counting them.
2024-05-27 20:43:24 +02:00
bors f00b02e6bb Auto merge of #125599 - camelid:clarify-stability, r=notriddle,GuillaumeGomez
rustdoc: Clarify const-stability with regard to normal stability

Fixes #125511.

- Elide const-unstable if also unstable overall
- Show "const" for const-unstable if also overall unstable
2024-05-27 18:42:42 +00:00
Matthias Krüger bae945201f remove fixed crashes, add fixed crashes to tests, add new cashed found in the meantime 2024-05-27 20:41:09 +02:00
Chris Denton 7a847fc4fb Use grep to implement verify-line-endings 2024-05-27 17:19:58 +00:00
bors c1b051602c Auto merge of #17258 - maxwase:code-assist-async-sugar, r=Veykril
Add `toggle_async_sugar` assist code action

Implement code action for sugaring and de-sugaring asynchronous functions.

This code action does not import `Future` trait when de-sugaring and does not touch function boby, I guess this can be implemented later if needed. This action also does not take into consideration other bounds because IMO it's usually "let me try to use sugared version here".

Feel free to request changes, that's my first code action implementation 😄

Closes #17010
Relates to #16195
2024-05-27 16:40:04 +00:00
bors cbd40a2da4 Auto merge of #17253 - ThouCheese:master, r=Veykril
Implement assist to switch between doc and normal comments

Hey first PR to rust-analyzer to get my feet wet with the code base. It's an assist to switch a normal comment to a doc comment and back, something I've found myself doing by hand a couple of times.

I shamelessly stole `relevant_line_comments` from `convert_comment_block`, because I didn't see any inter-assist imports happening in the files I peeked at so I thought this would be preferable.
2024-05-27 16:27:23 +00:00
bors 76eee82e79 Auto merge of #12823 - schvv31n:fix-iter-on-empty-collections, r=y21
Suppress `iter_on_empty_collections` if the iterator's concrete type is relied upon

changelog: fixed #12807
2024-05-27 16:18:41 +00:00
bors 9fe2afcc8e Auto merge of #17291 - kilpkonn:master, r=Veykril
Fix `data_constructor` ignoring generics for struct

Previously didn't work for structs with generics due to `field.ty()` having placeholders in type.
_Enums were handeled correctly already._

Also renamed `type_constructor -> data_constructor` as this is more correct name for it
2024-05-27 16:15:10 +00:00
Matthias Krüger e5d100363a crashes: increment the number of tracked ones 2024-05-27 17:32:56 +02:00
bors b0f8618938 Auto merge of #125413 - lcnr:ambig-drop-region-constraints, r=compiler-errors
drop region constraints for ambiguous goals

See the comment in `compute_external_query_constraints`. While the underlying issue is preexisting, this fixes a bug introduced by #125343.

It slightly weakens the leak chec, even if we didn't have any test which was affected. I want to write such a test before merging this PR.

r? `@compiler-errors`
2024-05-27 15:28:51 +00:00
Ralf Jung 7d24f87068 MIR validation: ensure that downcast projection is followed by field projection 2024-05-27 16:32:12 +02:00
bors 7e4c1ae0b6 Auto merge of #12843 - mdm:fix-unnecessary-to-owned-println-interaction, r=y21
Fix `unnecessary_to_owned` interaction with macro expansion

fixes #12821

In the case of an unnecessary `.iter().cloned()`, the lint `unnecessary_to_owned` might suggest to remove the `&` from references without checking if such references are inside a macro expansion. This can lead to unexpected behavior or even broken code if the lint suggestion is applied blindly. See issue #12821 for an example.

This PR checks if such references are inside macro expansions and skips this part of the lint suggestion in these cases.

changelog: [`unnecessary_to_owned`]: Don't suggest to remove `&` inside macro expansion
2024-05-27 14:26:50 +00:00
bors f6e4703e91 Auto merge of #125611 - GuillaumeGomez:rollup-dfavpgg, r=GuillaumeGomez
Rollup of 7 pull requests

Successful merges:

 - #124870 (Update Result docs to the new guarantees)
 - #125148 (codegen: tweak/extend shift comments)
 - #125522 (Add "better" edition handling on lint-docs tool)
 - #125530 (cleanup dependence of `ExtCtxt` in transcribe when macro expansion)
 - #125535 (clean-up: remove deprecated field `dist.missing-tools`)
 - #125597 (Uplift `EarlyBinder` into `rustc_type_ir`)
 - #125607 (Migrate `run-make/compile-stdin` to `rmake.rs`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-05-27 13:22:55 +00:00