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 }
   |                             ^^^^^^^^^^
   |
   = 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: 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
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 }
   |                         ^^^^^^^^^^
   |
   = 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: 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
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 }
   |                                 ^^^^^^^^^^^^^^^
   |
   = 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: 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
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> {}
   |                                               ^^^^^^^^^^
   |
   = 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: 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
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 {}
   |                            ^^^^^^^^^^
   |
   = 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: 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 {}
   |             ^^^^^^^^^^
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 {}
   |                                      ^^^^^^^^^^
   |
   = 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: 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 {}
   |                 ^^^^^^^^^^
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 {}
   |                                     ^^^^^^^^^^
   |
   = 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: 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
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 }
   |                            ^^^^^^^^^^
   |
   = 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: 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
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

