mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-09 05:23:07 +00:00
Rollup merge of #103945 - H4x5:remove-iter-empty-hack, r=compiler-errors
Remove `iter::Empty` hack `iter::Empty` uses a newtype to work around `#![feature(const_fn_fn_ptr_basics)]`, which has been stable since 1.61.0.
This commit is contained in:
commit
d1193ad1e6
@ -22,17 +22,12 @@ pub const fn empty<T>() -> Empty<T> {
|
|||||||
Empty(marker::PhantomData)
|
Empty(marker::PhantomData)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Newtype for use in `PhantomData` to avoid
|
|
||||||
// > error: const-stable function cannot use `#[feature(const_fn_fn_ptr_basics)]`
|
|
||||||
// in `const fn empty<T>()` above.
|
|
||||||
struct FnReturning<T>(fn() -> T);
|
|
||||||
|
|
||||||
/// An iterator that yields nothing.
|
/// An iterator that yields nothing.
|
||||||
///
|
///
|
||||||
/// This `struct` is created by the [`empty()`] function. See its documentation for more.
|
/// This `struct` is created by the [`empty()`] function. See its documentation for more.
|
||||||
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
#[must_use = "iterators are lazy and do nothing unless consumed"]
|
||||||
#[stable(feature = "iter_empty", since = "1.2.0")]
|
#[stable(feature = "iter_empty", since = "1.2.0")]
|
||||||
pub struct Empty<T>(marker::PhantomData<FnReturning<T>>);
|
pub struct Empty<T>(marker::PhantomData<fn() -> T>);
|
||||||
|
|
||||||
#[stable(feature = "core_impl_debug", since = "1.9.0")]
|
#[stable(feature = "core_impl_debug", since = "1.9.0")]
|
||||||
impl<T> fmt::Debug for Empty<T> {
|
impl<T> fmt::Debug for Empty<T> {
|
||||||
|
Loading…
Reference in New Issue
Block a user