about summary refs log tree commit diff
path: root/library/core/src
AgeCommit message (Collapse)AuthorLines
2023-10-01Add track_caller attribute to Result::unwrap_or_elseravenclaw900-0/+1
2023-10-01Rollup merge of #116295 - asquared31415:mem_drop_docs, r=WaffleLapkinMatthias Krüger-1/+1
Fix `core::mem::drop` docs inaccuracy r? `@Nilstrieb`
2023-10-01Auto merge of #115670 - Zoxc:outline-panic-macro-1, r=Mark-Simulacrumbors-1/+56
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.
2023-09-30mem::drop docsasquared31415-1/+1
2023-09-29Rollup merge of #116241 - dtolnay:exclusivefwd, r=AmanieuMatthias Krüger-1/+45
Add Exclusive forwarding impls (FnOnce, FnMut, Generator) This is adapted from #104057.
2023-09-29Auto merge of #113797 - RalfJung:offset_from_docs, r=workingjubileebors-6/+40
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.
2023-09-29Auto merge of #116176 - FedericoStra:isqrt, r=dtolnaybors-0/+103
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.
2023-09-28Const stabilize mem::discriminantDavid Tolnay-3/+2
2023-09-28Add Exclusive forwarding impls (FnOnce, FnMut, Generator)David Tolnay-1/+45
2023-09-28Stabilize `const_maybe_uninit_assume_init_read`DaniPopes-1/+4
2023-09-28Rollup merge of #116221 - ArchUsr64:patch-1, r=ChrisDentonMatthias Krüger-1/+1
core/slice: Fix inconsistency between docs for `rotate_left` and `rotate_right` A minor fix for documentation inconsistency as shown below: ## Before: ![2023_09_28_0k3_Kleki](https://github.com/rust-lang/rust/assets/83179501/569a49d3-0d72-49ac-92a2-ef5e1d94130b) ## After: ![image](https://github.com/rust-lang/rust/assets/83179501/afd0c8d7-6fb7-4878-801b-b47c8fe23c7d) Docs url: https://doc.rust-lang.org/stable/core/primitive.slice.html#method.rotate_left
2023-09-28isqrt: `assume` that `isqrt` takes half as many bitsFederico Stra-0/+7
https://github.com/rust-lang/rust/issues/89273#issuecomment-970581089
2023-09-28fixup! isqrt: fix stabilityFederico Stra-6/+6
2023-09-28isqrt: cite source and rename variables to match original C codeFederico Stra-11/+16
2023-09-28isqrt: fix stabilityFederico Stra-6/+10
2023-09-28fixup! isqrt: initial implementationFederico Stra-4/+4
Fix C-ism and type inference.
2023-09-28Rollup merge of #115888 - RalfJung:assert_receiver_is_total_eq, r=dtolnayMatthias Krüger-3/+3
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`.
2023-09-28Rollup merge of #112959 - tbu-:pr_fmt_error_wording, r=dtolnayMatthias Krüger-2/+2
Change the wording in `std::fmt::Write::write_str` Refer to the error instead of expanding its name.
2023-09-28stabilize `Option::as_`(`mut_`)`slice`Andre Bogus-12/+2
2023-09-28changed 'rotate' to 'rotating'Anshul-1/+1
2023-09-27Fix "unresolved link to std::fmt::Error" David Tolnay-1/+1
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`
2023-09-26take more clarifying text from Gankra's PRRalf Jung-0/+14
original source: https://github.com/rust-lang/rust/pull/95851
2023-09-26isqrt: remove duplication by delegating to unsigned integersFederico Stra-40/+12
2023-09-26Auto merge of #116125 - RalfJung:const-param-ty-eq, r=compiler-errorsbors-1/+6
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`.
2023-09-25Auto merge of #116074 - fzs111:clarify-pin-docs, r=Mark-Simulacrumbors-1/+4
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.
2023-09-24ConstParamTy: require EqRalf Jung-1/+6
2023-09-24Auto merge of #116075 - Colonial-Dev:issue-116063-fix, r=Mark-Simulacrumbors-0/+16
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.
2023-09-23Add the `cfg_match!` macroCaio-0/+89
2023-09-23Clarify example in `Pin::new_unchecked` docsFZs-1/+4
2023-09-22Extend fix to wrapping_div, wrapping_div_euclid and wrapping_rem_euclidJames Haywood-0/+12
2023-09-22Resolve rust-lang/rust#116063James Haywood-0/+4
2023-09-22isqrt: initial implementationFederico Stra-0/+115
2023-09-22checked_ilog: remove duplication by delegating to unsigned integersFederico Stra-22/+3
2023-09-22checked_ilog: add comments explaining the correctness of the 128 bit ↵Federico Stra-0/+16
optimization
2023-09-22checked_ilog: set `n` and `r` directly avoiding arithmetic operationsFederico Stra-6/+4
2023-09-22checked_ilog: improve performanceFederico Stra-8/+8
2023-09-22Auto merge of #114776 - fee1-dead-contrib:enable-effects-in-libcore, r=oli-obkbors-4/+5
Enable effects for libcore ~~r? `@oli-obk~~` forgot you are on vacation, oops
2023-09-21Rollup merge of #116007 - m-ou-se:const-panic-fmt-panic-display, r=oli-obkGuillaume Gomez-1/+2
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``
2023-09-21avoid talking about inversesRalf Jung-10/+14
2023-09-21consistent wordingRalf Jung-4/+4
2023-09-21documentation tweaksRalf Jung-12/+12
2023-09-21offset_from: docs improvementsRalf Jung-4/+20
2023-09-21Rollup merge of #116008 - m-ou-se:boxmeup, r=oli-obkMatthias Krüger-2/+2
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`
2023-09-20Fix typo.Mara Bos-1/+1
2023-09-20Rename BoxMeUp to PanicPayload.Mara Bos-2/+2
2023-09-20Call panic_display directly in const_panic_fmt.Mara Bos-1/+2
2023-09-20fix rustdoc testsDeadbeef-1/+1
2023-09-20Enable effects for libcoreDeadbeef-5/+6
2023-09-20Auto merge of #114443 - tgross35:cstr-len, r=dtolnaybors-34/+72
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
2023-09-19explain mysterious addition in float minimum/maximumRalf Jung-0/+2