Conversation
|
r? @jackh726 (rustbot has picked a reviewer for you, use r? to override) |
|
@bors r+ rollup |
Document BinOp::is_checkable
| impl BinOp { | ||
| /// The checkable operators are those whose overflow checking behavior is controlled by | ||
| /// -Coverflow-checks option. The remaining operators have either no overflow conditions (e.g., | ||
| /// BitAnd, BitOr, BitXor) or are always checked for overflow (e.g., Div, Rem). |
There was a problem hiding this comment.
UnOp does not have is_checkable. Given these docs, that seems surprising? Neg behaves like the 'checkable' bin ops, doesn't it?
There was a problem hiding this comment.
UnOp::Neg would be checkable. What do you find surprising about that in context of this documentation?
There was a problem hiding this comment.
The surprising part is that there is no such function on UnOp -- that indicates some asymmetry in how UnOp vs BinOp are handled.
Should we also have this on UnOp, and then replace the existing direct matching on Neg that I assume is happening with an is_checkable call?
There was a problem hiding this comment.
Negation has a dedicated assertion kind for it, so there is no need for UnOp::is_checkable (see git grep -C20 is_checkable).
There was a problem hiding this comment.
What does this have to do with assertion kinds? I was thinking of MIR building.
Though with #108282, MIR building does not use this function any more anyway. Then it's only the codegen backends and yeah there it has to do with assertion kinds.
…iaskrgr Rollup of 9 pull requests Successful merges: - rust-lang#108419 (Stabilize `atomic_as_ptr`) - rust-lang#108507 (use `as_ptr` to determine the address of atomics) - rust-lang#108607 (Don't use fd-lock on Solaris in bootstrap) - rust-lang#108830 (Treat projections with infer as placeholder during fast reject in new solver) - rust-lang#109055 (create `config::tests::detect_src_and_out` test for bootstrap) - rust-lang#109058 (Document BinOp::is_checkable) - rust-lang#109081 (simd-wide-sum test: adapt for LLVM 17 codegen change) - rust-lang#109083 (Update books) - rust-lang#109088 (Gracefully handle `#[target_feature]` on statics) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
No description provided.