Skip to content

Revert diagnostics hack to fix ICE 132920 - #133304

Merged
bors merged 2 commits into
rust-lang:masterfrom
lqd:issue-132920
Nov 27, 2024
Merged

Revert diagnostics hack to fix ICE 132920#133304
bors merged 2 commits into
rust-lang:masterfrom
lqd:issue-132920

Conversation

@lqd

@lqdlqd commented Nov 21, 2024

Copy link
Copy Markdown
Member

This reverts 8a568d9 from #128849 to fix the diagnostics ICE in #132920.

The hack mentioned in that commit was supposed to be tailored to E277, but that codepath is used actually shared with other errors, e.g. at least the E283 from the linked issue.

We may have to eat the slightly worse diagnostics until a non-hacky way to make this error less verbose is implemented (or I guess a different hack specializing even more to E277's structure).

Sorry @estebank 🙏. I can close this if you'd prefer to fix it in a different way.

Since it seems unexpected that #128849 would impact the repro, here's how the error used to look before that PR.

warning: unused import: `minirapier::Ray` --> src/main.rs:2:5 |2 | use minirapier::Ray; | ^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by defaulterror[E0283]: type annotations needed --> src/main.rs:10:5 |10 | insert_resource(Res.into()); | ^^^^^^^^^^^^^^^ ---------- type must be known at this point | | | cannot infer type of the type parameter `R` declared on the function `insert_resource` | = note: cannot satisfy `_: Resource` = help: the trait `Resource` is implemented for `Res`note: required by a bound in `insert_resource` --> src/main.rs:4:23 |4 | fn insert_resource<R: Resource>(_resource: R) {} | ^^^^^^^^ required by this bound in `insert_resource`help: consider specifying the generic argument |10 | insert_resource::<R>(Res.into()); | +++++help: consider removing this method call, as the receiver has type `Res` and `Res: Resource` trivially holds |10 - insert_resource(Res.into());10 + insert_resource(Res);

And how it looks now without the ICE.

warning: unused import: `minirapier::Ray` --> src/main.rs:2:5 |2 | use minirapier::Ray; | ^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by defaulterror[E0283]: type annotations needed --> src/main.rs:10:5 |10 | insert_resource(Res.into()); | ^^^^^^^^^^^^^^^ ---------- type must be known at this point | | | cannot infer type of the type parameter `R` declared on the function `insert_resource` | = note: cannot satisfy `_: Resource`note: there are multiple different versions of crate `minibevy` in the dependency graph --> /home/lqd/rust/tmp/minimization/issue-132920/rustc-ice-version-conflict/minibevy_b/src/lib.rs:1:1 |1 | pub trait Resource {} | ^^^^^^^^^^^^^^^^^^ this is the required trait | ::: src/main.rs:1:5 |1 | use minibevy::Resource; | -------- one version of crate `minibevy` is used here, as a direct dependency of the current crate2 | use minirapier::Ray; | ---------- one version of crate `minibevy` is used here, as a dependency of crate `minirapier` | ::: /home/lqd/rust/tmp/minimization/issue-132920/rustc-ice-version-conflict/minibevy_a/src/lib.rs:1:1 |1 | pub trait Resource {} | ------------------ this is the found trait = help: you can use `cargo tree` to explore your dependency treenote: required by a bound in `insert_resource` --> src/main.rs:4:23 |4 | fn insert_resource<R: Resource>(_resource: R) {} | ^^^^^^^^ required by this bound in `insert_resource`help: consider specifying the generic argument |10 | insert_resource::<R>(Res.into()); | +++++help: consider removing this method call, as the receiver has type `Res` and `Res: Resource` trivially holds |10 - insert_resource(Res.into());10 + insert_resource(Res); |

The improvements from #128849 are still present and the note about the trait coming from the 2 versions of bevy is more explanatory/helpful than before, albeit a bit verbosely.

Fixes#132920.

@rustbot

Copy link
Copy Markdown
Collaborator

r? @jieyouxu

rustbot has assigned @jieyouxu.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@jieyouxujieyouxu left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, unfortunate diagnostics change, but ICEing isn't ideal either. You can r=me after PR CI is green.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remark: this is indeed quite the setup... Thanks for the comments.

@jieyouxu

Copy link
Copy Markdown
Member

Actually I just saw estebank wanted to look at this on zulip, so r? @estebank

@rustbotrustbot assigned estebank and unassigned jieyouxuNov 21, 2024
@lqd

lqd commented Nov 21, 2024

Copy link
Copy Markdown
MemberAuthor

Thanks for the quick review @jieyouxu

Esteban may take a look at it soon as well, according to https://rust-lang.zulipchat.com/#narrow/channel/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-11-21/near/483761338 so r? @estebank until then.

@rustbot

This comment was marked as resolved.

@jieyouxu

Copy link
Copy Markdown
Member

(We raced 😆)

@estebank

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Nov 25, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit 764e3e2 has been approved by estebank

It is now in the queue for this repository.

@borsbors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Nov 25, 2024
jhpratt added a commit to jhpratt/rust that referenced this pull request Nov 26, 2024
Revert diagnostics hack to fix ICE 132920
This reverts 8a568d9 from rust-lang#128849 to fix the diagnostics ICE in rust-lang#132920.
The hack mentioned in that commit was supposed to be tailored to E277, but that codepath is used actually shared with other errors, e.g. at least the E283 from the linked issue.
We may have to eat the slightly worse diagnostics until a non-hacky way to make this error less verbose is implemented (or I guess a different hack specializing even more to E277's structure).
Sorry `@estebank` 🙏. I can close this if you'd prefer to fix it in a different way.
Since it seems unexpected that rust-lang#128849 would impact the repro, here's how the error used to look before that PR.
```console
warning: unused import: `minirapier::Ray`
--> src/main.rs:2:5
|
2 | use minirapier::Ray;
| ^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
error[E0283]: type annotations needed
--> src/main.rs:10:5
|
10 | insert_resource(Res.into());
| ^^^^^^^^^^^^^^^ ---------- type must be known at this point
| |
| cannot infer type of the type parameter `R` declared on the function `insert_resource`
|
= note: cannot satisfy `_: Resource`
= help: the trait `Resource` is implemented for `Res`
note: required by a bound in `insert_resource`
--> src/main.rs:4:23
|
4 | fn insert_resource<R: Resource>(_resource: R) {}
| ^^^^^^^^ required by this bound in `insert_resource`
help: consider specifying the generic argument
|
10 | insert_resource::<R>(Res.into());
| +++++
help: consider removing this method call, as the receiver has type `Res` and `Res: Resource` trivially holds
|
10 - insert_resource(Res.into());
10 + insert_resource(Res);
```
And how it looks now without the ICE.
```console
warning: unused import: `minirapier::Ray`
--> src/main.rs:2:5
|
2 | use minirapier::Ray;
| ^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
error[E0283]: type annotations needed
--> src/main.rs:10:5
|
10 | insert_resource(Res.into());
| ^^^^^^^^^^^^^^^ ---------- type must be known at this point
| |
| cannot infer type of the type parameter `R` declared on the function `insert_resource`
|
= note: cannot satisfy `_: Resource`
note: there are multiple different versions of crate `minibevy` in the dependency graph
--> /home/lqd/rust/tmp/minimization/issue-132920/rustc-ice-version-conflict/minibevy_b/src/lib.rs:1:1
|
1 | pub trait Resource {}
| ^^^^^^^^^^^^^^^^^^ this is the required trait
|
::: src/main.rs:1:5
|
1 | use minibevy::Resource;
| -------- one version of crate `minibevy` is used here, as a direct dependency of the current crate
2 | use minirapier::Ray;
| ---------- one version of crate `minibevy` is used here, as a dependency of crate `minirapier`
|
::: /home/lqd/rust/tmp/minimization/issue-132920/rustc-ice-version-conflict/minibevy_a/src/lib.rs:1:1
|
1 | pub trait Resource {}
| ------------------ this is the found trait
= help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `insert_resource`
--> src/main.rs:4:23
|
4 | fn insert_resource<R: Resource>(_resource: R) {}
| ^^^^^^^^ required by this bound in `insert_resource`
help: consider specifying the generic argument
|
10 | insert_resource::<R>(Res.into());
| +++++
help: consider removing this method call, as the receiver has type `Res` and `Res: Resource` trivially holds
|
10 - insert_resource(Res.into());
10 + insert_resource(Res);
|
```
The improvements from rust-lang#128849 are still present and the note about the trait coming from the 2 versions of bevy is more explanatory/helpful than before, albeit a bit verbosely.
Fixesrust-lang#132920.
@jhprattjhpratt mentioned this pull request Nov 26, 2024
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 26, 2024
Rollup of 28 pull requests
Successful merges:
- rust-lang#132605 (CI: increase timeout from 4h to 6h)
- rust-lang#133042 (btree: add `{Entry,VacantEntry}::insert_entry`)
- rust-lang#133070 (Lexer tweaks)
- rust-lang#133136 (Support ranges in `<[T]>::get_many_mut()`)
- rust-lang#133140 (Inline ExprPrecedence::order into Expr::precedence)
- rust-lang#133248 (CI: split x86_64-msvc-ext job)
- rust-lang#133282 (Shorten the `MaybeUninit` `Debug` implementation)
- rust-lang#133304 (Revert diagnostics hack to fix ICE 132920)
- rust-lang#133326 (Remove the `DefinitelyInitializedPlaces` analysis.)
- rust-lang#133362 (No need to re-sort existential preds in relate impl)
- rust-lang#133367 (Simplify array length mismatch error reporting (to not try to turn consts into target usizes))
- rust-lang#133394 (Bail on more errors in dyn ty lowering)
- rust-lang#133410 (target check_consistency: ensure target feature string makes some basic sense)
- rust-lang#133411 (the emscripten OS no longer exists on non-wasm targets)
- rust-lang#133419 (Added a doc test for std::path::strip_prefix)
- rust-lang#133430 (Tweak parameter mismatch explanation to not say `{unknown}`)
- rust-lang#133435 (miri: disable test_downgrade_observe test on macOS)
- rust-lang#133443 (Remove dead code stemming from the old effects desugaring (II))
- rust-lang#133449 (std: expose `const_io_error!` as `const_error!`)
- rust-lang#133450 (remove "onur-ozkan" from users_on_vacation)
- rust-lang#133454 (Update test expectations to accept LLVM 'initializes' attribute)
- rust-lang#133458 (Fix `Result` and `Option` not getting a jump to def link generated)
- rust-lang#133462 (Use ReadCache for archive reading in bootstrap)
- rust-lang#133464 (std::thread: avoid leading whitespace in some panic messages)
- rust-lang#133467 (tests: Add recursive associated type bound regression tests)
- rust-lang#133470 (Cleanup: delete `//@ pretty-expanded` directive)
- rust-lang#133473 (tests: Add regression test for recursive enum with Cow and Clone)
- rust-lang#133481 (Disable `avr-rjmp-offset` on Windows for now)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 26, 2024
Rollup of 28 pull requests
Successful merges:
- rust-lang#132605 (CI: increase timeout from 4h to 6h)
- rust-lang#133042 (btree: add `{Entry,VacantEntry}::insert_entry`)
- rust-lang#133070 (Lexer tweaks)
- rust-lang#133136 (Support ranges in `<[T]>::get_many_mut()`)
- rust-lang#133140 (Inline ExprPrecedence::order into Expr::precedence)
- rust-lang#133248 (CI: split x86_64-msvc-ext job)
- rust-lang#133282 (Shorten the `MaybeUninit` `Debug` implementation)
- rust-lang#133304 (Revert diagnostics hack to fix ICE 132920)
- rust-lang#133326 (Remove the `DefinitelyInitializedPlaces` analysis.)
- rust-lang#133362 (No need to re-sort existential preds in relate impl)
- rust-lang#133367 (Simplify array length mismatch error reporting (to not try to turn consts into target usizes))
- rust-lang#133394 (Bail on more errors in dyn ty lowering)
- rust-lang#133410 (target check_consistency: ensure target feature string makes some basic sense)
- rust-lang#133411 (the emscripten OS no longer exists on non-wasm targets)
- rust-lang#133419 (Added a doc test for std::path::strip_prefix)
- rust-lang#133430 (Tweak parameter mismatch explanation to not say `{unknown}`)
- rust-lang#133435 (miri: disable test_downgrade_observe test on macOS)
- rust-lang#133443 (Remove dead code stemming from the old effects desugaring (II))
- rust-lang#133449 (std: expose `const_io_error!` as `const_error!`)
- rust-lang#133450 (remove "onur-ozkan" from users_on_vacation)
- rust-lang#133454 (Update test expectations to accept LLVM 'initializes' attribute)
- rust-lang#133458 (Fix `Result` and `Option` not getting a jump to def link generated)
- rust-lang#133462 (Use ReadCache for archive reading in bootstrap)
- rust-lang#133464 (std::thread: avoid leading whitespace in some panic messages)
- rust-lang#133467 (tests: Add recursive associated type bound regression tests)
- rust-lang#133470 (Cleanup: delete `//@ pretty-expanded` directive)
- rust-lang#133473 (tests: Add regression test for recursive enum with Cow and Clone)
- rust-lang#133481 (Disable `avr-rjmp-offset` on Windows for now)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 26, 2024
Rollup of 28 pull requests
Successful merges:
- rust-lang#132605 (CI: increase timeout from 4h to 6h)
- rust-lang#133042 (btree: add `{Entry,VacantEntry}::insert_entry`)
- rust-lang#133070 (Lexer tweaks)
- rust-lang#133136 (Support ranges in `<[T]>::get_many_mut()`)
- rust-lang#133140 (Inline ExprPrecedence::order into Expr::precedence)
- rust-lang#133248 (CI: split x86_64-msvc-ext job)
- rust-lang#133282 (Shorten the `MaybeUninit` `Debug` implementation)
- rust-lang#133304 (Revert diagnostics hack to fix ICE 132920)
- rust-lang#133326 (Remove the `DefinitelyInitializedPlaces` analysis.)
- rust-lang#133362 (No need to re-sort existential preds in relate impl)
- rust-lang#133367 (Simplify array length mismatch error reporting (to not try to turn consts into target usizes))
- rust-lang#133394 (Bail on more errors in dyn ty lowering)
- rust-lang#133410 (target check_consistency: ensure target feature string makes some basic sense)
- rust-lang#133411 (the emscripten OS no longer exists on non-wasm targets)
- rust-lang#133419 (Added a doc test for std::path::strip_prefix)
- rust-lang#133430 (Tweak parameter mismatch explanation to not say `{unknown}`)
- rust-lang#133435 (miri: disable test_downgrade_observe test on macOS)
- rust-lang#133443 (Remove dead code stemming from the old effects desugaring (II))
- rust-lang#133449 (std: expose `const_io_error!` as `const_error!`)
- rust-lang#133450 (remove "onur-ozkan" from users_on_vacation)
- rust-lang#133454 (Update test expectations to accept LLVM 'initializes' attribute)
- rust-lang#133458 (Fix `Result` and `Option` not getting a jump to def link generated)
- rust-lang#133462 (Use ReadCache for archive reading in bootstrap)
- rust-lang#133464 (std::thread: avoid leading whitespace in some panic messages)
- rust-lang#133467 (tests: Add recursive associated type bound regression tests)
- rust-lang#133470 (Cleanup: delete `//@ pretty-expanded` directive)
- rust-lang#133473 (tests: Add regression test for recursive enum with Cow and Clone)
- rust-lang#133481 (Disable `avr-rjmp-offset` on Windows for now)
r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 27, 2024
…mpiler-errors
Rollup of 8 pull requests
Successful merges:
- rust-lang#115293 (Remove -Zfuel.)
- rust-lang#132605 (CI: increase timeout from 4h to 6h)
- rust-lang#133304 (Revert diagnostics hack to fix ICE 132920)
- rust-lang#133402 (Constify `Drop` and `Destruct`)
- rust-lang#133458 (Fix `Result` and `Option` not getting a jump to def link generated)
- rust-lang#133471 (gce: fix typing_mode mismatch)
- rust-lang#133475 (`MaybeStorage` improvements)
- rust-lang#133513 (Only ignore windows-gnu in avr-jmp-offset)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors
bors merged commit f101562 into rust-lang:masterNov 27, 2024
@rustbotrustbot added this to the 1.85.0 milestone Nov 27, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Nov 27, 2024
Rollup merge of rust-lang#133304 - lqd:issue-132920, r=estebank
Revert diagnostics hack to fix ICE 132920
This reverts 8a568d9 from rust-lang#128849 to fix the diagnostics ICE in rust-lang#132920.
The hack mentioned in that commit was supposed to be tailored to E277, but that codepath is used actually shared with other errors, e.g. at least the E283 from the linked issue.
We may have to eat the slightly worse diagnostics until a non-hacky way to make this error less verbose is implemented (or I guess a different hack specializing even more to E277's structure).
Sorry ``@estebank`` 🙏. I can close this if you'd prefer to fix it in a different way.
Since it seems unexpected that rust-lang#128849 would impact the repro, here's how the error used to look before that PR.
```console
warning: unused import: `minirapier::Ray`
--> src/main.rs:2:5
|
2 | use minirapier::Ray;
| ^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
error[E0283]: type annotations needed
--> src/main.rs:10:5
|
10 | insert_resource(Res.into());
| ^^^^^^^^^^^^^^^ ---------- type must be known at this point
| |
| cannot infer type of the type parameter `R` declared on the function `insert_resource`
|
= note: cannot satisfy `_: Resource`
= help: the trait `Resource` is implemented for `Res`
note: required by a bound in `insert_resource`
--> src/main.rs:4:23
|
4 | fn insert_resource<R: Resource>(_resource: R) {}
| ^^^^^^^^ required by this bound in `insert_resource`
help: consider specifying the generic argument
|
10 | insert_resource::<R>(Res.into());
| +++++
help: consider removing this method call, as the receiver has type `Res` and `Res: Resource` trivially holds
|
10 - insert_resource(Res.into());
10 + insert_resource(Res);
```
And how it looks now without the ICE.
```console
warning: unused import: `minirapier::Ray`
--> src/main.rs:2:5
|
2 | use minirapier::Ray;
| ^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
error[E0283]: type annotations needed
--> src/main.rs:10:5
|
10 | insert_resource(Res.into());
| ^^^^^^^^^^^^^^^ ---------- type must be known at this point
| |
| cannot infer type of the type parameter `R` declared on the function `insert_resource`
|
= note: cannot satisfy `_: Resource`
note: there are multiple different versions of crate `minibevy` in the dependency graph
--> /home/lqd/rust/tmp/minimization/issue-132920/rustc-ice-version-conflict/minibevy_b/src/lib.rs:1:1
|
1 | pub trait Resource {}
| ^^^^^^^^^^^^^^^^^^ this is the required trait
|
::: src/main.rs:1:5
|
1 | use minibevy::Resource;
| -------- one version of crate `minibevy` is used here, as a direct dependency of the current crate
2 | use minirapier::Ray;
| ---------- one version of crate `minibevy` is used here, as a dependency of crate `minirapier`
|
::: /home/lqd/rust/tmp/minimization/issue-132920/rustc-ice-version-conflict/minibevy_a/src/lib.rs:1:1
|
1 | pub trait Resource {}
| ------------------ this is the found trait
= help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `insert_resource`
--> src/main.rs:4:23
|
4 | fn insert_resource<R: Resource>(_resource: R) {}
| ^^^^^^^^ required by this bound in `insert_resource`
help: consider specifying the generic argument
|
10 | insert_resource::<R>(Res.into());
| +++++
help: consider removing this method call, as the receiver has type `Res` and `Res: Resource` trivially holds
|
10 - insert_resource(Res.into());
10 + insert_resource(Res);
|
```
The improvements from rust-lang#128849 are still present and the note about the trait coming from the 2 versions of bevy is more explanatory/helpful than before, albeit a bit verbosely.
Fixesrust-lang#132920.
@lqd
lqd deleted the issue-132920 branch January 12, 2025 22:28
@lqd

lqd commented Jan 12, 2025

Copy link
Copy Markdown
MemberAuthor

Unfortunately, I hadn't noticed that #128849 was in beta already when we landed this.

So now #132920 could be encountered on stable, and while the setup was quite involved there, another issue with code unrelated to it was opened for the same ICE in #135410.

I guess we can stable nominate this PR, even though it doesn't seem worthy of a point release on its own. A lukewarm nomination.

@lqdlqd added the stable-nominated Nominated for backporting to the compiler in the stable channel. label Jan 12, 2025
@apirainoapiraino added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Jan 16, 2025
@apiraino

Copy link
Copy Markdown
Contributor

Stable backport accepted as per compiler team on Zulip. A backport PR will be authored by the release team. Backport labels handled by them.

This backport alone probably does not justify a dot release.

@rustbot label +stable-accepted +T-compiler

@rustbotrustbot added the stable-accepted Accepted for backporting to the compiler in the stable channel. label Jan 16, 2025
@cuvipercuviper modified the milestones: 1.85.0, 1.84.1Jan 27, 2025
@cuvipercuviper removed the stable-nominated Nominated for backporting to the compiler in the stable channel. label Jan 27, 2025
bors added a commit to rust-lang-ci/rust that referenced this pull request Jan 27, 2025
[stable] Prepare Rust 1.84.1 point release
- [Fix ICE 132920 in duplicate-crate diagnostics.](rust-lang#133304)
- [Fix errors for overlapping impls in incremental rebuilds.](rust-lang#133828)
- [Fix slow compilation related to the next-generation trait solver.](rust-lang#135618)
- [Fix debuginfo when LLVM's location discriminator value limit is exceeded.](rust-lang#135643)
- Fixes for building Rust from source:
- [Only try to distribute `llvm-objcopy` if llvm tools are enabled.](rust-lang#134240)
- [Add Profile Override for Non-Git Sources.](rust-lang#135433)
- [Resolve symlinks of LLVM tool binaries before copying them.](rust-lang#135585)
- [Make it possible to use ci-rustc on tarball sources.](rust-lang#135722)
cc `@rust-lang/release`
r? ghost
wip-sync pushed a commit to NetBSD/pkgsrc-wip that referenced this pull request Feb 2, 2025
Pkgsrc changes:
* Adapt patches, one of the patched files were restructured upstream.
* Checksum changes.
Upstream changes:
Version 1.84.1 (2025-01-30)
==========================
- [Fix ICE 132920 in duplicate-crate diagnostics.]
(rust-lang/rust#133304)
- [Fix errors for overlapping impls in incremental rebuilds.]
(rust-lang/rust#133828)
- [Fix slow compilation related to the next-generation trait solver.]
(rust-lang/rust#135618)
- [Fix debuginfo when LLVM's location discriminator value limit is exceeded.]
(rust-lang/rust#135643)
- Fixes for building Rust from source:
- [Only try to distribute `llvm-objcopy` if llvm tools are enabled.]
(rust-lang/rust#134240)
- [Add Profile Override for Non-Git Sources.]
(rust-lang/rust#135433)
- [Resolve symlinks of LLVM tool binaries before copying them.]
(rust-lang/rust#135585)
- [Make it possible to use ci-rustc on tarball sources.]
(rust-lang/rust#135722)
Version 1.84.0 (2025-01-09)
==========================
Language
--------
- [Allow `#[deny]` inside `#[forbid]` as a no-op]
(rust-lang/rust#121560)
- [Show a warning when `-Ctarget-feature` is used to toggle features
that can lead to unsoundness due to ABI mismatches]
(rust-lang/rust#129884)
- [Use the next-generation trait solver in coherence]
(rust-lang/rust#130654)
- [Allow coercions to drop the principal of trait objects]
(rust-lang/rust#131857)
- [Support `/` as the path separator for `include!()` in all cases on Windows]
(rust-lang/rust#125205)
- [Taking a raw ref (`raw (const|mut)`) of a deref of a pointer
(`*ptr`) is now safe]
(rust-lang/rust#129248)
- [Stabilize s390x inline assembly]
(rust-lang/rust#131258)
- [Stabilize Arm64EC inline assembly]
(rust-lang/rust#131781)
- [Lint against creating pointers to immediately dropped temporaries]
(rust-lang/rust#128985)
- [Execute drop glue when unwinding in an `extern "C"` function]
(rust-lang/rust#129582)
Compiler
--------
- [Add `--print host-tuple` flag to print the host target tuple
and affirm the "target tuple" terminology over "target triple"]
(rust-lang/rust#125579)
- [Declaring functions with a calling convention not supported on
the current target now triggers a hard error]
(rust-lang/rust#129935)
- [Set up indirect access to external data for
`loongarch64-unknown-linux-{musl,ohos}`]
(rust-lang/rust#131583)
- [Enable XRay instrumentation for LoongArch Linux targets]
(rust-lang/rust#131818)
- [Extend the `unexpected_cfgs` lint to also warn in external macros]
(rust-lang/rust#132577)
- [Stabilize WebAssembly `multivalue`, `reference-types`, and
`tail-call` target features]
(rust-lang/rust#131080)
- [Added Tier 2 support for the `wasm32v1-none` target]
(rust-lang/rust#131487)
Libraries
---------
- [Implement `From<&mut {slice}>` for `Box/Rc/Arc<{slice}>`]
(rust-lang/rust#129329)
- [Move `<float>::copysign`, `<float>::abs`, `<float>::signum` to `core`]
(rust-lang/rust#131304)
- [Add `LowerExp` and `UpperExp` implementations to `NonZero`]
(rust-lang/rust#131377)
- [Implement `FromStr` for `CString` and `TryFrom<CString>` for `String`]
(rust-lang/rust#130608)
- [`std::os::darwin` has been made public]
(rust-lang/rust#130635)
Stabilized APIs
---------------
- [`Ipv6Addr::is_unique_local`]
(https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unique_local)
- [`Ipv6Addr::is_unicast_link_local`]
(https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unicast_link_local)
- [`core::ptr::with_exposed_provenance`]
(https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance.html)
- [`core::ptr::with_exposed_provenance_mut`]
(https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance_mut.html)
- [`<ptr>::addr`]
(https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.addr)
- [`<ptr>::expose_provenance`]
(https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.expose_provenance)
- [`<ptr>::with_addr`]
(https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.with_addr)
- [`<ptr>::map_addr`]
(https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.map_addr)
- [`<int>::isqrt`]
(https://doc.rust-lang.org/stable/core/primitive.i32.html#method.isqrt)
- [`<int>::checked_isqrt`]
(https://doc.rust-lang.org/stable/core/primitive.i32.html#method.checked_isqrt)
- [`<uint>::isqrt`]
(https://doc.rust-lang.org/stable/core/primitive.u32.html#method.isqrt)
- [`NonZero::isqrt`]
(https://doc.rust-lang.org/stable/core/num/struct.NonZero.html#impl-NonZero%3Cu128%3E/method.isqrt)
- [`core::ptr::without_provenance`]
(https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance.html)
- [`core::ptr::without_provenance_mut`]
(https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance_mut.html)
- [`core::ptr::dangling`]
(https://doc.rust-lang.org/stable/core/ptr/fn.dangling.html)
- [`core::ptr::dangling_mut`]
(https://doc.rust-lang.org/stable/core/ptr/fn.dangling_mut.html)
These APIs are now stable in const contexts
- [`AtomicBool::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.from_ptr)
- [`AtomicPtr::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicPtr.html#method.from_ptr)
- [`AtomicU8::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU8.html#method.from_ptr)
- [`AtomicU16::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU16.html#method.from_ptr)
- [`AtomicU32::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU32.html#method.from_ptr)
- [`AtomicU64::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU64.html#method.from_ptr)
- [`AtomicUsize::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr)
- [`AtomicI8::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI8.html#method.from_ptr)
- [`AtomicI16::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI16.html#method.from_ptr)
- [`AtomicI32::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI32.html#method.from_ptr)
- [`AtomicI64::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI64.html#method.from_ptr)
- [`AtomicIsize::from_ptr`]
(https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicIsize.html#method.from_ptr)
- [`<ptr>::is_null`]
(https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_null-1)
- [`<ptr>::as_ref`]
(https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_ref-1)
- [`<ptr>::as_mut`]
(https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_mut)
- [`Pin::new`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new)
- [`Pin::new_unchecked`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new_unchecked)
- [`Pin::get_ref`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_ref)
- [`Pin::into_ref`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.into_ref)
- [`Pin::get_mut`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_mut)
- [`Pin::get_unchecked_mut`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_unchecked_mut)
- [`Pin::static_ref`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_ref)
- [`Pin::static_mut`]
(https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_mut)
Cargo
-----
- [Stabilize MSRV-aware resolver config]
(rust-lang/cargo#14639)
- [Stabilize resolver v3]
(rust-lang/cargo#14754)
Rustdoc
-------
- [rustdoc-search: improve type-driven search]
(rust-lang/rust#127589)
Compatibility Notes
-------------------
- [Enable by default the `LSX` target feature for LoongArch Linux targets]
(rust-lang/rust#132140)
- [The unstable `-Zprofile` flag ("gcov-style" coverage instrumentation)
has been removed.](rust-lang/rust#131829)
This does not affect the stable flags for coverage instrumentation
(`-Cinstrument-coverage`) and profile-guided optimization
(`-Cprofile-generate`, `-Cprofile-use`), which are unrelated and
remain available.
- Support for the target named `wasm32-wasi` has been removed as
the target is now named `wasm32-wasip1`. This completes the [transition]
(rust-lang/compiler-team#607)
[plan](rust-lang/compiler-team#695) for
this target following [the introduction of `wasm32-wasip1`]
(rust-lang/rust#120468) in Rust 1.78.
Compiler warnings on [use of `wasm32-wasi`]
(rust-lang/rust#126662)
introduced in Rust 1.81 are now gone as well as the target is
removed.
- [The syntax `&pin (mut|const) T` is now parsed as a type which
in theory could affect macro expansion results in some edge cases]
(rust-lang/rust#130635 (comment))
- [Legacy syntax for calling `std::arch` functions is no longer
permitted to declare items or bodies (such as closures, inline
consts, or async blocks).]
(rust-lang/rust#130443 (comment))
- The `wasm32-unknown-emscripten` target's binary release of the
standard library is now [built with the latest emsdk 3.1.68]
(rust-lang/rust#131533), which fixes an
ABI-incompatibility with Emscripten >= 3.1.42. If you are locally
using a version of emsdk with an incompatible ABI (e.g. before
3.1.42 or a future one), you should build your code with `-Zbuild-std`
to ensure that `std` uses the correct ABI.
- [Declaring functions with a calling convention not supported on
the current target now triggers a hard error]
(rust-lang/rust#129935)
- [The next-generation trait solver is now enabled for coherence,
fixing multiple soundness issues]
(rust-lang/rust#130654)
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 4, 2025
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [rust](https://github.com/rust-lang/rust) | patch | `1.84.0` -> `1.84.1` |
MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).
**Proposed changes to behavior should be submitted there as MRs.**
---
### Release Notes
<details>
<summary>rust-lang/rust (rust)</summary>
### [`v1.84.1`](https://github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1841-2025-01-30)
[Compare Source](rust-lang/rust@1.84.0...1.84.1)
\==========================
<a id="1.84.1"></a>
- [Fix ICE 132920 in duplicate-crate diagnostics.](rust-lang/rust#133304)
- [Fix errors for overlapping impls in incremental rebuilds.](rust-lang/rust#133828)
- [Fix slow compilation related to the next-generation trait solver.](rust-lang/rust#135618)
- [Fix debuginfo when LLVM's location discriminator value limit is exceeded.](rust-lang/rust#135643)
- Fixes for building Rust from source:
- [Only try to distribute `llvm-objcopy` if llvm tools are enabled.](rust-lang/rust#134240)
- [Add Profile Override for Non-Git Sources.](rust-lang/rust#135433)
- [Resolve symlinks of LLVM tool binaries before copying them.](rust-lang/rust#135585)
- [Make it possible to use ci-rustc on tarball sources.](rust-lang/rust#135722)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this MR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box
---
This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDMuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Mar 11, 2025
https://build.opensuse.org/request/show/1251612
by user xiaoguang_wang + anag+factory
Version 1.84.1 (2025-01-30)
==========================
- [Fix ICE 132920 in duplicate-crate diagnostics.](rust-lang/rust#133304)
- [Fix errors for overlapping impls in incremental rebuilds.](rust-lang/rust#133828)
- [Fix slow compilation related to the next-generation trait solver.](rust-lang/rust#135618)
- [Fix debuginfo when LLVM's location discriminator value limit is exceeded.](rust-lang/rust#135643)
- Fixes for building Rust from source:
- [Only try to distribute `llvm-objcopy` if llvm tools are enabled.](rust-lang/rust#134240)
- [Add Profile Override for Non-Git Sources.](rust-lang/rust#135433)
- [Resolve symlinks of LLVM tool bina
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.stable-acceptedAccepted for backporting to the compiler in the stable channel.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

error: the compiler unexpectedly panicked. this is a bug.

7 participants

@lqd@rustbot@jieyouxu@estebank@bors@apiraino@cuviper