rust/library/coretests/tests
Ruan Comelli f8e97badb2
Add const support for float rounding methods
Add const support for the float rounding methods floor, ceil, trunc,
fract, round and round_ties_even.
This works by moving the calculation logic from

     src/tools/miri/src/intrinsics/mod.rs

into

     compiler/rustc_const_eval/src/interpret/intrinsics.rs.

All relevant method definitions were adjusted to include the `const`
keyword for all supported float types: f16, f32, f64 and f128.

The constness is hidden behind the feature gate

     feature(const_float_round_methods)

which is tracked in

     https://github.com/rust-lang/rust/issues/141555

This commit is a squash of the following commits:
- test: add tests that we expect to pass when float rounding becomes const
- feat: make float rounding methods `const`
- fix: replace `rustc_allow_const_fn_unstable(core_intrinsics)` attribute with `#[rustc_const_unstable(feature = "f128", issue = "116909")]` in `library/core/src/num/f128.rs`
- revert: undo update to `library/stdarch`
- refactor: replace multiple `float_<mode>_intrinsic` rounding methods with a single, parametrized one
- fix: add `#[cfg(not(bootstrap))]` to new const method tests
- test: add extra sign tests to check `+0.0` and `-0.0`
- revert: undo accidental changes to `round` docs
- fix: gate `const` float round method behind `const_float_round_methods`
- fix: remove unnecessary `#![feature(const_float_methods)]`
- fix: remove unnecessary `#![feature(const_float_methods)]` [2]
- revert: undo changes to `tests/ui/consts/const-eval/float_methods.rs`
- fix: adjust after rebase
- test: fix float tests
- test: add tests for `fract`
- chore: add commented-out `const_float_round_methods` feature gates to `f16` and `f128`
- fix: adjust NaN when rounding floats
- chore: add FIXME comment for de-duplicating float tests
- test: remove unnecessary test file `tests/ui/consts/const-eval/float_methods.rs`
- test: fix tests after upstream simplification of how float tests are run
2025-05-31 15:26:57 -03:00
..
async_iter Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
ffi add CStr::display 2025-05-24 08:24:52 -04:00
floats Rollup merge of #141669 - tgross35:float-test-cleanup, r=RalfJung 2025-05-30 07:01:31 +02:00
fmt Auto merge of #136974 - m-ou-se:fmt-options-64-bit, r=scottmcm 2025-03-22 10:56:14 +00:00
hash library: Use size_of from the prelude instead of imported 2025-03-06 20:20:38 -08:00
io Migrate coretests to Rust 2024 2025-02-13 13:10:21 -08:00
iter added test for Enumerate::next_index on empty iterator 2025-04-19 12:29:47 +02:00
net Recognise new IPv6 non-global range from RFC9602 2025-03-21 17:53:29 +11:00
num Add const support for float rounding methods 2025-05-31 15:26:57 -03:00
ops Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
panic Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
alloc.rs library: Use size_of from the prelude instead of imported 2025-03-06 20:20:38 -08:00
any.rs Optionally add type names to TypeIds. 2025-02-11 18:42:19 -08:00
array.rs Add #[must_use] to Array::map 2025-05-13 12:34:53 +09:00
ascii.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
ascii_char.rs Implement Extend<AsciiChar> for String 2025-02-08 16:51:04 -05:00
asserting.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
atomic.rs library: Use size_of from the prelude instead of imported 2025-03-06 20:20:38 -08:00
bool.rs Remove some unnecessary parens in assert! conditions 2025-02-06 22:28:44 +00:00
bstr.rs Actually run the bstr test 2025-01-26 10:45:09 +00:00
cell.rs Apply requested API changes to cell_update 2025-04-02 18:18:50 +00:00
char.rs add MAX_LEN_UTF8 and MAX_LEN_UTF16 constants 2025-02-16 21:08:38 +08:00
clone.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
cmp.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
const_ptr.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
convert.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
error.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
ffi.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
future.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
hint.rs Fix drop handling in hint::select_unpredictable 2025-04-17 17:30:53 +02:00
intrinsics.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
lazy.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
lib.rs Add const support for float rounding methods 2025-05-31 15:26:57 -03:00
macros.rs Rename cfg_match! to cfg_select! 2025-05-20 21:16:23 +00:00
manually_drop.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
mem.rs Add inherent versions of MaybeUninit::fill methods for slices 2025-03-08 18:41:35 -05:00
nonzero.rs library: Use size_of from the prelude instead of imported 2025-03-06 20:20:38 -08:00
ops.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
option.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
panic.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
pattern.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
pin.rs Put pin!() tests in the right file. 2025-03-28 10:18:04 +01:00
pin_macro.rs update cfg(bootstrap) 2025-05-12 15:33:37 +02:00
ptr.rs stabilize ptr::swap_nonoverlapping in const 2025-04-29 10:40:56 +02:00
result.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
simd.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
slice.rs Rollup merge of #138034 - thaliaarchi:use-prelude-size-of, r=tgross35 2025-03-07 10:12:44 +01:00
str.rs tidy: Fix paths to coretests and alloctests 2025-04-05 12:15:49 -07:00
str_lossy.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
task.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
time.rs Split duration_constructors to get non-controversial bits out faster. 2025-05-09 22:52:39 -04:00
tuple.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
unicode.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00
waker.rs Put all coretests in a separate crate 2025-01-26 10:26:36 +00:00