error on incorrect implied bounds in wfcheck except for Bevy dependents by jackh726 · Pull Request #118553 · rust-lang/rust (original) (raw)

We're getting new users reporting that this error is surfacing in clean builds of Bevy on nightly. Swapping back to stable fixed it.

I can reproduce it both when building Bevy itself, and in an empty project with a dependency on Bevy 0.12.1, with:

rustc 1.77.0-nightly (25f8d01fd 2024-01-18)
binary: rustc
commit-hash: 25f8d01fd8bda339612d0c0a8844173a09205f7c
commit-date: 2024-01-18
host: x86_64-pc-windows-msvc
release: 1.77.0-nightly
LLVM version: 17.0.6

The error:

   Compiling bevy_transform v0.12.1
error: lifetime may not live long enough
  --> C:\Users\alice\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_transform-0.12.1\src\systems.rs:14:1
   |
14 | / pub fn sync_simple_transforms(
15 | |     mut query: ParamSet<(
16 | |         Query<
17 | |             (&Transform, &mut GlobalTransform),
   | |              - let's call the lifetime of this reference `'1`
...  |
26 | |     mut orphaned: RemovedComponents<Parent>,
27 | | ) {
   | |_^ requires that `'1` must outlive `'static`

error: lifetime may not live long enough
  --> C:\Users\alice\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_transform-0.12.1\src\systems.rs:14:1
   |
14 | / pub fn sync_simple_transforms(
15 | |     mut query: ParamSet<(
16 | |         Query<
17 | |             (&Transform, &mut GlobalTransform),
   | |                          - let's call the lifetime of this reference `'2`
...  |
26 | |     mut orphaned: RemovedComponents<Parent>,
27 | | ) {
   | |_^ requires that `'2` must outlive `'static`

error: lifetime may not live long enough
  --> C:\Users\alice\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_transform-0.12.1\src\systems.rs:14:1
   |
14 | / pub fn sync_simple_transforms(
15 | |     mut query: ParamSet<(
   | |     --------- has type `ParamSet<'_, '_, (Query<'_, '_, (&transform::Transform, &mut global_transform::GlobalTransform), (Or<(Changed<transform::Transform>, Added<global_transform::GlobalTransform>)>, Without<Parent>, Without<Children>)>, Query<'_, '_, (bevy_ecs::change_detection::Ref<'3, transform::Transform>, &mut global_transform::GlobalTransform), (Without<Parent>, Without<Children>)>)>`
16 | |         Query<
17 | |             (&Transform, &mut GlobalTransform),
...  |
26 | |     mut orphaned: RemovedComponents<Parent>,
27 | | ) {
   | |_^ requires that `'3` must outlive `'static`

error: lifetime may not live long enough
  --> C:\Users\alice\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bevy_transform-0.12.1\src\systems.rs:14:1
   |
14 | / pub fn sync_simple_transforms(
15 | |     mut query: ParamSet<(
16 | |         Query<
17 | |             (&Transform, &mut GlobalTransform),
...  |
24 | |         Query<(Ref<Transform>, &mut GlobalTransform), (Without<Parent>, Without<Children>)>,
   | |                                - let's call the lifetime of this reference `'4`
25 | |     )>,
26 | |     mut orphaned: RemovedComponents<Parent>,
27 | | ) {
   | |_^ requires that `'4` must outlive `'static`

error: could not compile `bevy_transform` (lib) due to 4 previous errors