-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Reduces Code Repetitions like !n >> amt
#59101
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
r? @pnkfelix (rust_highfive has picked a reviewer for you, use r? to override) |
!n >> amt
r? @oli-obk |
@@ -115,14 +116,14 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { | |||
ty::Int(ity) => { | |||
// FIXME(49937): refactor these bit manipulations into interpret. | |||
let size = Integer::from_attr(&tcx, SignedInt(ity)).size(); | |||
let max = !0u128 >> (128 - size.bits()); | |||
let max = mask(size); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this could be truncate(u128::max_value(), size)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your review. Then, should I replace mask
with truncate
and remove the definition of mask
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, I think that's for the best, unless you see a lot of other sites in the compiler where using mask
would make sense.
@bors r+ Thanks! |
📌 Commit 18b40c6 has been approved by |
@bors rollup |
…=oli-obk Reduces Code Repetitions like `!n >> amt` Fixes rust-lang#49937 . This PR contains defining a function which operates bit inversion and reducing bit operation like `!0u128 >> (128 - size.bits())`.
…=oli-obk Reduces Code Repetitions like `!n >> amt` Fixes rust-lang#49937 . This PR contains defining a function which operates bit inversion and reducing bit operation like `!0u128 >> (128 - size.bits())`.
…=oli-obk Reduces Code Repetitions like `!n >> amt` Fixes rust-lang#49937 . This PR contains defining a function which operates bit inversion and reducing bit operation like `!0u128 >> (128 - size.bits())`.
Rollup of 16 pull requests Successful merges: - #58829 (librustc_interface: Update scoped-tls to 1.0) - #58876 (Parse lifetimes that start with a number and give specific error) - #58908 (Update rand version) - #58998 (Fix documentation of from_ne_bytes and from_le_bytes) - #59056 (Use lifetime contravariance to elide more lifetimes in core+alloc+std) - #59057 (Standardize `Range*` documentation) - #59080 (Fix incorrect links in librustc_codegen_llvm documentation) - #59083 (Fix #54822 and associated faulty tests) - #59093 (Remove precompute_in_scope_traits_hashes) - #59101 (Reduces Code Repetitions like `!n >> amt`) - #59121 (impl FromIterator for Result: Use assert_eq! instead of assert!) - #59124 (Replace assert with assert_eq) - #59129 (Visit impl Trait for dead_code lint) - #59130 (Note that NonNull does not launder shared references for mutation) - #59132 (ignore higher-ranked object bound conditions created by WF) - #59138 (Simplify Iterator::{min, max}) Failed merges: r? @ghost
Thanks! |
@@ -115,14 +116,14 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> { | |||
ty::Int(ity) => { | |||
// FIXME(49937): refactor these bit manipulations into interpret. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These FIXME
s look resolved now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for reporting. I forgot to remove this comment out.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think let bias = 1u128 << (size.bits() - 1);
is not resolved.
Fixes #49937 .
This PR contains defining a function which operates bit inversion and reducing bit operation like
!0u128 >> (128 - size.bits())
.