Skip to content

Commit b3d08cd

Browse files
authored
Unrolled build for #146326
Rollup merge of #146326 - cyrgani:int-module-1, r=jhpratt simplify the declaration of the legacy integer modules (`std::u32` etc.) This PR removes some duplicated code from the declaration of the legacy integer modules by expanding the macro which is already used to generate `MIN` and `MAX` to now generate the whole module. This would also make the remaining steps listed in #68490 such as fully deprecating the modules or placing `#[doc(hidden)]` on them easier.
2 parents fefce3c + 9899ab3 commit b3d08cd

File tree

15 files changed

+81
-219
lines changed

15 files changed

+81
-219
lines changed

library/core/src/lib.rs

Lines changed: 10 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -252,47 +252,16 @@ pub use crate::macros::cfg_select;
252252
#[macro_use]
253253
mod internal_macros;
254254

255-
#[path = "num/shells/int_macros.rs"]
256-
#[macro_use]
257-
mod int_macros;
258-
259-
#[rustc_diagnostic_item = "i128_legacy_mod"]
260-
#[path = "num/shells/i128.rs"]
261-
pub mod i128;
262-
#[rustc_diagnostic_item = "i16_legacy_mod"]
263-
#[path = "num/shells/i16.rs"]
264-
pub mod i16;
265-
#[rustc_diagnostic_item = "i32_legacy_mod"]
266-
#[path = "num/shells/i32.rs"]
267-
pub mod i32;
268-
#[rustc_diagnostic_item = "i64_legacy_mod"]
269-
#[path = "num/shells/i64.rs"]
270-
pub mod i64;
271-
#[rustc_diagnostic_item = "i8_legacy_mod"]
272-
#[path = "num/shells/i8.rs"]
273-
pub mod i8;
274-
#[rustc_diagnostic_item = "isize_legacy_mod"]
275-
#[path = "num/shells/isize.rs"]
276-
pub mod isize;
277-
278-
#[rustc_diagnostic_item = "u128_legacy_mod"]
279-
#[path = "num/shells/u128.rs"]
280-
pub mod u128;
281-
#[rustc_diagnostic_item = "u16_legacy_mod"]
282-
#[path = "num/shells/u16.rs"]
283-
pub mod u16;
284-
#[rustc_diagnostic_item = "u32_legacy_mod"]
285-
#[path = "num/shells/u32.rs"]
286-
pub mod u32;
287-
#[rustc_diagnostic_item = "u64_legacy_mod"]
288-
#[path = "num/shells/u64.rs"]
289-
pub mod u64;
290-
#[rustc_diagnostic_item = "u8_legacy_mod"]
291-
#[path = "num/shells/u8.rs"]
292-
pub mod u8;
293-
#[rustc_diagnostic_item = "usize_legacy_mod"]
294-
#[path = "num/shells/usize.rs"]
295-
pub mod usize;
255+
#[path = "num/shells/legacy_int_modules.rs"]
256+
mod legacy_int_modules;
257+
#[stable(feature = "rust1", since = "1.0.0")]
258+
#[allow(clippy::useless_attribute)] // FIXME false positive (https://github.com/rust-lang/rust-clippy/issues/15636)
259+
#[allow(deprecated_in_future)]
260+
pub use legacy_int_modules::{i8, i16, i32, i64, isize, u8, u16, u32, u64, usize};
261+
#[stable(feature = "i128", since = "1.26.0")]
262+
#[allow(clippy::useless_attribute)] // FIXME false positive (https://github.com/rust-lang/rust-clippy/issues/15636)
263+
#[allow(deprecated_in_future)]
264+
pub use legacy_int_modules::{i128, u128};
296265

297266
#[path = "num/f128.rs"]
298267
pub mod f128;

library/core/src/num/shells/i128.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.

library/core/src/num/shells/i16.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.

library/core/src/num/shells/i32.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.

library/core/src/num/shells/i64.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.

library/core/src/num/shells/i8.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.

library/core/src/num/shells/int_macros.rs

Lines changed: 0 additions & 46 deletions
This file was deleted.

library/core/src/num/shells/isize.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
#![doc(hidden)]
2+
3+
macro_rules! legacy_int_module {
4+
($T:ident) => (legacy_int_module!($T, #[stable(feature = "rust1", since = "1.0.0")]););
5+
($T:ident, #[$attr:meta]) => (
6+
#[$attr]
7+
#[deprecated(
8+
since = "TBD",
9+
note = "all constants in this module replaced by associated constants on the type"
10+
)]
11+
#[rustc_diagnostic_item = concat!(stringify!($T), "_legacy_mod")]
12+
pub mod $T {
13+
#![doc = concat!("Redundant constants module for the [`", stringify!($T), "` primitive type][", stringify!($T), "].")]
14+
//!
15+
//! New code should use the associated constants directly on the primitive type.
16+
17+
#[doc = concat!(
18+
"The smallest value that can be represented by this integer type. Use ",
19+
"[`", stringify!($T), "::MIN", "`] instead."
20+
)]
21+
///
22+
/// # Examples
23+
///
24+
/// ```rust
25+
/// // deprecated way
26+
#[doc = concat!("let min = std::", stringify!($T), "::MIN;")]
27+
///
28+
/// // intended way
29+
#[doc = concat!("let min = ", stringify!($T), "::MIN;")]
30+
/// ```
31+
///
32+
#[$attr]
33+
#[deprecated(since = "TBD", note = "replaced by the `MIN` associated constant on this type")]
34+
#[rustc_diagnostic_item = concat!(stringify!($T), "_legacy_const_min")]
35+
pub const MIN: $T = $T::MIN;
36+
37+
#[doc = concat!(
38+
"The largest value that can be represented by this integer type. Use ",
39+
"[`", stringify!($T), "::MAX", "`] instead."
40+
)]
41+
///
42+
/// # Examples
43+
///
44+
/// ```rust
45+
/// // deprecated way
46+
#[doc = concat!("let max = std::", stringify!($T), "::MAX;")]
47+
///
48+
/// // intended way
49+
#[doc = concat!("let max = ", stringify!($T), "::MAX;")]
50+
/// ```
51+
///
52+
#[$attr]
53+
#[deprecated(since = "TBD", note = "replaced by the `MAX` associated constant on this type")]
54+
#[rustc_diagnostic_item = concat!(stringify!($T), "_legacy_const_max")]
55+
pub const MAX: $T = $T::MAX;
56+
}
57+
)
58+
}
59+
60+
legacy_int_module! { i128, #[stable(feature = "i128", since = "1.26.0")] }
61+
legacy_int_module! { i16 }
62+
legacy_int_module! { i32 }
63+
legacy_int_module! { i64 }
64+
legacy_int_module! { i8 }
65+
legacy_int_module! { isize }
66+
legacy_int_module! { u128, #[stable(feature = "i128", since = "1.26.0")] }
67+
legacy_int_module! { u16 }
68+
legacy_int_module! { u32 }
69+
legacy_int_module! { u64 }
70+
legacy_int_module! { u8 }
71+
legacy_int_module! { usize }

library/core/src/num/shells/u128.rs

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)