about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-10-17Rollup merge of #131748 - lcnr:typing-mode, r=compiler-errorsMatthias Krüger-261/+225
cleanup canonical queries best reviewed commit by commit. adding `CanonicalQueryInput` to stop returning `defining_opaque_types` in query responses is the most involved change here. r? ``@compiler-errors``
2024-10-17Rollup merge of #131595 - fmease:rustdoc-json-mv-obj-safe-dyn-compat, ↵Matthias Krüger-24/+27
r=aDotInTheVoid rustdoc-JSON: Rename "object safe" to "dyn compatible" ~~Blocked: Sits atop #131594. Only the last commit is relevant.~~ (rebased) Part of #130852. r? aDotInTheVoid or rustdoc
2024-10-17Rollup merge of #131583 - heiher:loong-issue-118053, r=jieyouxuMatthias Krüger-0/+2
Setting up indirect access to external data for loongarch64-linux-{musl,ohos} In issue #118053, the `loongarch64-unknown-linux-gnu` target needs indirection to access external data, and so do the `loongarch64-unknown-linux-musl` and `loongarch64-unknown-linux-ohos` targets.
2024-10-17Rollup merge of #128391 - cafce25:issue-128390, r=lcnrMatthias Krüger-198/+260
Change orphan hint from "only" to "any uncovered type inside..." Fix #128390
2024-10-17bless mir-opt testslcnr-44/+44
2024-10-17move `defining_opaque_types` out of `Canonical`lcnr-120/+130
2024-10-17remove Canonical::unchecked_rebind, it's unusedlcnr-10/+0
2024-10-17`DropckOutlives` to `rustc_middle`lcnr-37/+27
2024-10-17remove type_op constructorslcnr-30/+6
2024-10-17`ImpliedOutlivesBounds` to `rustc_middle`lcnr-29/+27
2024-10-17Auto merge of #129582 - nbdd0121:unwind, r=nnethercotebors-17/+99
Make destructors on `extern "C"` frames to be executed This would make the example in #123231 print "Noisy Drop". I didn't mark this as fixing the issue because the behaviour is yet to be spec'ed. Tracking: - https://github.com/rust-lang/rust/issues/74990
2024-10-17Auto merge of #131796 - cuviper:no-waker-waker, r=Mark-Simulacrumbors-1/+0
Remove `Waker::waker` from 1.82 relnotes This was noticed in <https://github.com/rust-lang/blog.rust-lang.org/pull/1415#pullrequestreview-2371307666>.
2024-10-16rustdoc-JSON: Rename "object safe" to "dyn compatible"León Orell Valerian Liehr-24/+27
2024-10-16Auto merge of #131797 - matthiaskrgr:rollup-lzpze2k, r=matthiaskrgrbors-248/+610
Rollup of 9 pull requests Successful merges: - #130989 (Don't check unsize goal in MIR validation when opaques remain) - #131657 (Rustfmt `for<'a> async` correctly) - #131691 (Delay ambiguous intra-doc link resolution after `Cache` has been populated) - #131730 (Refactor some `core::fmt` macros) - #131751 (Rename `can_coerce` to `may_coerce`, and then structurally resolve correctly in the probe) - #131753 (Unify `secondary_span` and `swap_secondary_and_primary` args in `note_type_err`) - #131776 (Emscripten: Xfail backtrace ui tests) - #131777 (Fix trivially_copy_pass_by_ref in stable_mir) - #131778 (Fix needless_lifetimes in stable_mir) r? `@ghost` `@rustbot` modify labels: rollup
2024-10-16Rollup merge of #131778 - practicalrs:fix_needless_lifetimes, r=jieyouxuMatthias Krüger-1/+1
Fix needless_lifetimes in stable_mir Hi, This PR fixes the following clippy warning ``` warning: the following explicit lifetimes could be elided: 'a --> compiler/stable_mir/src/mir/visit.rs:490:6 | 490 | impl<'a> PlaceRef<'a> { | ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes = note: `#[warn(clippy::needless_lifetimes)]` on by default help: elide the lifetimes | 490 - impl<'a> PlaceRef<'a> { 490 + impl PlaceRef<'_> { | ``` Best regards, Michal
2024-10-16Rollup merge of #131777 - practicalrs:fix_trivially_copy_pass_by_ref, r=jieyouxuMatthias Krüger-3/+3
Fix trivially_copy_pass_by_ref in stable_mir Hi, This PR fixes the following clippy warnings ``` warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> compiler/stable_mir/src/mir/body.rs:1042:34 | 1042 | fn subslice_ty(ty: Ty, from: &u64, to: &u64, from_end: &bool) -> Result<Ty, Error> { | ^^^^ help: consider passing by value instead: `u64` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref = note: requested on the command line with `-W clippy::trivially-copy-pass-by-ref` warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> compiler/stable_mir/src/mir/body.rs:1042:44 | 1042 | fn subslice_ty(ty: Ty, from: &u64, to: &u64, from_end: &bool) -> Result<Ty, Error> { | ^^^^ help: consider passing by value instead: `u64` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref warning: this argument (1 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) --> compiler/stable_mir/src/mir/body.rs:1042:60 | 1042 | fn subslice_ty(ty: Ty, from: &u64, to: &u64, from_end: &bool) -> Result<Ty, Error> { | ^^^^^ help: consider passing by value instead: `bool` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref ``` Best regards, Michal
2024-10-16Rollup merge of #131776 - hoodmane:emscripten-xfail-backtrace-tests, r=jieyouxuMatthias Krüger-0/+2
Emscripten: Xfail backtrace ui tests It is possible to link libunwind and use the normal backtrace code, but it fails to symbolize stack traces. I investigated and could get the list of instruction pointers and symbol names, but I'm not sure how to use the dwarf info to map from instruction pointer to source location. In any case, fixing this is not a high priority. See https://github.com/rust-lang/rust/issues/131738 r?jieyouxu
2024-10-16Rollup merge of #131753 - compiler-errors:swap-secondary, r=jieyouxuMatthias Krüger-22/+11
Unify `secondary_span` and `swap_secondary_and_primary` args in `note_type_err` Tiny tweak b/c working w `note_type_err` is kinda a mess.
2024-10-16Rollup merge of #131751 - compiler-errors:structurally-resolve, r=lcnrMatthias Krüger-57/+121
Rename `can_coerce` to `may_coerce`, and then structurally resolve correctly in the probe We need to structurally resolve the lhs and rhs of the coercion. Also, renaming the method so it's less ambiguous about what it's doing... the word "may" gives more clear signal that it has false positives imo. r? lcnr
2024-10-16Rollup merge of #131730 - zlfn:master, r=tgross35Matthias Krüger-76/+69
Refactor some `core::fmt` macros While looking at the macros in `core::fmt`, find that the macros are not well organized. So I created a patch to fix it. [`core/src/fmt/num.rs`](https://github.com/rust-lang/rust/blob/master/library/core/src/fmt/num.rs) * `impl_int!` and `impl_uint!` macro are **completly** same. It would be better to combine for readability * `impl_int!` has a problem that the indenting is not uniform. It has unified into 4 spaces * `debug` macro in `num` renamed to `impl_Debug`, And it was moved to a position close to the `impl_Display`. [`core/src/fmt/float.rs`](https://github.com/rust-lang/rust/blob/master/library/core/src/fmt/float.rs) [`core/src/fmt/nofloat.rs`](https://github.com/rust-lang/rust/blob/master/library/core/src/fmt/nofloat.rs) * `floating` macro now receive multiple idents at once. It makes the code cleaner. * Modified the panic message more clearly in fallback function of `cfg(no_fp_fmt_parse)`
2024-10-16Rollup merge of #131691 - GuillaumeGomez:intra-doc-link-filter-out-2, ↵Matthias Krüger-56/+351
r=notriddle Delay ambiguous intra-doc link resolution after `Cache` has been populated Fixes https://github.com/rust-lang/rust/issues/130233. I was getting nowhere with #130278. I took a wrong turn at some point and ended making way too many changes so instead I started again back from 0 and this time it worked out as expected. r? ```@notriddle```
2024-10-16Rollup merge of #131657 - compiler-errors:rustfmt-modifiers, r=ytmimiMatthias Krüger-23/+29
Rustfmt `for<'a> async` correctly In #127054, we decided to move the trait bound modifier for `async for<'a> Fn()` to `for<'a> async Fn()`. This wasn't adjusted in rustfmt, so this PR implements that. It also requires consolidating the bound formatting into the `Rewrite` impl for `PolyTraitRef`. Fixes #131649
2024-10-16Rollup merge of #130989 - compiler-errors:unsize-opaque, r=estebankMatthias Krüger-10/+23
Don't check unsize goal in MIR validation when opaques remain Similarly to `mir_assign_valid_types`, let's just skip when there are opaques. Fixes #130921.
2024-10-16Remove `Waker::waker` from 1.82 relnotesJosh Stone-1/+0
2024-10-16Auto merge of #131792 - matthiaskrgr:rollup-480nwg4, r=matthiaskrgrbors-560/+1254
Rollup of 8 pull requests Successful merges: - #130822 (Add `from_ref` and `from_mut` constructors to `core::ptr::NonNull`.) - #131381 (Implement edition 2024 match ergonomics restrictions) - #131594 (rustdoc: Rename "object safe" to "dyn compatible") - #131686 (Add fast-path when computing the default visibility) - #131699 (Try to improve error messages involving aliases in the solver) - #131757 (Ignore lint-non-snake-case-crate#proc_macro_ on targets without unwind) - #131783 (Fix explicit_iter_loop in rustc_serialize) - #131788 (Fix mismatched quotation mark) r? `@ghost` `@rustbot` modify labels: rollup
2024-10-16Rollup merge of #131788 - dufucun:master, r=lqdMatthias Krüger-1/+1
Fix mismatched quotation mark
2024-10-16Rollup merge of #131783 - practicalrs:fix_explicit_iter_loop, r=compiler-errorsMatthias Krüger-8/+8
Fix explicit_iter_loop in rustc_serialize Hi, This PR fixes some clippy warnings ``` warning: it is more concise to loop over references to containers instead of using explicit iteration methods --> compiler/rustc_serialize/src/serialize.rs:675:18 | 675 | for e in self.iter() { | ^^^^^^^^^^^ help: to write this more concisely, try: `self` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_iter_loop ``` Best regards, Michal
2024-10-16Rollup merge of #131757 - c6c7:fixup-lint-non-snake-case-crate, r=jieyouxuMatthias Krüger-12/+16
Ignore lint-non-snake-case-crate#proc_macro_ on targets without unwind The lint-non-snake-case-crate test may emit a warning in stderr if the target does not support unwinding ``` warning: building proc macro crate with `panic=abort` may crash the compiler should the proc-macro panic ``` Consequently, the test will fail on targets that don't support unwinding as written. This change modifies the expected stderr for lint-non-snake-case-crate in the proc_macro_ to ignore lines that indicate a warning was emitted.
2024-10-16Rollup merge of #131699 - compiler-errors:better-errors-for-projections, r=lcnrMatthias Krüger-187/+324
Try to improve error messages involving aliases in the solver 1. Treat aliases as rigid only if it may not be defined and it's well formed (i.e. for projections, its trait goal is satisfied). 2. Record goals that are related to alias normalization under a new `GoalKind`, so we can look into them in the `BestObligation` visitor. 3. Try to deduplicate errors due to self types of goals that are un-normalizable aliases. r? lcnr
2024-10-16Rollup merge of #131686 - Urgau:fast-path-vis, r=lqdMatthias Krüger-0/+7
Add fast-path when computing the default visibility This PR adds (or more correctly re-adds the) fast-path when computing the default visibility, by taking advantage of the fact that the "interposable" requested visibility always return the "default" codegen visibility. Should address the small regression observed in https://github.com/rust-lang/rust/pull/131111#issuecomment-2402273967. r? `@lqd`
2024-10-16Rollup merge of #131594 - fmease:rustdoc-mv-obj-safe-dyn-compat, r=notriddleMatthias Krüger-42/+44
rustdoc: Rename "object safe" to "dyn compatible" Supersedes #126554: 1. In line with [T-lang's latest resolution](https://github.com/rust-lang/lang-team/issues/286#issuecomment-2338905118). 2. More comprehensive: Not only updates user-facing text but also source code. Part of #130852. Doesn't update rustdoc-JSON (will be filed separately). r? `@notriddle` (rust-lang/lang-team#286) `@GuillaumeGomez` (for visibility)
2024-10-16Rollup merge of #131381 - Nadrieril:min-match-ergonomics, r=pnkfelixMatthias Krüger-242/+757
Implement edition 2024 match ergonomics restrictions This implements the minimalest version of [match ergonomics for edition 2024](https://rust-lang.github.io/rfcs/3627-match-ergonomics-2024.html). This minimal version makes it an error to ever reset the default binding mode. The implemented proposal is described precisely [here](https://hackmd.io/zUqs2ISNQ0Wrnxsa9nhD0Q#RFC-3627-nano), where it is called "RFC 3627-nano". Rules: - Rule 1C: When the DBM (default binding mode) is not `move` (whether or not behind a reference), writing `mut`, `ref`, or `ref mut` on a binding is an error. - Rule 2C: Reference patterns can only match against references in the scrutinee when the DBM is `move`. This minimal version is forward-compatible with the main proposals for match ergonomics 2024: [RFC3627](https://rust-lang.github.io/rfcs/3627-match-ergonomics-2024.html) itself, the alternative [rule 4-early variant](https://rust-lang.github.io/rfcs/3627-match-ergonomics-2024.html), and [others](https://hackmd.io/zUqs2ISNQ0Wrnxsa9nhD0Q). The idea is to give us more time to iron out a final proposal. This includes a migration lint that desugars any offending pattern into one that doesn't make use of match ergonomics. Such patterns have identical meaning across editions. This PR insta-stabilizes the proposed behavior onto edition 2024. r? `@ghost` Tracking: - https://github.com/rust-lang/rust/issues/123076
2024-10-16Rollup merge of #130822 - bjoernager:non-null-from-ref, r=dtolnayMatthias Krüger-68/+97
Add `from_ref` and `from_mut` constructors to `core::ptr::NonNull`. Relevant tracking issue: #130823 The `core::ptr::NonNull` type should have the convenience constructors `from_ref` and `from_mut` for parity with `core::ptr::from_ref` and `core::ptr::from_mut`. Although the type in question already implements `From<&T>` and `From<&mut T>`, these new functions also carry the ability to be used in constant expressions (due to not being behind a trait).
2024-10-17Fix mismatched quotation markdufucun-1/+1
2024-10-16Ignore lint-non-snake-case-crate#proc_macro_ on targets without unwindCharles Celerier-12/+16
The lint-non-snake-case-crate test may emit a warning in stderr if the target does not support unwinding ``` warning: building proc macro crate with `panic=abort` may crash the compiler should the proc-macro panic ``` Consequently, the test will fail on targets that don't support unwinding as written. This change prevents lint-non-snake-case-crate#proc_macro_ from running on targets that don't support unwind by using the needs-unwind directive.
2024-10-16Auto merge of #131767 - cuviper:bump-stage0, r=Mark-Simulacrumbors-755/+644
Bump bootstrap compiler to 1.83.0-beta.1 https://forge.rust-lang.org/release/process.html#master-bootstrap-update-tuesday
2024-10-16rustdoc: Rename "object safe" to "dyn compatible"León Orell Valerian Liehr-42/+44
2024-10-16Fix explicit_iter_loop in rustc_serializeMichal Piotrowski-8/+8
2024-10-16Auto merge of #131775 - Urgau:rollup-yc4a3sf, r=Urgaubors-108/+400
Rollup of 10 pull requests Successful merges: - #131582 (Add wasm32-unknown-emscripten platform support document) - #131694 (Make fuchsia-test-runner.py compatible with new JSON output from llvm-readelf) - #131700 (Fix match_same_arms in stable_mir) - #131712 (Mark the unstable LazyCell::into_inner const) - #131746 (Relax a memory order in `once_box`) - #131754 (Don't report bivariance error when nesting a struct with field errors into another struct) - #131760 (llvm: Match aarch64 data layout to new LLVM layout) - #131764 (Fix unnecessary nesting in run-make test output directories) - #131766 (Add mailmap entry for my dev-desktop setup) - #131771 (Handle gracefully true/false in `cfg(target(..))` compact) r? `@ghost` `@rustbot` modify labels: rollup
2024-10-16Fix needless_lifetimes in stable_mirMichal Piotrowski-1/+1
2024-10-16Fix trivially_copy_pass_by_ref in stable_mirMichal Piotrowski-3/+3
2024-10-16Emscripten: Xfail backtrace ui testsHood Chatham-0/+2
It is possible to link libunwind and use the normal backtrace code, but it fails to symbolize stack traces. I investigated and could get the list of instruction pointers and symbol names, but I'm not sure how to use the dwarf info to map from instruction pointer to source location. In any case, fixing this is probably not a high priority. See https://github.com/rust-lang/rust/issues/131738
2024-10-16Rollup merge of #131771 - Urgau:cfg-target-131759, r=jieyouxuUrgau-2/+18
Handle gracefully true/false in `cfg(target(..))` compact This PR handles gracefully `true`/`false` in `cfg(target(..))` compact instead of ICE. r? `@nnethercote` Fixes #131759
2024-10-16Rollup merge of #131766 - jieyouxu:mailmap, r=lqdUrgau-0/+1
Add mailmap entry for my dev-desktop setup
2024-10-16Rollup merge of #131764 - Zalathar:double-dir, r=jieyouxuUrgau-2/+6
Fix unnecessary nesting in run-make test output directories Run-make tests were using `output_base_name` to determine their output directory, which results in a redundant subdirectory (e.g. `$build/test/run-make/<foo>/<foo>/`) because that method is intended to produce the name of an individual file. The previous attempt to fix this double-nesting tried adding a special case in `output_base_dir`, which had the side-effect of breaking up-to-date checking for run-make tests, and had to be reverted in #131681. The fix is simply to call `output_base_dir` directory, which gives the desired directory without any redundant part. r? jieyouxu
2024-10-16Rollup merge of #131760 - maurer:data-layout-aarch64, r=nikicUrgau-38/+72
llvm: Match aarch64 data layout to new LLVM layout LLVM has added 3 new address spaces to support special Windows use cases. These shouldn't trouble us for now, but LLVM requires matching data layouts. See llvm/llvm-project#111879 for details
2024-10-16Rollup merge of #131754 - compiler-errors:bivariance-bivariance, r=estebankUrgau-10/+72
Don't report bivariance error when nesting a struct with field errors into another struct We currently have logic to avoid reporting lifetime bivariance ("lifetime parameter ... is never used") errors when a struct has field resolution errors. However, this doesn't apply transitively. This PR implements a simple visitor to do so. This was reported [here](https://twitter.com/fasterthanlime/status/1846257921086165033) since a `derive(Deserialize, Serialize)` ends up generating helper structs which have bivariant lifetimes due to containing the offending struct (that's being derived on).
2024-10-16Rollup merge of #131746 - slanterns:once_box_order, r=joboetUrgau-2/+2
Relax a memory order in `once_box` per https://github.com/rust-lang/rust/pull/131094#discussion_r1788536445. In the successful path we don't need `Acquire` since we don't care if the store in `f()` happened in other threads has become visible to the current thread. We'll use our own results instead and just using `Release` to ensure other threads can see our store to `Box` when they fail the `compare_exchange` will suffice. Also took https://marabos.nl/atomics/memory-ordering.html#example-lazy-initialization-with-indirection as a reference. `@rustbot` label: +T-libs r? `@ibraheemdev`
2024-10-16Rollup merge of #131712 - tgross35:const-lazy_cell_into_inner, r=joboetUrgau-2/+2
Mark the unstable LazyCell::into_inner const Other cell `into_inner` functions are const and there shouldn't be any problem here. Make the unstable `LazyCell::into_inner` const under the same gate as its stability (`lazy_cell_into_inner`). Tracking issue: https://github.com/rust-lang/rust/issues/125623
2024-10-16Rollup merge of #131700 - practicalrs:fix_match_same_arms, r=celinvalUrgau-38/+24
Fix match_same_arms in stable_mir Hi, This PR fixes some clippy warnings (Reopened https://github.com/rust-lang/rust/pull/131688) ``` warning: this match arm has an identical body to another arm --> compiler/stable_mir/src/mir/visit.rs:197:13 | 197 | / StatementKind::FakeRead(_, place) => { 198 | | self.visit_place(place, PlaceContext::NON_MUTATING, location); 199 | | } | |_____________^ | = help: try changing either arm body = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_same_arms help: or try merging the arm patterns | 197 | StatementKind::FakeRead(_, place) | StatementKind::PlaceMention(place) => { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ help: and remove this obsolete arm | 209 - StatementKind::PlaceMention(place) => { 210 - self.visit_place(place, PlaceContext::NON_MUTATING, location); 211 - } | ``` Best regards, Michal