about summary refs log tree commit diff
path: root/library/core/src
AgeCommit message (Collapse)AuthorLines
2025-07-08Mention more APIs in `ParseIntError` docsPavel Grigorenko-2/+5
2025-07-07Remove support for dynamic allocasmejrs-1/+1
2025-07-07Rollup merge of #143130 - xizheyin:142966, r=ibraheemdev许杰友 Jieyou Xu (Joe)-0/+9
doc(std): clarify `NonZero<T>` usage limitation in doc comment Closes rust-lang/rust#142966 This PR clarifies `NonZero<T>` usage limitation in doc comment and fixes a typo. r? libs
2025-07-07doc(std): clarify `NonZero<T>` usage limitation in doc commentxizheyin-0/+9
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-07-07Rollup merge of #143552 - nagisa:makes-ceil-char-boundary-go-zoom, r=jhprattJacob Pratt-1/+1
lib: more eagerly return `self.len()` from `ceil_char_boundary` There is no reason to go through the complicated branch as it would always return `self.len()` in this case. Also helps debug code somewhat and I guess might make optimizations easier (although I haven't really a sample to demonstrate this.) ref. https://github.com/rust-lang/rust/issues/93743 Suggested by `@chrisduerr`
2025-07-07Rollup merge of #143359 - clubby789:fallback-2024-doc, r=ibraheemdevJacob Pratt-5/+3
Link to 2024 edition page for `!` fallback changes Closes rust-lang/rust#143207
2025-07-07Rollup merge of #143236 - nxsaken:mixed_integer_ops_unsigned_sub, r=ibraheemdevJacob Pratt-8/+8
Stabilize `mixed_integer_ops_unsigned_sub` Closes rust-lang/rust#126043.
2025-07-07lib: more eagerly return `self.len()` from `ceil_char_boundary`Simonas Kazlauskas-1/+1
There is no reason to go through the complicated branch as it would always return `self.len()` in this case. Also helps debug code somewhat and I guess might make optimizations easier (although I haven't really a sample to demonstrate this.) ref. #93743 Suggested by @chrisduerr
2025-07-06Simplify num formatting helpersYotam Ofek-22/+3
2025-07-06Rollup merge of #143477 - folkertdev:use-is-multiple-of, r=joshtriplettMatthias Krüger-12/+12
use `is_multiple_of` and `div_ceil` In tricky logic, these functions are much more informative than the manual implementations. They also catch subtle bugs: - the manual `is_multiple_of` often does not handle division by zero - manual `div_ceil` often does not consider overflow The transformation is free for `is_multiple_of` if the divisor is compile-time known to be non-zero. For `div_ceil` there is a small cost to considering overflow. Here is some assembly https://godbolt.org/z/5zP8KaE1d.
2025-07-05Rollup merge of #143445 - folkertdev:va-list-intrinsics, r=RalfJungBen Kimock-17/+24
move `va_copy`, `va_arg` and `va_end` to `core::intrinsics` some questions: - should these functions be `pub`? - is a separate module justified? r? `@RalfJung`
2025-07-05use `div_ceil` instead of manual logicFolkert de Vries-5/+5
2025-07-05use `is_multiple_of` instead of manual moduloFolkert de Vries-7/+7
2025-07-05move the `va_copy`, `va_arg` and `va_end` to `core::intrinsics`Folkert de Vries-17/+24
2025-07-04Rollup merge of #143040 - SciMind2460:patch-1, r=workingjubileeJubilee-1/+1
Add `const Rem`
2025-07-04Make Rem const for floatsKurt Heiritz (pseudo)-1/+1
2025-07-04Rollup merge of #143308 - compiler-errors:no-pointer-like, r=oli-obkMatthias Krüger-49/+2
Remove `PointerLike` trait r? oli-obk
2025-07-04clippy fix: indentationMarijn Schouten-46/+47
2025-07-04clippy fix: rely on autoderefMarijn Schouten-7/+7
2025-07-04Rollup merge of #143395 - Urgau:llvm-fallback-minimum-maximum, r=tgross35Jacob Pratt-2/+2
Always use the pure Rust fallback instead of `llvm.{maximum,minimum}` While https://github.com/llvm/llvm-project/pull/142170 was merged, it was reverted and next attempt (https://github.com/llvm/llvm-project/pull/140193) at fixing the LLVM implementation seems to have stall, so let's reverted back to pure Rust with the LLVM codegen. cc [#t-compiler/llvm > &#96;llvm.minimum&#96;/&#96;llvm.maximum&#96; issues @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/187780-t-compiler.2Fllvm/topic/.60llvm.2Eminimum.60.2F.60llvm.2Emaximum.60.20issues/near/527044712) Fixes https://github.com/rust-lang/rust/issues/141087 r? `@tgross35`
2025-07-04Rollup merge of #143378 - hkBst:clippy-fix-6, r=tgross35Jacob Pratt-4/+4
simplify receivers for some array method calls
2025-07-04Rollup merge of #143370 - hkBst:clippy-fix-4, r=tgross35Jacob Pratt-4/+0
remove redundant #[must_use] Fixes these clippy warnings: ``` warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` --> library/core/src/cmp.rs:1456:5 | 1456 | fn __chaining_lt(&self, other: &Rhs) -> ControlFlow<bool> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: either add some descriptive message or remove the attribute = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use = note: `-D clippy::double-must-use` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(clippy::double_must_use)]` warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` --> library/core/src/cmp.rs:1465:5 | 1465 | fn __chaining_le(&self, other: &Rhs) -> ControlFlow<bool> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: either add some descriptive message or remove the attribute = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` --> library/core/src/cmp.rs:1474:5 | 1474 | fn __chaining_gt(&self, other: &Rhs) -> ControlFlow<bool> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: either add some descriptive message or remove the attribute = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use warning: this function has a `#[must_use]` attribute with no message, but returns a type already marked as `#[must_use]` --> library/core/src/cmp.rs:1483:5 | 1483 | fn __chaining_ge(&self, other: &Rhs) -> ControlFlow<bool> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: either add some descriptive message or remove the attribute = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_must_use ```
2025-07-04Rollup merge of #143356 - hkBst:clippy-fix-2, r=scottmcmJacob Pratt-1/+1
use unsigned_abs instead of `abs` on signed int to silence clippy Use `unsigned_abs` instead of `abs` on signed int to silence clippy. Alternatively we could allow the lint, but if codegen is not affected, then this seems preferable.
2025-07-04Rollup merge of #142749 - LimpSquid:bool_to_result, r=scottmcmJacob Pratt-0/+67
Add methods for converting bool to `Result<(), E>` ## Tracking Issue https://github.com/rust-lang/rust/issues/142748 ## ACP https://github.com/rust-lang/libs-team/issues/606
2025-07-03Remove PointerLike traitMichael Goulet-49/+2
2025-07-03Always use the pure Rust fallback instead of `llvm.{maximum,minimum}`Urgau-2/+2
2025-07-03Use `slice_buffer_to_str` in `GenericRadix::fmt_int`Guillaume Gomez-18/+8
2025-07-03Implement `int_format_into` featureGuillaume Gomez-42/+286
2025-07-03stabilize `const_array_each_ref`Deadbeef-4/+4
2025-07-03stabilize `const_slice_reverse`Deadbeef-1/+2
2025-07-03simplify receivers for some array method callsMarijn Schouten-4/+4
2025-07-03remove redundant #[must_use]Marijn Schouten-4/+0
2025-07-03Rollup merge of #143329 - folkertdev:minicore-diagnostic-on-unimplemented, ↵Jana Dönszelmann-0/+3
r=jieyouxu minicore: use core's `diagnostic::on_unimplemented` messages Without these attributes, the error message is different. Keeping the diagnostics up-to-date seems related to https://github.com/rust-lang/rust/issues/137531. The modified test files are reported in https://github.com/rust-lang/rust/issues/143319 as failing for `--target=riscv64gc-unknown-linux-gnu`. Using `minicore` for them makes it easier to troubleshoot this sort of issue. r? ``@jieyouxu``
2025-07-03Rollup merge of #134006 - klensy:typos, r=nnethercoteJana Dönszelmann-16/+16
setup typos check in CI This allows to check typos in CI, currently for compiler only (to reduce commit size with fixes). With current setup, exclude list is quite short, so it worth trying? Also includes commits with actual typo fixes. MCP: https://github.com/rust-lang/compiler-team/issues/817 typos check currently turned for: * ./compiler * ./library * ./src/bootstrap * ./src/librustdoc After merging, PRs which enables checks for other crates (tools) can be implemented too. Found typos will **not break** other jobs immediately: (tests, building compiler for perf run). Job will be marked as red on completion in ~ 20 secs, so you will not forget to fix it whenever you want, before merging pr. Check typos: `python x.py test tidy --extra-checks=spellcheck` Apply typo fixes: `python x.py test tidy --extra-checks=spellcheck:fix` (in case if there only 1 suggestion of each typo) Current fail in this pr is expected and shows how typo errors emitted. Commit with error will be removed after r+.
2025-07-03Link to 2024 edition page for `!` fallback changesclubby789-5/+3
2025-07-03use unsigned_abs instead of `abs` on signed int to silence clippyMarijn Schouten-1/+1
2025-07-03wrapping shift: remove first bitmask and tableMarijn Schouten-42/+6
2025-07-03minicore: use core's `diagnostic::on_unimplemented` messagesFolkert de Vries-0/+3
2025-07-03setup CI and tidy to use typos for spellchecking and fix few typosklensy-16/+16
2025-07-03Rollup merge of #143327 - RalfJung:miri-type-validity-error, r=oli-obkMatthias Krüger-4/+11
miri: improve errors for type validity assertion failures Miri has pretty nice errors for type validity violations, printing which field in the type the problem occurs at and so on. However, we don't see these errors when using e.g. `mem::zeroed` as that uses `assert_zero_valid` to bail out before Miri can detect the UB. Similar to what we did with `@saethlin's` UB checks, I think we should disable such language UB checks in Miri so that we can get better error messages. If we go for this we should probably say this in the intrinsic docs as well so that people don't think they can rely on these intrinsics catching anything. Furthermore, I slightly changed `MaybeUninit::assume_init` so that the `.value` field does not show up in error messages any more. `@rust-lang/miri` what do you think?
2025-07-03Rollup merge of #143321 - hkBst:typo-1, r=compiler-errorsMatthias Krüger-1/+1
byte-addresses memory -> byte-addressed memory Small typo fix
2025-07-02Mention that casting to *const () is a way to roundtrip with from_raw_partsManish Goregaokar-0/+3
2025-07-02Rollup merge of #142237 - benschulz:unused-parens-fn, r=fee1-deadMatthias Krüger-1/+1
Detect more cases of unused_parens around types With this change, more unused parentheses around bounds and types nested within bounds are detected.
2025-07-02Rollup merge of #138340 - oli-obk:one-size-fits-all, r=m-ou-seMatthias Krüger-29/+5
Remove some unsized tuple impls now that we don't support unsizing tuples anymore Since https://github.com/rust-lang/rust/pull/137728 there is no sound way to create unsized tuples anymore. While we can't remove them from the language (tried here: https://github.com/rust-lang/rust/pull/138093) due to people using `PhantomData<(T, U)>` where `U: ?Sized` (they'd have to use `(PhantomData<T>, PhantomData<U>)` now), we can remove the impls from libcore I believe. r? libs I guess?
2025-07-02Rollup merge of #131923 - ranger-ross:impl-copy-hash-interrorkind, r=tgross35Matthias Krüger-1/+1
Derive `Copy` and `Hash` for `IntErrorKind` This PR derives `Copy` and `Hash` for `IntErrorKind` to make it easier to work with. (see #131826) I think an argument could be made to also derive `PartialOrd` + `Ord` as well given that other error kinds in the std like [`io::ErrorKind`](https://doc.rust-lang.org/src/std/io/error.rs.html#212-428) do this. Granted these seem much less useful for errors. Fixes https://github.com/rust-lang/rust/issues/131826
2025-07-02miri: improve errors for type validity assertion failuresRalf Jung-4/+11
2025-07-02Remove some unsized tuple impls now that we don't support unsizing tuples ↵Oli Scherer-29/+5
anymore
2025-07-02remove deprecated from core::ffi::c_strMarijn Schouten-17/+9
2025-07-02byte-addresses memory -> byte-addressed memoryMarijn Schouten-1/+1
2025-07-02Auto merge of #142974 - cuviper:stage0-bump, r=Mark-Simulacrumbors-18/+18
Update stage0 to 1.89.0-beta.1 - Update version placeholders - Update stage0 to 1.89.0-beta.1 - Update `STAGE0_MISSING_TARGETS` - Update `cfg(bootstrap)` r? `@Mark-Simulacrum` try-job: dist-i586-gnu-i586-i686-musl