| Age | Commit message (Collapse) | Author | Lines |
|
|
|
Fix `core::mem::drop` docs inaccuracy
r? `@Nilstrieb`
|
|
Partially outline code inside the panic! macro
This outlines code inside the panic! macro in some cases. This is split out from https://github.com/rust-lang/rust/pull/115562 to exclude changes to rustc.
|
|
|
|
Add Exclusive forwarding impls (FnOnce, FnMut, Generator)
This is adapted from #104057.
|
|
offset_from: docs improvements
This is the part of https://github.com/rust-lang/rust/pull/112837 that doesn't add a new function, just tweaks the existing docs.
|
|
Add "integer square root" method to integer primitive types
For every suffix `N` among `8`, `16`, `32`, `64`, `128` and `size`, this PR adds the methods
```rust
const fn uN::isqrt() -> uN;
const fn iN::isqrt() -> iN;
const fn iN::checked_isqrt() -> Option<iN>;
```
to compute the [integer square root](https://en.wikipedia.org/wiki/Integer_square_root), addressing issue #89273.
The implementation is based on the [base 2 digit-by-digit algorithm](https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Binary_numeral_system_(base_2)) on Wikipedia, which after some benchmarking has proved to be faster than both binary search and Heron's/Newton's method. I haven't had the time to understand and port [this code](http://atoms.alife.co.uk/sqrt/SquareRoot.java) based on lookup tables instead, but I'm not sure whether it's worth complicating such a function this much for relatively little benefit.
|
|
|
|
|
|
|
|
core/slice: Fix inconsistency between docs for `rotate_left` and `rotate_right`
A minor fix for documentation inconsistency as shown below:
## Before:

## After:

Docs url: https://doc.rust-lang.org/stable/core/primitive.slice.html#method.rotate_left
|
|
https://github.com/rust-lang/rust/issues/89273#issuecomment-970581089
|
|
|
|
|
|
|
|
Fix C-ism and type inference.
|
|
fix a comment about assert_receiver_is_total_eq
"a type implements #[deriving]" doesn't make any sense, so I assume they meant "implement `Eq`"? Also the attribute is called `derive`.
|
|
Change the wording in `std::fmt::Write::write_str`
Refer to the error instead of expanding its name.
|
|
|
|
|
|
error: unresolved link to `std::fmt::Error`
--> library/core/src/fmt/mod.rs:115:52
|
115 | /// This function will return an instance of [`std::fmt::Error`] on error.
|
|
= note: `-D rustdoc::broken-intra-doc-links` implied by `-D warnings`
|
|
original source: https://github.com/rust-lang/rust/pull/95851
|
|
|
|
ConstParamTy: require Eq as supertrait
As discussed with `@BoxyUwu` [on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/260443-project-const-generics/topic/.60ConstParamTy.60.20and.20.60Eq.60).
We want to say that valtree equality on const generic params agrees with `==`, but that only makes sense if `==` actually exists, hence we should have an appropriate bound. Valtree equality is an equivalence relation, so such a type can always be `Eq` and not just `PartialEq`.
|
|
Clarify example in `Pin::new_unchecked` docs
This example in the docs of `Pin::new_unchecked` puzzled me for a relatively long time. Now I understand that it comes down to the difference between dropping the `Pin` vs dropping the pinned value.
I have extended the explanation to highlight this difference. In my opinion it is clearer now, and I hope it helps others understand `Pin` better.
|
|
|
|
Document panics on unsigned wrapping_div/rem calls (#116063)
Add missing `# Panics` sections to the `uint_impl!` macro, documenting that the `wrapping_rem/div` calls will panic if passed zero.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
optimization
|
|
|
|
|
|
Enable effects for libcore
~~r? `@oli-obk~~`
forgot you are on vacation, oops
|
|
Call panic_display directly in const_panic_fmt.
`panic_str` just directly calls `panic_display`. The only reason `panic_str` exists, is for a lint to detect an expansion of `panic_2015!(expr)` (which expands to `panic_str`).
It is `panic_display` that is hooked by const-eval, which is the reason we call it here.
Part of https://github.com/rust-lang/rust/issues/116005
r? ``@oli-obk``
|
|
|
|
|
|
|
|
|
|
Rename BoxMeUp to PanicPayload.
"BoxMeUp" is not very clear. Let's rename that to a description of what it actually represents: a panic payload.
This PR also renames the structs that implement this trait to have more descriptive names.
Part of https://github.com/rust-lang/rust/issues/116005
r? `@oli-obk`
|
|
|
|
|
|
|
|
|
|
|
|
Implement `cstr_count_bytes`
This has not yet been approved via ACP, but it's simple enough to get started on.
- ACP: https://github.com/rust-lang/libs-team/issues/256
- Tracking issue: https://github.com/rust-lang/rust/issues/114441
`@rustbot` label +T-libs-api
|
|
|