Skip to content

Stabilize fN::BITS - #154065

Open
Apersoma wants to merge 3 commits into
rust-lang:mainfrom
Apersoma:stabilize-fN-bits
Open

Apersoma wants to merge 3 commits into
rust-lang:mainfrom
Apersoma:stabilize-fN-bits

Conversation

@Apersoma

@Apersoma Apersoma commented Mar 19, 2026 •

Copy link
Copy Markdown
Contributor

View all comments

Tracking issue: #151073
Closes: #151073

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Mar 19, 2026
@rustbot

rustbot commented Mar 19, 2026

Copy link
Copy Markdown
Collaborator

r? @scottmcm

rustbot has assigned @scottmcm.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @scottmcm, libs
  • @scottmcm, libs expanded to 8 candidates
  • Random selection from Mark-Simulacrum, scottmcm

@rustbot

rustbot commented Mar 19, 2026

Copy link
Copy Markdown
Collaborator

compiler-builtins is developed in its own repository. If possible, consider making this change to rust-lang/compiler-builtins instead.

cc @tgross35

@rustbot rustbot added the A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) label Mar 19, 2026
@tgross35 tgross35 assigned tgross35 and unassigned scottmcm Mar 19, 2026
@tgross35

Copy link
Copy Markdown
Member

This has only been around since January but it seems pretty unobjectionable to have. However, this does conflict with a constant in use in the ecosystem (showed up in the implementation PR) so we need to take a look at crater.

@bors try

@rustbot label +I-libs-api-nominated

@rustbot rustbot added the I-libs-api-nominated [DEPRECATED; DO NOT USE] label Mar 19, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Mar 19, 2026
@rust-bors

rust-bors Bot commented Mar 19, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 0abe69e (0abe69e6c16114311cc2700e972492e64d69c28f, parent: 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320)

@tgross35

Copy link
Copy Markdown
Member

Doing a run with tests in case somebody has a different value for BITS for some reason.

@craterbot run mode=build-and-test

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-154065 created and queued.
🤖 Automatically detected try build 0abe69e
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 19, 2026
@Amanieu Amanieu removed the I-libs-api-nominated [DEPRECATED; DO NOT USE] label Mar 24, 2026
@Amanieu

Amanieu commented Mar 24, 2026

Copy link
Copy Markdown
Member

FCP started in #151073

@tgross35

Copy link
Copy Markdown
Member

