Skip to content

Commit

Permalink
Auto merge of rust-lang#126569 - jieyouxu:rollup-1uvkb2y, r=jieyouxu
Browse files Browse the repository at this point in the history
Rollup of 8 pull requests

Successful merges:

 - rust-lang#125258 (Resolve elided lifetimes in assoc const to static if no other lifetimes are in scope)
 - rust-lang#126250 (docs(change): Don't mention a Cargo 2024 edition change for 1.79)
 - rust-lang#126288 (doc: Added commas where needed)
 - rust-lang#126346 (export std::os::fd module on HermitOS)
 - rust-lang#126468 (div_euclid, rem_euclid: clarify/extend documentation)
 - rust-lang#126531 (Add codegen test for `Request::provide_*`)
 - rust-lang#126535 (coverage: Arrange span extraction/refinement as a series of passes)
 - rust-lang#126538 (coverage: Several small improvements to graph code)

r? `@ghost`
`@rustbot` modify labels: rollup
  • Loading branch information
bors committed Jun 17, 2024
2 parents 4aa43c7 + c1acd7a commit 8cd20cb
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 24 deletions.
2 changes: 1 addition & 1 deletion core/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -928,7 +928,7 @@ pub(crate) mod tags {
/// An `Option` with a type tag `I`.
///
/// Since this struct implements `Erased`, the type can be erased to make a dynamically typed
/// option. The type can be checked dynamically using `Erased::tag_id` and since this is statically
/// option. The type can be checked dynamically using `Tagged::tag_id` and since this is statically
/// checked for the concrete type, there is some degree of type safety.
#[repr(transparent)]
pub(crate) struct TaggedOption<'a, I: tags::Type<'a>>(pub Option<I::Reified>);
Expand Down
10 changes: 6 additions & 4 deletions core/src/num/int_macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2784,8 +2784,10 @@ macro_rules! int_impl {
///
/// In other words, the result is `self / rhs` rounded to the integer `q`
/// such that `self >= q * rhs`.
/// If `self > 0`, this is equal to round towards zero (the default in Rust);
/// if `self < 0`, this is equal to round towards +/- infinity.
/// If `self > 0`, this is equal to rounding towards zero (the default in Rust);
/// if `self < 0`, this is equal to rounding away from zero (towards +/- infinity).
/// If `rhs > 0`, this is equal to rounding towards -infinity;
/// if `rhs < 0`, this is equal to rounding towards +infinity.
///
/// # Panics
///
Expand Down Expand Up @@ -2823,8 +2825,8 @@ macro_rules! int_impl {
/// Calculates the least nonnegative remainder of `self (mod rhs)`.
///
/// This is done as if by the Euclidean division algorithm -- given
/// `r = self.rem_euclid(rhs)`, `self = rhs * self.div_euclid(rhs) + r`, and
/// `0 <= r < abs(rhs)`.
/// `r = self.rem_euclid(rhs)`, the result satisfies
/// `self = rhs * self.div_euclid(rhs) + r` and `0 <= r < abs(rhs)`.
///
/// # Panics
///
Expand Down
12 changes: 6 additions & 6 deletions core/src/ptr/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@
//! pointer. For code which *does* cast a usize to a pointer, the scope of the change depends
//! on exactly what you're doing.
//!
//! In general you just need to make sure that if you want to convert a usize address to a
//! In general, you just need to make sure that if you want to convert a usize address to a
//! pointer and then use that pointer to read/write memory, you need to keep around a pointer
//! that has sufficient provenance to perform that read/write itself. In this way all of your
//! casts from an address to a pointer are essentially just applying offsets/indexing.
Expand Down Expand Up @@ -309,7 +309,7 @@
//! i.e. the usual "ZSTs are fake, do what you want" rules apply *but* this only applies
//! for actual forgery (integers cast to pointers). If you borrow some struct's field
//! that *happens* to be zero-sized, the resulting pointer will have provenance tied to
//! that allocation and it will still get invalidated if the allocation gets deallocated.
//! that allocation, and it will still get invalidated if the allocation gets deallocated.
//! In the future we may introduce an API to make such a forged allocation explicit.
//!
//! * [`wrapping_offset`][] a pointer outside its provenance. This includes pointers
Expand Down Expand Up @@ -698,7 +698,7 @@ pub const fn dangling_mut<T>() -> *mut T {
///
/// If there is no 'exposed' provenance that justifies the way this pointer will be used,
/// the program has undefined behavior. In particular, the aliasing rules still apply: pointers
/// and references that have been invalidated due to aliasing accesses cannot be used any more,
/// and references that have been invalidated due to aliasing accesses cannot be used anymore,
/// even if they have been exposed!
///
/// Note that there is no algorithm that decides which provenance will be used. You can think of this
Expand Down Expand Up @@ -1097,7 +1097,7 @@ const unsafe fn swap_nonoverlapping_simple_untyped<T>(x: *mut T, y: *mut T, coun
// If we end up here, it's because we're using a simple type -- like
// a small power-of-two-sized thing -- or a special type with particularly
// large alignment, particularly SIMD types.
// Thus we're fine just reading-and-writing it, as either it's small
// Thus, we're fine just reading-and-writing it, as either it's small
// and that works well anyway or it's special and the type's author
// presumably wanted things to be done in the larger chunk.

Expand Down Expand Up @@ -1290,7 +1290,7 @@ pub const unsafe fn read<T>(src: *const T) -> T {
// provides enough information to know that this is a typed operation.

// However, as of March 2023 the compiler was not capable of taking advantage
// of that information. Thus the implementation here switched to an intrinsic,
// of that information. Thus, the implementation here switched to an intrinsic,
// which lowers to `_0 = *src` in MIR, to address a few issues:
//
// - Using `MaybeUninit::assume_init` after a `copy_nonoverlapping` was not
Expand Down Expand Up @@ -1570,7 +1570,7 @@ pub const unsafe fn write<T>(dst: *mut T, src: T) {
/// As a result, using `&packed.unaligned as *const FieldType` causes immediate
/// *undefined behavior* in your program.
///
/// Instead you must use the [`ptr::addr_of_mut!`](addr_of_mut)
/// Instead, you must use the [`ptr::addr_of_mut!`](addr_of_mut)
/// macro to create the pointer. You may use that returned pointer together with
/// this function.
///
Expand Down
15 changes: 3 additions & 12 deletions std/src/os/hermit/io/mod.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,4 @@
#![stable(feature = "os_fd", since = "1.66.0")]
#![stable(feature = "rust1", since = "1.0.0")]

mod net;
#[path = "../../fd/owned.rs"]
mod owned;
#[path = "../../fd/raw.rs"]
mod raw;

// Export the types and traits for the public API.
#[stable(feature = "os_fd", since = "1.66.0")]
pub use owned::*;
#[stable(feature = "os_fd", since = "1.66.0")]
pub use raw::*;
#[stable(feature = "rust1", since = "1.0.0")]
pub use crate::os::fd::*;
2 changes: 1 addition & 1 deletion std/src/os/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ pub(crate) mod watchos;
#[cfg(target_os = "xous")]
pub mod xous;

#[cfg(any(unix, target_os = "wasi", doc))]
#[cfg(any(unix, target_os = "hermit", target_os = "wasi", doc))]
pub mod fd;

#[cfg(any(target_os = "linux", target_os = "android", doc))]
Expand Down

0 comments on commit 8cd20cb

Please sign in to comment.