Skip to content

Commit dfca153

Browse files
committed
Auto merge of rust-lang#138155 - matthiaskrgr:rollup-xq5buio, r=matthiaskrgr
Rollup of 6 pull requests Successful merges: - rust-lang#137674 (Enable `f16` for LoongArch) - rust-lang#138034 (library: Use `size_of` from the prelude instead of imported) - rust-lang#138060 (Revert rust-lang#138019 after further discussion about how hir-pretty printing should work) - rust-lang#138073 (Break critical edges in inline asm before code generation) - rust-lang#138107 (`librustdoc`: clippy fixes) - rust-lang#138111 (Use `default_field_values` for `rustc_errors::Context`, `rustc_session::config::NextSolverConfig` and `rustc_session::config::ErrorOutputType`) r? `@ghost` `@rustbot` modify labels: rollup
2 parents b68bc98 + b615fd5 commit dfca153

File tree

119 files changed

+402
-497
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+402
-497
lines changed

alloc/benches/slice.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::{mem, ptr};
1+
use std::ptr;
22

33
use rand::Rng;
44
use rand::distr::{Alphanumeric, SampleString, StandardUniform};
@@ -234,7 +234,7 @@ macro_rules! sort {
234234
fn $name(b: &mut Bencher) {
235235
let v = $gen($len);
236236
b.iter(|| v.clone().$f());
237-
b.bytes = $len * mem::size_of_val(&$gen(1)[0]) as u64;
237+
b.bytes = $len * size_of_val(&$gen(1)[0]) as u64;
238238
}
239239
};
240240
}
@@ -246,7 +246,7 @@ macro_rules! sort_strings {
246246
let v = $gen($len);
247247
let v = v.iter().map(|s| &**s).collect::<Vec<&str>>();
248248
b.iter(|| v.clone().$f());
249-
b.bytes = $len * mem::size_of::<&str>() as u64;
249+
b.bytes = $len * size_of::<&str>() as u64;
250250
}
251251
};
252252
}
@@ -268,7 +268,7 @@ macro_rules! sort_expensive {
268268
});
269269
black_box(count);
270270
});
271-
b.bytes = $len * mem::size_of_val(&$gen(1)[0]) as u64;
271+
b.bytes = $len * size_of_val(&$gen(1)[0]) as u64;
272272
}
273273
};
274274
}
@@ -279,7 +279,7 @@ macro_rules! sort_lexicographic {
279279
fn $name(b: &mut Bencher) {
280280
let v = $gen($len);
281281
b.iter(|| v.clone().$f(|x| x.to_string()));
282-
b.bytes = $len * mem::size_of_val(&$gen(1)[0]) as u64;
282+
b.bytes = $len * size_of_val(&$gen(1)[0]) as u64;
283283
}
284284
};
285285
}
@@ -322,7 +322,7 @@ macro_rules! reverse {
322322
fn $name(b: &mut Bencher) {
323323
// odd length and offset by 1 to be as unaligned as possible
324324
let n = 0xFFFFF;
325-
let mut v: Vec<_> = (0..1 + (n / mem::size_of::<$ty>() as u64)).map($f).collect();
325+
let mut v: Vec<_> = (0..1 + (n / size_of::<$ty>() as u64)).map($f).collect();
326326
b.iter(|| black_box(&mut v[1..]).reverse());
327327
b.bytes = n;
328328
}
@@ -346,7 +346,7 @@ macro_rules! rotate {
346346
($name:ident, $gen:expr, $len:expr, $mid:expr) => {
347347
#[bench]
348348
fn $name(b: &mut Bencher) {
349-
let size = mem::size_of_val(&$gen(1)[0]);
349+
let size = size_of_val(&$gen(1)[0]);
350350
let mut v = $gen($len * 8 / size);
351351
b.iter(|| black_box(&mut v).rotate_left(($mid * 8 + size - 1) / size));
352352
b.bytes = (v.len() * size) as u64;

alloc/benches/vec.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ fn random_sorted_fill(mut seed: u32, buf: &mut [u32]) {
669669
// This algorithm was used for Vecs prior to Rust 1.52.
670670
fn bench_dedup_slice_truncate(b: &mut Bencher, sz: usize) {
671671
let mut template = vec![0u32; sz];
672-
b.bytes = std::mem::size_of_val(template.as_slice()) as u64;
672+
b.bytes = size_of_val(template.as_slice()) as u64;
673673
random_sorted_fill(0x43, &mut template);
674674

675675
let mut vec = template.clone();
@@ -691,7 +691,7 @@ fn bench_dedup_slice_truncate(b: &mut Bencher, sz: usize) {
691691
// Measures performance of Vec::dedup on random data.
692692
fn bench_vec_dedup_random(b: &mut Bencher, sz: usize) {
693693
let mut template = vec![0u32; sz];
694-
b.bytes = std::mem::size_of_val(template.as_slice()) as u64;
694+
b.bytes = size_of_val(template.as_slice()) as u64;
695695
random_sorted_fill(0x43, &mut template);
696696

697697
let mut vec = template.clone();
@@ -708,7 +708,7 @@ fn bench_vec_dedup_random(b: &mut Bencher, sz: usize) {
708708
// Measures performance of Vec::dedup when there is no items removed
709709
fn bench_vec_dedup_none(b: &mut Bencher, sz: usize) {
710710
let mut template = vec![0u32; sz];
711-
b.bytes = std::mem::size_of_val(template.as_slice()) as u64;
711+
b.bytes = size_of_val(template.as_slice()) as u64;
712712
template.chunks_exact_mut(2).for_each(|w| {
713713
w[0] = black_box(0);
714714
w[1] = black_box(5);
@@ -729,7 +729,7 @@ fn bench_vec_dedup_none(b: &mut Bencher, sz: usize) {
729729
// Measures performance of Vec::dedup when there is all items removed
730730
fn bench_vec_dedup_all(b: &mut Bencher, sz: usize) {
731731
let mut template = vec![0u32; sz];
732-
b.bytes = std::mem::size_of_val(template.as_slice()) as u64;
732+
b.bytes = size_of_val(template.as_slice()) as u64;
733733
template.iter_mut().for_each(|w| {
734734
*w = black_box(0);
735735
});

alloc/src/boxed/convert.rs

+10-18
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,6 @@ impl<'a, E: Error + 'a> From<E> for Box<dyn Error + 'a> {
529529
/// ```
530530
/// use std::error::Error;
531531
/// use std::fmt;
532-
/// use std::mem;
533532
///
534533
/// #[derive(Debug)]
535534
/// struct AnError;
@@ -543,9 +542,9 @@ impl<'a, E: Error + 'a> From<E> for Box<dyn Error + 'a> {
543542
/// impl Error for AnError {}
544543
///
545544
/// let an_error = AnError;
546-
/// assert!(0 == mem::size_of_val(&an_error));
545+
/// assert!(0 == size_of_val(&an_error));
547546
/// let a_boxed_error = Box::<dyn Error>::from(an_error);
548-
/// assert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
547+
/// assert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
549548
/// ```
550549
fn from(err: E) -> Box<dyn Error + 'a> {
551550
Box::new(err)
@@ -563,7 +562,6 @@ impl<'a, E: Error + Send + Sync + 'a> From<E> for Box<dyn Error + Send + Sync +
563562
/// ```
564563
/// use std::error::Error;
565564
/// use std::fmt;
566-
/// use std::mem;
567565
///
568566
/// #[derive(Debug)]
569567
/// struct AnError;
@@ -581,10 +579,10 @@ impl<'a, E: Error + Send + Sync + 'a> From<E> for Box<dyn Error + Send + Sync +
581579
/// unsafe impl Sync for AnError {}
582580
///
583581
/// let an_error = AnError;
584-
/// assert!(0 == mem::size_of_val(&an_error));
582+
/// assert!(0 == size_of_val(&an_error));
585583
/// let a_boxed_error = Box::<dyn Error + Send + Sync>::from(an_error);
586584
/// assert!(
587-
/// mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
585+
/// size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
588586
/// ```
589587
fn from(err: E) -> Box<dyn Error + Send + Sync + 'a> {
590588
Box::new(err)
@@ -600,12 +598,11 @@ impl<'a> From<String> for Box<dyn Error + Send + Sync + 'a> {
600598
///
601599
/// ```
602600
/// use std::error::Error;
603-
/// use std::mem;
604601
///
605602
/// let a_string_error = "a string error".to_string();
606603
/// let a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_string_error);
607604
/// assert!(
608-
/// mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
605+
/// size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
609606
/// ```
610607
#[inline]
611608
fn from(err: String) -> Box<dyn Error + Send + Sync + 'a> {
@@ -644,11 +641,10 @@ impl<'a> From<String> for Box<dyn Error + 'a> {
644641
///
645642
/// ```
646643
/// use std::error::Error;
647-
/// use std::mem;
648644
///
649645
/// let a_string_error = "a string error".to_string();
650646
/// let a_boxed_error = Box::<dyn Error>::from(a_string_error);
651-
/// assert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
647+
/// assert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
652648
/// ```
653649
fn from(str_err: String) -> Box<dyn Error + 'a> {
654650
let err1: Box<dyn Error + Send + Sync> = From::from(str_err);
@@ -668,12 +664,11 @@ impl<'a> From<&str> for Box<dyn Error + Send + Sync + 'a> {
668664
///
669665
/// ```
670666
/// use std::error::Error;
671-
/// use std::mem;
672667
///
673668
/// let a_str_error = "a str error";
674669
/// let a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_str_error);
675670
/// assert!(
676-
/// mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
671+
/// size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
677672
/// ```
678673
#[inline]
679674
fn from(err: &str) -> Box<dyn Error + Send + Sync + 'a> {
@@ -692,11 +687,10 @@ impl<'a> From<&str> for Box<dyn Error + 'a> {
692687
///
693688
/// ```
694689
/// use std::error::Error;
695-
/// use std::mem;
696690
///
697691
/// let a_str_error = "a str error";
698692
/// let a_boxed_error = Box::<dyn Error>::from(a_str_error);
699-
/// assert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
693+
/// assert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
700694
/// ```
701695
fn from(err: &str) -> Box<dyn Error + 'a> {
702696
From::from(String::from(err))
@@ -712,13 +706,12 @@ impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + Send + Sync + 'a> {
712706
///
713707
/// ```
714708
/// use std::error::Error;
715-
/// use std::mem;
716709
/// use std::borrow::Cow;
717710
///
718711
/// let a_cow_str_error = Cow::from("a str error");
719712
/// let a_boxed_error = Box::<dyn Error + Send + Sync>::from(a_cow_str_error);
720713
/// assert!(
721-
/// mem::size_of::<Box<dyn Error + Send + Sync>>() == mem::size_of_val(&a_boxed_error))
714+
/// size_of::<Box<dyn Error + Send + Sync>>() == size_of_val(&a_boxed_error))
722715
/// ```
723716
fn from(err: Cow<'b, str>) -> Box<dyn Error + Send + Sync + 'a> {
724717
From::from(String::from(err))
@@ -734,12 +727,11 @@ impl<'a, 'b> From<Cow<'b, str>> for Box<dyn Error + 'a> {
734727
///
735728
/// ```
736729
/// use std::error::Error;
737-
/// use std::mem;
738730
/// use std::borrow::Cow;
739731
///
740732
/// let a_cow_str_error = Cow::from("a str error");
741733
/// let a_boxed_error = Box::<dyn Error>::from(a_cow_str_error);
742-
/// assert!(mem::size_of::<Box<dyn Error>>() == mem::size_of_val(&a_boxed_error))
734+
/// assert!(size_of::<Box<dyn Error>>() == size_of_val(&a_boxed_error))
743735
/// ```
744736
fn from(err: Cow<'b, str>) -> Box<dyn Error + 'a> {
745737
From::from(String::from(err))

alloc/src/boxed/thin.rs

+8-14
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ use core::intrinsics::const_allocate;
99
use core::marker::PhantomData;
1010
#[cfg(not(no_global_oom_handling))]
1111
use core::marker::Unsize;
12-
use core::mem;
1312
#[cfg(not(no_global_oom_handling))]
14-
use core::mem::SizedTypeProperties;
13+
use core::mem::{self, SizedTypeProperties};
1514
use core::ops::{Deref, DerefMut};
1615
use core::ptr::{self, NonNull, Pointee};
1716

@@ -30,7 +29,6 @@ use crate::alloc::{self, Layout, LayoutError};
3029
/// let five = ThinBox::new(5);
3130
/// let thin_slice = ThinBox::<[i32]>::new_unsize([1, 2, 3, 4]);
3231
///
33-
/// use std::mem::{size_of, size_of_val};
3432
/// let size_of_ptr = size_of::<*const ()>();
3533
/// assert_eq!(size_of_ptr, size_of_val(&five));
3634
/// assert_eq!(size_of_ptr, size_of_val(&thin_slice));
@@ -114,7 +112,7 @@ impl<Dyn: ?Sized> ThinBox<Dyn> {
114112
where
115113
T: Unsize<Dyn>,
116114
{
117-
if mem::size_of::<T>() == 0 {
115+
if size_of::<T>() == 0 {
118116
let ptr = WithOpaqueHeader::new_unsize_zst::<Dyn, T>(value);
119117
ThinBox { ptr, _marker: PhantomData }
120118
} else {
@@ -283,9 +281,7 @@ impl<H> WithHeader<H> {
283281
let ptr = if layout.size() == 0 {
284282
// Some paranoia checking, mostly so that the ThinBox tests are
285283
// more able to catch issues.
286-
debug_assert!(
287-
value_offset == 0 && mem::size_of::<T>() == 0 && mem::size_of::<H>() == 0
288-
);
284+
debug_assert!(value_offset == 0 && size_of::<T>() == 0 && size_of::<H>() == 0);
289285
layout.dangling()
290286
} else {
291287
let ptr = alloc::alloc(layout);
@@ -315,7 +311,7 @@ impl<H> WithHeader<H> {
315311
Dyn: Pointee<Metadata = H> + ?Sized,
316312
T: Unsize<Dyn>,
317313
{
318-
assert!(mem::size_of::<T>() == 0);
314+
assert!(size_of::<T>() == 0);
319315

320316
const fn max(a: usize, b: usize) -> usize {
321317
if a > b { a } else { b }
@@ -329,18 +325,16 @@ impl<H> WithHeader<H> {
329325
// FIXME: just call `WithHeader::alloc_layout` with size reset to 0.
330326
// Currently that's blocked on `Layout::extend` not being `const fn`.
331327

332-
let alloc_align =
333-
max(mem::align_of::<T>(), mem::align_of::<<Dyn as Pointee>::Metadata>());
328+
let alloc_align = max(align_of::<T>(), align_of::<<Dyn as Pointee>::Metadata>());
334329

335-
let alloc_size =
336-
max(mem::align_of::<T>(), mem::size_of::<<Dyn as Pointee>::Metadata>());
330+
let alloc_size = max(align_of::<T>(), size_of::<<Dyn as Pointee>::Metadata>());
337331

338332
unsafe {
339333
// SAFETY: align is power of two because it is the maximum of two alignments.
340334
let alloc: *mut u8 = const_allocate(alloc_size, alloc_align);
341335

342336
let metadata_offset =
343-
alloc_size.checked_sub(mem::size_of::<<Dyn as Pointee>::Metadata>()).unwrap();
337+
alloc_size.checked_sub(size_of::<<Dyn as Pointee>::Metadata>()).unwrap();
344338
// SAFETY: adding offset within the allocation.
345339
let metadata_ptr: *mut <Dyn as Pointee>::Metadata =
346340
alloc.add(metadata_offset).cast();
@@ -421,7 +415,7 @@ impl<H> WithHeader<H> {
421415
}
422416

423417
const fn header_size() -> usize {
424-
mem::size_of::<H>()
418+
size_of::<H>()
425419
}
426420

427421
fn alloc_layout(value_layout: Layout) -> Result<(Layout, usize), LayoutError> {

alloc/src/collections/btree/node/tests.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@ fn test_partial_eq() {
9292
#[cfg(target_arch = "x86_64")]
9393
#[cfg_attr(any(miri, randomized_layouts), ignore)] // We'd like to run Miri with layout randomization
9494
fn test_sizes() {
95-
assert_eq!(core::mem::size_of::<LeafNode<(), ()>>(), 16);
96-
assert_eq!(core::mem::size_of::<LeafNode<i64, i64>>(), 16 + CAPACITY * 2 * 8);
97-
assert_eq!(core::mem::size_of::<InternalNode<(), ()>>(), 16 + (CAPACITY + 1) * 8);
98-
assert_eq!(core::mem::size_of::<InternalNode<i64, i64>>(), 16 + (CAPACITY * 3 + 1) * 8);
95+
assert_eq!(size_of::<LeafNode<(), ()>>(), 16);
96+
assert_eq!(size_of::<LeafNode<i64, i64>>(), 16 + CAPACITY * 2 * 8);
97+
assert_eq!(size_of::<InternalNode<(), ()>>(), 16 + (CAPACITY + 1) * 8);
98+
assert_eq!(size_of::<InternalNode<i64, i64>>(), 16 + (CAPACITY * 3 + 1) * 8);
9999
}

alloc/src/raw_vec.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ impl<A: Allocator> RawVecInner<A> {
480480

481481
// Allocators currently return a `NonNull<[u8]>` whose length
482482
// matches the size requested. If that ever changes, the capacity
483-
// here should change to `ptr.len() / mem::size_of::<T>()`.
483+
// here should change to `ptr.len() / size_of::<T>()`.
484484
Ok(Self {
485485
ptr: Unique::from(ptr.cast()),
486486
cap: unsafe { Cap::new_unchecked(capacity) },
@@ -627,7 +627,7 @@ impl<A: Allocator> RawVecInner<A> {
627627
unsafe fn set_ptr_and_cap(&mut self, ptr: NonNull<[u8]>, cap: usize) {
628628
// Allocators currently return a `NonNull<[u8]>` whose length matches
629629
// the size requested. If that ever changes, the capacity here should
630-
// change to `ptr.len() / mem::size_of::<T>()`.
630+
// change to `ptr.len() / size_of::<T>()`.
631631
self.ptr = Unique::from(ptr.cast());
632632
self.cap = unsafe { Cap::new_unchecked(cap) };
633633
}

alloc/src/raw_vec/tests.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use core::mem::size_of;
21
use std::cell::Cell;
32

43
use super::*;
@@ -93,7 +92,7 @@ fn zst_sanity<T>(v: &RawVec<T>) {
9392
fn zst() {
9493
let cap_err = Err(crate::collections::TryReserveErrorKind::CapacityOverflow.into());
9594

96-
assert_eq!(std::mem::size_of::<ZST>(), 0);
95+
assert_eq!(size_of::<ZST>(), 0);
9796

9897
// All these different ways of creating the RawVec produce the same thing.
9998

alloc/src/slice.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use core::borrow::{Borrow, BorrowMut};
1616
#[cfg(not(no_global_oom_handling))]
1717
use core::cmp::Ordering::{self, Less};
1818
#[cfg(not(no_global_oom_handling))]
19-
use core::mem::{self, MaybeUninit};
19+
use core::mem::MaybeUninit;
2020
#[cfg(not(no_global_oom_handling))]
2121
use core::ptr;
2222
#[unstable(feature = "array_chunks", issue = "74985")]
@@ -446,7 +446,7 @@ impl<T> [T] {
446446
// Avoids binary-size usage in cases where the alignment doesn't work out to make this
447447
// beneficial or on 32-bit platforms.
448448
let is_using_u32_as_idx_type_helpful =
449-
const { mem::size_of::<(K, u32)>() < mem::size_of::<(K, usize)>() };
449+
const { size_of::<(K, u32)>() < size_of::<(K, usize)>() };
450450

451451
// It's possible to instantiate this for u8 and u16 but, doing so is very wasteful in terms
452452
// of compile-times and binary-size, the peak saved heap memory for u16 is (u8 + u16) -> 4

alloc/src/string.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -119,16 +119,14 @@ use crate::vec::{self, Vec};
119119
/// the same `char`s:
120120
///
121121
/// ```
122-
/// use std::mem;
123-
///
124122
/// // `s` is ASCII which represents each `char` as one byte
125123
/// let s = "hello";
126124
/// assert_eq!(s.len(), 5);
127125
///
128126
/// // A `char` array with the same contents would be longer because
129127
/// // every `char` is four bytes
130128
/// let s = ['h', 'e', 'l', 'l', 'o'];
131-
/// let size: usize = s.into_iter().map(|c| mem::size_of_val(&c)).sum();
129+
/// let size: usize = s.into_iter().map(|c| size_of_val(&c)).sum();
132130
/// assert_eq!(size, 20);
133131
///
134132
/// // However, for non-ASCII strings, the difference will be smaller
@@ -137,7 +135,7 @@ use crate::vec::{self, Vec};
137135
/// assert_eq!(s.len(), 20);
138136
///
139137
/// let s = ['💖', '💖', '💖', '💖', '💖'];
140-
/// let size: usize = s.into_iter().map(|c| mem::size_of_val(&c)).sum();
138+
/// let size: usize = s.into_iter().map(|c| size_of_val(&c)).sum();
141139
/// assert_eq!(size, 20);
142140
/// ```
143141
///

0 commit comments

Comments
 (0)