diff options
| author | Jacob Pratt <jacob@jhpratt.dev> | 2024-12-01 21:38:24 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-01 21:38:24 -0500 |
| commit | 5880752b9ad00d37f0b2e011c2e687d3c6ebcd66 (patch) | |
| tree | d76cfb6ead20387438a131edc624eb6e60820105 /compiler/rustc_mir_transform/src/coverage/query.rs | |
| parent | cb67512784a3986483d2a4c76eeed28c200beeea (diff) | |
| parent | b88478f7073bab189f05ff4fb4c486f3776fbafa (diff) | |
| download | rust-5880752b9ad00d37f0b2e011c2e687d3c6ebcd66.tar.gz rust-5880752b9ad00d37f0b2e011c2e687d3c6ebcd66.zip | |
Rollup merge of #131784 - Urgau:stabilize-midpoint, r=dtolnay
Stabilize unsigned and float variants of `num_midpoint` feature
This PR proposes that we stabilize the unsigned variants of the [`num_midpoint`](https://github.com/rust-lang/rust/issues/110840#issue-1684506201) feature as well as the floats variants, since they are not subject to any unresolved questions, which is equivalent to doing `(a + b) / 2` (and `(a + b) >> 1`) in a sufficiently large number.
The stabilized API surface would be:
```rust
/// Calculates the middle point of `self` and `rhs`.
///
/// `midpoint(a, b)` is `(a + b) / 2` as if it were performed in a sufficiently-large unsigned integral type.
/// This implies that the result is always rounded towards negative infinity and that no overflow will ever occur.
impl u{8,16,32,64,128,size} {
pub const fn midpoint(self, rhs: Self) -> Self;
}
impl NonZeroU{8,16,32,64,size} {
pub const fn midpoint(self, rhs: Self) -> Self;
}
impl f{32,64} {
pub const fn midpoint(self, rhs: Self) -> Self;
}
```
The signed variants `u{8,16,32,64,128,size}` would remain gated, until a decision is made about the rounding mode, in other words that the [unresolved questions](https://github.com/rust-lang/rust/issues/110840#issue-1684506201) are resolved.
cc `@rust-lang/libs-api`
cc `@scottmcm`
r? libs-api
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/query.rs')
0 files changed, 0 insertions, 0 deletions
