error: `impl Sized` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:7:29
   |
LL | fn named<'a>(x: &'a i32) -> impl Sized { *x }
   |                             ^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:7:10
   |
LL | fn named<'a>(x: &'a i32) -> impl Sized { *x }
   |          ^^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
note: the lint level is defined here
  --> $DIR/overcaptures-2024.rs:5:9
   |
LL | #![deny(impl_trait_overcaptures)]
   |         ^^^^^^^^^^^^^^^^^^^^^^^
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL | fn named<'a>(x: &'a i32) -> impl Sized + use<> { *x }
   |                                        +++++++

error: `impl Sized` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:11:25
   |
LL | fn implicit(x: &i32) -> impl Sized { *x }
   |                         ^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:11:16
   |
LL | fn implicit(x: &i32) -> impl Sized { *x }
   |                ^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL | fn implicit(x: &i32) -> impl Sized + use<> { *x }
   |                                    +++++++

error: `impl Sized + '_` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:17:33
   |
LL |     fn hello(&self, x: &i32) -> impl Sized + '_ { self }
   |                                 ^^^^^^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:17:24
   |
LL |     fn hello(&self, x: &i32) -> impl Sized + '_ { self }
   |                        ^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL |     fn hello(&self, x: &i32) -> impl Sized + '_ + use<'_> { self }
   |                                                 +++++++++

error: `impl Sized` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:29:47
   |
LL | fn hrtb() -> impl for<'a> Higher<'a, Output = impl Sized> {}
   |                                               ^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:29:23
   |
LL | fn hrtb() -> impl for<'a> Higher<'a, Output = impl Sized> {}
   |                       ^^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL | fn hrtb() -> impl for<'a> Higher<'a, Output = impl Sized + use<>> {}
   |                                                          +++++++

error: `impl Sized` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:33:28
   |
LL | fn apit(_: &impl Sized) -> impl Sized {}
   |                            ^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:33:12
   |
LL | fn apit(_: &impl Sized) -> impl Sized {}
   |            ^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
  --> $DIR/overcaptures-2024.rs:33:13
   |
LL | fn apit(_: &impl Sized) -> impl Sized {}
   |             ^^^^^^^^^^
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL - fn apit(_: &impl Sized) -> impl Sized {}
LL + fn apit<T: Sized>(_: &T) -> impl Sized + use<T> {}
   |

error: `impl Sized` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:37:38
   |
LL | fn apit2<U>(_: &impl Sized, _: U) -> impl Sized {}
   |                                      ^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:37:16
   |
LL | fn apit2<U>(_: &impl Sized, _: U) -> impl Sized {}
   |                ^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
note: you could use a `use<...>` bound to explicitly specify captures, but argument-position `impl Trait`s are not nameable
  --> $DIR/overcaptures-2024.rs:37:17
   |
LL | fn apit2<U>(_: &impl Sized, _: U) -> impl Sized {}
   |                 ^^^^^^^^^^
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL - fn apit2<U>(_: &impl Sized, _: U) -> impl Sized {}
LL + fn apit2<U, T: Sized>(_: &T, _: U) -> impl Sized + use<U, T> {}
   |

error: `impl Sized` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:41:37
   |
LL | async fn async_fn<'a>(x: &'a ()) -> impl Sized {}
   |                                     ^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:41:19
   |
LL | async fn async_fn<'a>(x: &'a ()) -> impl Sized {}
   |                   ^^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL | async fn async_fn<'a>(x: &'a ()) -> impl Sized + use<> {}
   |                                                +++++++

error: `impl Clone` will capture more lifetimes than possibly intended in edition 2024
  --> $DIR/overcaptures-2024.rs:45:28
   |
LL | pub fn parens(x: &i32) -> &impl Clone { x }
   |                            ^^^^^^^^^^
   |
note: specifically, this lifetime is in scope but not mentioned in the type's bounds
  --> $DIR/overcaptures-2024.rs:45:18
   |
LL | pub fn parens(x: &i32) -> &impl Clone { x }
   |                  ^
   = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024
   = warning: this changes meaning in Rust 2024
   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>
help: use the precise capturing `use<...>` syntax to make the captures explicit
   |
LL | pub fn parens(x: &i32) -> &(impl Clone + use<>) { x }
   |                            +           ++++++++

error: aborting due to 8 previous errors

