Static rustc_lint::builtin::RUST_2024_PRELUDE_COLLISIONS
source · pub static RUST_2024_PRELUDE_COLLISIONS: &'static Lint
Expand description
The rust_2024_prelude_collisions
lint detects the usage of trait methods which are ambiguous
with traits added to the prelude in future editions.
§Example
ⓘ
#![deny(rust_2024_prelude_collisions)]
trait Meow {
fn poll(&self) {}
}
impl<T> Meow for T {}
fn main() {
core::pin::pin!(async {}).poll();
// ^^^^^^
// This call to try_into matches both Future::poll and Meow::poll as
// `Future` has been added to the Rust prelude in 2024 edition.
}
{{produces}}
§Explanation
Rust 2024, introduces two new additions to the standard library’s prelude:
Future
and IntoFuture
. This results in an ambiguity as to which method/function
to call when an existing poll
/into_future
method is called via dot-call syntax or
a poll
/into_future
associated function is called directly on a type.