Skip to content

Commit 9241efe

Browse files
Rollup merge of rust-lang#124230 - reitermarkus:generic-nonzero-stable, r=dtolnay
Stabilize generic `NonZero`. Tracking issue: rust-lang#120257 r? `@dtolnay`
2 parents 5e43c9e + ddfc171 commit 9241efe

File tree

13 files changed

+23
-21
lines changed

13 files changed

+23
-21
lines changed

alloc/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@
126126
#![feature(extend_one)]
127127
#![feature(fmt_internals)]
128128
#![feature(fn_traits)]
129-
#![feature(generic_nonzero)]
130129
#![feature(hasher_prefixfree_extras)]
131130
#![feature(hint_assert_unchecked)]
132131
#![feature(inline_const)]

alloc/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#![feature(core_intrinsics)]
1515
#![feature(extract_if)]
1616
#![feature(exact_size_is_empty)]
17-
#![feature(generic_nonzero)]
1817
#![feature(linked_list_cursors)]
1918
#![feature(map_try_insert)]
2019
#![feature(new_uninit)]

core/src/array/mod.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,8 @@ impl<T, const N: usize> [T; N] {
512512
/// # Examples
513513
///
514514
/// ```
515-
/// #![feature(array_try_map, generic_nonzero)]
515+
/// #![feature(array_try_map)]
516+
///
516517
/// let a = ["1", "2", "3"];
517518
/// let b = a.try_map(|v| v.parse::<u32>()).unwrap().map(|v| v + 1);
518519
/// assert_eq!(b, [2, 3, 4]);
@@ -522,8 +523,10 @@ impl<T, const N: usize> [T; N] {
522523
/// assert!(b.is_err());
523524
///
524525
/// use std::num::NonZero;
526+
///
525527
/// let z = [1, 2, 0, 3, 4];
526528
/// assert_eq!(z.try_map(NonZero::new), None);
529+
///
527530
/// let a = [1, 2, 3];
528531
/// let b = a.try_map(NonZero::new);
529532
/// let c = b.map(|x| x.map(NonZero::get));

core/src/iter/traits/double_ended.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ pub trait DoubleEndedIterator: Iterator {
118118
/// Basic usage:
119119
///
120120
/// ```
121-
/// #![feature(generic_nonzero, iter_advance_by)]
121+
/// #![feature(iter_advance_by)]
122+
///
122123
/// use std::num::NonZero;
123124
///
124125
/// let a = [3, 4, 5, 6];

core/src/iter/traits/iterator.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,8 @@ pub trait Iterator {
288288
/// # Examples
289289
///
290290
/// ```
291-
/// #![feature(generic_nonzero, iter_advance_by)]
291+
/// #![feature(iter_advance_by)]
292+
///
292293
/// use std::num::NonZero;
293294
///
294295
/// let a = [1, 2, 3, 4];
@@ -2939,7 +2940,8 @@ pub trait Iterator {
29392940
/// This also supports other types which implement [`Try`], not just [`Result`].
29402941
///
29412942
/// ```
2942-
/// #![feature(generic_nonzero, try_find)]
2943+
/// #![feature(try_find)]
2944+
///
29432945
/// use std::num::NonZero;
29442946
///
29452947
/// let a = [3, 5, 7, 4, 9, 0, 11u32];

core/src/num/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ pub use error::ParseIntError;
6767
)]
6868
pub use nonzero::ZeroablePrimitive;
6969

70-
#[unstable(feature = "generic_nonzero", issue = "120257")]
70+
#[stable(feature = "generic_nonzero", since = "CURRENT_RUSTC_VERSION")]
7171
pub use nonzero::NonZero;
7272

73-
#[stable(feature = "nonzero", since = "1.28.0")]
74-
pub use nonzero::{NonZeroU128, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8, NonZeroUsize};
75-
7673
#[stable(feature = "signed_nonzero", since = "1.34.0")]
7774
pub use nonzero::{NonZeroI128, NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8, NonZeroIsize};
7875

76+
#[stable(feature = "nonzero", since = "1.28.0")]
77+
pub use nonzero::{NonZeroU128, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8, NonZeroUsize};
78+
7979
#[stable(feature = "try_from", since = "1.34.0")]
8080
pub use error::TryFromIntError;
8181

core/src/num/nonzero.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,11 @@ impl_zeroable_primitive!(
105105
/// For example, `Option<NonZero<u32>>` is the same size as `u32`:
106106
///
107107
/// ```
108-
/// #![feature(generic_nonzero)]
109-
/// use core::mem::size_of;
108+
/// use core::{mem::size_of, num::NonZero};
110109
///
111-
/// assert_eq!(size_of::<Option<core::num::NonZero<u32>>>(), size_of::<u32>());
110+
/// assert_eq!(size_of::<Option<NonZero<u32>>>(), size_of::<u32>());
112111
/// ```
113-
#[unstable(feature = "generic_nonzero", issue = "120257")]
112+
#[stable(feature = "generic_nonzero", since = "CURRENT_RUSTC_VERSION")]
114113
#[repr(transparent)]
115114
#[rustc_nonnull_optimization_guaranteed]
116115
#[rustc_diagnostic_item = "NonZero"]
@@ -562,7 +561,8 @@ macro_rules! nonzero_integer {
562561
/// Basic usage:
563562
///
564563
/// ```
565-
/// #![feature(generic_nonzero, non_zero_count_ones)]
564+
/// #![feature(non_zero_count_ones)]
565+
///
566566
/// # fn main() { test().unwrap(); }
567567
/// # fn test() -> Option<()> {
568568
/// # use std::num::*;

core/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
#![feature(float_minimum_maximum)]
4343
#![feature(future_join)]
4444
#![feature(generic_assert_internals)]
45-
#![feature(generic_nonzero)]
4645
#![feature(array_try_from_fn)]
4746
#![feature(hasher_prefixfree_extras)]
4847
#![feature(hashmap_internals)]

proc_macro/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
#![feature(staged_api)]
2727
#![feature(allow_internal_unstable)]
2828
#![feature(decl_macro)]
29-
#![feature(generic_nonzero)]
3029
#![feature(maybe_uninit_write_slice)]
3130
#![feature(negative_impls)]
3231
#![feature(new_uninit)]

std/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,6 @@
335335
#![feature(float_minimum_maximum)]
336336
#![feature(float_next_up_down)]
337337
#![feature(fmt_internals)]
338-
#![feature(generic_nonzero)]
339338
#![feature(hasher_prefixfree_extras)]
340339
#![feature(hashmap_internals)]
341340
#![feature(hint_assert_unchecked)]

std/src/num.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@ pub use core::num::{FpCategory, ParseFloatError, ParseIntError, TryFromIntError}
2323
)]
2424
pub use core::num::ZeroablePrimitive;
2525

26-
#[unstable(feature = "generic_nonzero", issue = "120257")]
26+
#[stable(feature = "generic_nonzero", since = "CURRENT_RUSTC_VERSION")]
2727
pub use core::num::NonZero;
2828

2929
#[stable(feature = "signed_nonzero", since = "1.34.0")]
3030
pub use core::num::{NonZeroI128, NonZeroI16, NonZeroI32, NonZeroI64, NonZeroI8, NonZeroIsize};
31+
3132
#[stable(feature = "nonzero", since = "1.28.0")]
3233
pub use core::num::{NonZeroU128, NonZeroU16, NonZeroU32, NonZeroU64, NonZeroU8, NonZeroUsize};
3334

std/src/process.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1865,7 +1865,8 @@ impl ExitStatusError {
18651865
/// # Examples
18661866
///
18671867
/// ```
1868-
/// #![feature(exit_status_error, generic_nonzero)]
1868+
/// #![feature(exit_status_error)]
1869+
///
18691870
/// # if cfg!(unix) {
18701871
/// use std::num::NonZero;
18711872
/// use std::process::Command;

test/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#![unstable(feature = "test", issue = "50297")]
1818
#![doc(test(attr(deny(warnings))))]
1919
#![doc(rust_logo)]
20-
#![feature(generic_nonzero)]
2120
#![feature(rustdoc_internals)]
2221
#![feature(internal_output_capture)]
2322
#![feature(staged_api)]

0 commit comments

Comments
 (0)