@Apersoma please squash the commits and give it a reasonable message, the first commit just says "cmplt" (we don't have squash merging on this repo).

@craterbot

Copy link
Copy Markdown
Collaborator

🚧 Experiment pr-154065 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot

Copy link
Copy Markdown
Collaborator

🎉 Experiment pr-154065 is completed!
📊 297 regressed and 292 fixed (857798 total)
📊 132042 spurious results on the retry-regressed-list.txt, consider a retry1 if this is a significant amount.
📰 Open the summary report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

Footnotes

  1. re-run the experiment with crates=https://crater-reports.s3.amazonaws.com/pr-154065/retry-regressed-list.txt ↩

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Mar 28, 2026
@tgross35

Copy link
Copy Markdown
Member

@craterbot

Copy link
Copy Markdown
Collaborator

👌 Experiment pr-154065-1 created and queued.
🤖 Automatically detected try build 0abe69e
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 28, 2026
@rust-bors rust-bors Bot removed the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Aug 11, 2026
@rust-bors

rust-bors Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

This PR was contained in a rollup (#160947), which was unapproved.

View changes since this unapproval

@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 11, 2026
@rust-bors

rust-bors Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

This PR was contained in a rollup (#160947), which was closed.

@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 11, 2026
@rustbot

This comment has been minimized.

@tgross35

Copy link
Copy Markdown
Member

@rustbot author

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 11, 2026
@rustbot

rustbot commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Reminder, once the PR becomes ready for a review, use @rustbot ready.

@nia-e nia-e closed this Aug 11, 2026
@rustbot rustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 11, 2026
@nia-e nia-e reopened this Aug 11, 2026
@rustbot rustbot added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Aug 11, 2026
@nia-e

nia-e commented Aug 11, 2026

Copy link
Copy Markdown
Member

not me fat-fingering "unsubscribe". oops!

@JonathanBrouwer JonathanBrouwer added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 11, 2026
@rust-log-analyzer

This comment has been minimized.

@clarfonthey clarfonthey removed the I-libs-api-nominated [DEPRECATED; DO NOT USE] label Aug 12, 2026
@rust-bors

This comment has been minimized.

@tyhdefu

tyhdefu commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

@Apersoma Are you able to update this PR, squashing, rebasing and fixing any issues?

Otherwise as the author of the changes I'd be happy to open a PR to stabilise these changes.

@rustbot

rustbot commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed.

Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers.

@rustbot

rustbot commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

⚠️ Warning ⚠️

  • The following commits have merge commits (commits with multiple parents) in your changes. We have a no merge policy so these commits will need to be removed for this pull request to be merged.

    You can start a rebase with the following commands:

    $ # rebase
    $ git pull --rebase https://github.com/rust-lang/rust.git main
    $ git push --force-with-lease
    

@rustbot rustbot added the has-merge-commits PR has merge commits, merge with caution. label Sep 14, 2026
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job test-aarch64-gnu-llvm-21-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[RUSTC-TIMING] build_script_build test:false 0.293
warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/float/sub.rs:6:69
   |
 6 |         crate::float::add::__addhf3(a, f16::from_bits(b.to_bits() ^ f16::SIGN_MASK))
   |                                                                     ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
   = note: `#[warn(unstable_name_collisions)]` (part of `#[warn(future_incompatible)]`) on by default
help: use the fully qualified path to the associated const
   |
 6 -         crate::float::add::__addhf3(a, f16::from_bits(b.to_bits() ^ f16::SIGN_MASK))
 6 +         crate::float::add::__addhf3(a, f16::from_bits(b.to_bits() ^ <f16 as float_traits::Float>::SIGN_MASK))
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f16::<impl f16>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/float/sub.rs:11:69
   |
11 |         crate::float::add::__addsf3(a, f32::from_bits(b.to_bits() ^ f32::SIGN_MASK))
   |                                                                     ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
11 -         crate::float::add::__addsf3(a, f32::from_bits(b.to_bits() ^ f32::SIGN_MASK))
11 +         crate::float::add::__addsf3(a, f32::from_bits(b.to_bits() ^ <f32 as float_traits::Float>::SIGN_MASK))
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f32::<impl f32>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/float/sub.rs:16:69
   |
16 |         crate::float::add::__adddf3(a, f64::from_bits(b.to_bits() ^ f64::SIGN_MASK))
   |                                                                     ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
16 -         crate::float::add::__adddf3(a, f64::from_bits(b.to_bits() ^ f64::SIGN_MASK))
16 +         crate::float::add::__adddf3(a, f64::from_bits(b.to_bits() ^ <f64 as float_traits::Float>::SIGN_MASK))
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f64::<impl f64>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/float/sub.rs:27:51
   |
27 |         __addtf3(a, f128::from_bits(b.to_bits() ^ f128::SIGN_MASK))
   |                                                   ^^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
27 -         __addtf3(a, f128::from_bits(b.to_bits() ^ f128::SIGN_MASK))
27 +         __addtf3(a, f128::from_bits(b.to_bits() ^ <f128 as float_traits::Float>::SIGN_MASK))
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f128::<impl f128>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

---
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
285 | |             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
    | |                                                                    ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
285 -             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
285 +             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | <f16 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f16::<impl f16>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:286:70
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
286 | |             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
    | |                                                                      ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
286 -             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
286 +             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | <f16 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f16::<impl f16>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:305:43
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
305 | |             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
    | |                                           ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
305 -             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
305 +             const EXP_MASK: Self::Int = !(<f16 as float_traits::Float>::SIGN_MASK | Self::SIG_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f16::<impl f16>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:285:68
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
285 | |             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
    | |                                                                    ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
285 -             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
285 +             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | <f32 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f32::<impl f32>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:286:70
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
286 | |             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
    | |                                                                      ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
286 -             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
286 +             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | <f32 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f32::<impl f32>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:305:43
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
305 | |             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
    | |                                           ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
305 -             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
305 +             const EXP_MASK: Self::Int = !(<f32 as float_traits::Float>::SIGN_MASK | Self::SIG_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f32::<impl f32>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:285:68
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
285 | |             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
    | |                                                                    ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
285 -             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
285 +             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | <f64 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f64::<impl f64>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:286:70
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
286 | |             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
    | |                                                                      ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
286 -             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
286 +             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | <f64 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f64::<impl f64>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:305:43
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
305 | |             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
    | |                                           ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
305 -             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
305 +             const EXP_MASK: Self::Int = !(<f64 as float_traits::Float>::SIGN_MASK | Self::SIG_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f64::<impl f64>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:285:68
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
285 | |             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
    | |                                                                    ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
285 -             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | Self::SIGN_MASK);
285 +             const NEG_NAN: Self = $from_bits($to_bits(Self::NAN) | <f128 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f128::<impl f128>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:286:70
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
286 | |             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
    | |                                                                      ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
286 -             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | Self::SIGN_MASK);
286 +             const NEG_SNAN: Self = $from_bits($to_bits(Self::SNAN) | <f128 as float_traits::Float>::SIGN_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f128::<impl f128>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: an associated constant with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/float_traits.rs:305:43
    |
244 | / macro_rules! float_impl {
245 | |     (
246 | |         $ty:ident,
247 | |         $ity:ident,
...   |
305 | |             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
    | |                                           ^^^^^^^^^^^^^^^
...   |
383 | |     };
384 | | }
    | |_- in this expansion of `float_impl!`
---
    = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
    = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
    |
305 -             const EXP_MASK: Self::Int = !(Self::SIGN_MASK | Self::SIG_MASK);
305 +             const EXP_MASK: Self::Int = !(<f128 as float_traits::Float>::SIGN_MASK | Self::SIG_MASK);
    |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f128::<impl f128>::SIGN_MASK`
   --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
    |
 35 + #![feature(float_masks)]
    |

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:28
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                            ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
75 |   impl_narrowing_div_primitive!(u16);
   |   ---------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:55
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                                                       ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
75 |   impl_narrowing_div_primitive!(u16);
   |   ---------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:28
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                            ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
76 |   impl_narrowing_div_primitive!(u32);
   |   ---------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:55
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                                                       ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
76 |   impl_narrowing_div_primitive!(u32);
   |   ---------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:28
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                            ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
77 |   impl_narrowing_div_primitive!(u64);
   |   ---------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:55
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                                                       ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
77 |   impl_narrowing_div_primitive!(u64);
   |   ---------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:28
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                            ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
78 |   impl_narrowing_div_primitive!(u128);
   |   ----------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits/narrowing_div.rs:37:55
   |
30 | / macro_rules! impl_narrowing_div_primitive {
31 | |     ($D:ident) => {
32 | |         impl NarrowingDiv for $D {
33 | |             unsafe fn unchecked_narrowing_div_rem(self, n: Self::H) -> (Self::H, Self::H) {
...  |
37 | |                 ((self / n.widen()).cast(), (self % n.widen()).cast())
   | |                                                       ^^^^^
...  |
40 | |     };
41 | | }
   | |_- in this expansion of `impl_narrowing_div_primitive!`
...
78 |   impl_narrowing_div_primitive!(u128);
   |   ----------------------------------- in this macro invocation
   |
   = help: call with fully qualified syntax `HInt::widen(...)` to keep using the current method
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:26
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                          ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: a method with this name may be added to the standard library in the future
   --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/support/int_traits.rs:390:51
    |
374 | / macro_rules! impl_h_int {
375 | |     ($($H:ident $uH:ident $X:ident),*) => {
376 | |         $(
377 | |             impl HInt for $H {
...   |
390 | |                     self.widen().wrapping_mul(rhs.widen())
    | |                                                   ^^^^^
...   |
397 | |     };
398 | | }
    | |_- in this expansion of `impl_h_int!`
---

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/acosh.rs:15:15
   |
15 |     if (ux & !f64::SIGN_MASK) < 2_f64.to_bits() {
   |               ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
15 -     if (ux & !f64::SIGN_MASK) < 2_f64.to_bits() {
15 +     if (ux & !<f64 as float_traits::Float>::SIGN_MASK) < 2_f64.to_bits() {
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f64::<impl f64>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/acoshf.rs:15:15
   |
15 |     if (ux & !f32::SIGN_MASK) < 2_f32.to_bits() {
   |               ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
15 -     if (ux & !f32::SIGN_MASK) < 2_f32.to_bits() {
15 +     if (ux & !<f32 as float_traits::Float>::SIGN_MASK) < 2_f32.to_bits() {
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f32::<impl f32>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/cbrt.rs:49:29
   |
49 |         let ix: u64 = hx & !f64::SIGN_MASK;
   |                             ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
49 -         let ix: u64 = hx & !f64::SIGN_MASK;
49 +         let ix: u64 = hx & !<f64 as float_traits::Float>::SIGN_MASK;
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f64::<impl f64>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/fmaf16.rs:14:29
   |
14 |     let ix = x.to_bits() & !f16::SIGN_MASK;
   |                             ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
14 -     let ix = x.to_bits() & !f16::SIGN_MASK;
14 +     let ix = x.to_bits() & !<f16 as float_traits::Float>::SIGN_MASK;
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f16::<impl f16>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/fmaf16.rs:15:29
   |
15 |     let iy = y.to_bits() & !f16::SIGN_MASK;
   |                             ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
15 -     let iy = y.to_bits() & !f16::SIGN_MASK;
15 +     let iy = y.to_bits() & !<f16 as float_traits::Float>::SIGN_MASK;
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f16::<impl f16>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

warning: an associated constant with this name may be added to the standard library in the future
  --> library/compiler-builtins/compiler-builtins/src/math/../../../libm/src/math/fmaf16.rs:16:29
   |
16 |     let iz = z.to_bits() & !f16::SIGN_MASK;
   |                             ^^^^^^^^^^^^^^
   |
   = warning: once this associated item is added to the standard library, the ambiguity may cause an error or change in behavior!
   = note: for more information, see issue #48919 <https://github.com/rust-lang/rust/issues/48919>
help: use the fully qualified path to the associated const
   |
16 -     let iz = z.to_bits() & !f16::SIGN_MASK;
16 +     let iz = z.to_bits() & !<f16 as float_traits::Float>::SIGN_MASK;
   |
help: add `#![feature(float_masks)]` to the crate attributes to enable `f16::<impl f16>::SIGN_MASK`
  --> library/compiler-builtins/compiler-builtins/src/lib.rs:35:1
   |
35 + #![feature(float_masks)]
   |

@Apersoma

Apersoma commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor Author

I forgot no merge commits, goddamit. can someone help? I haven't really touched stuff since august for personal reasons but I completely forgot how to undo things that have already been committed. Also remember there being a lot of complications.
also dw about the error, that was from me removing the the future-compat error since it wasn't needed for {fN}::BITs, but it is now needed for {fN}::sIGN_MAsK, and possibly the other masks. (the s are lowercase since my s key is broken and I'm to lazy to find a capital one to copy in)

@tgross35

Copy link
Copy Markdown
Member

Can you do the instructions at #154065 (comment)? Usually that should resolve things.

If you get very stuck then let me know and I can push it for you.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) has-merge-commits PR has merge commits, merge with caution. relnotes Marks issues that should be documented in the release notes of the next release. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tracking Issue for fN::BITS