Skip to content

Commit 1ea3165

Browse files
authored
Merge pull request #20 from artichoke/lopopolo/core-primitive
Use `::core::primitive` re-exports for macro hygiene
2 parents a2e6f53 + 6c3f09f commit 1ea3165

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

src/imp.rs

-7
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,6 @@ pub const fn contains_nul(slice: &[u8]) -> bool {
2626
matches!(find(slice, 0), Some(_))
2727
}
2828

29-
pub mod types {
30-
// Type alias for `u8`.
31-
pub type U8 = u8;
32-
// Type alias for `str`.
33-
pub type Str = str;
34-
}
35-
3629
#[cfg(test)]
3730
mod tests {
3831
use super::{contains_nul, find, is_cstr};

src/lib.rs

+24-6
Original file line numberDiff line numberDiff line change
@@ -215,9 +215,9 @@ macro_rules! const_assert_matches {
215215
#[macro_export]
216216
macro_rules! lossless_cast_u32_to_usize {
217217
($num:expr) => {{
218-
$crate::const_assert!(usize::BITS >= u32::BITS);
219-
let num: u32 = $num;
220-
num as usize
218+
$crate::const_assert!(::core::primitive::usize::BITS >= ::core::primitive::u32::BITS);
219+
let num: ::core::primitive::u32 = $num;
220+
num as ::core::primitive::usize
221221
}};
222222
}
223223

@@ -276,7 +276,7 @@ macro_rules! const_assert_size_eq {
276276
#[macro_export]
277277
macro_rules! const_assert_bytes_has_no_nul {
278278
($bytes:expr $(,)?) => {{
279-
const _: &[$crate::imp::types::U8] = $bytes;
279+
const _: &[::core::primitive::u8] = $bytes;
280280

281281
$crate::const_assert!(!$crate::imp::contains_nul($bytes));
282282
}};
@@ -332,7 +332,7 @@ macro_rules! const_assert_bytes_has_no_nul {
332332
#[macro_export]
333333
macro_rules! const_cstr_from_bytes {
334334
($bytes:expr $(,)?) => {{
335-
const _: &[$crate::imp::types::U8] = $bytes;
335+
const _: &[::core::primitive::u8] = $bytes;
336336

337337
$crate::const_assert!($crate::imp::is_cstr($bytes));
338338

@@ -396,7 +396,7 @@ macro_rules! const_cstr_from_bytes {
396396
#[macro_export]
397397
macro_rules! const_cstr_from_str {
398398
($str:expr $(,)?) => {{
399-
const _: &$crate::imp::types::Str = $str;
399+
const _: &::core::primitive::str = $str;
400400

401401
$crate::const_cstr_from_bytes!($str.as_bytes())
402402
}};
@@ -543,6 +543,24 @@ mod tests {
543543
crate::const_assert!("".is_empty());
544544
}
545545

546+
#[test]
547+
fn lossless_u32_to_usize_hygiene_u32() {
548+
#[allow(dead_code)]
549+
#[allow(non_camel_case_types)]
550+
struct u32 {}
551+
let n = crate::lossless_cast_u32_to_usize!(29_u32);
552+
assert_eq!(n, 29_usize);
553+
}
554+
555+
#[test]
556+
fn lossless_u32_to_usize_hygiene_usize() {
557+
#[allow(dead_code)]
558+
#[allow(non_camel_case_types)]
559+
struct usize {}
560+
let n = crate::lossless_cast_u32_to_usize!(29_u32);
561+
assert_eq!(n, 29_usize);
562+
}
563+
546564
#[test]
547565
fn const_cstr_from_bytes_hygiene() {
548566
#[allow(dead_code)]

0 commit comments

Comments
 (0)