Commit graph

298901 commits

Author SHA1 Message Date
Matthias Krüger
3af00f0889
Rollup merge of #140297 - shepmaster:cstr-lossy, r=joboet
Update example to use CStr::to_string_lossy
2025-04-27 11:54:58 +02:00
Matthias Krüger
766340b26e
Rollup merge of #139090 - yotamofek:pr/peekable-next-if-docs, r=tgross35
fix docs for `Peekable::next_if{_eq}`

These seem like copy-paste errors

(except `saves the value of` 👉 `retains` which just sounds better to me)
2025-04-27 11:54:58 +02:00
Matthias Krüger
2b0ce2cf92
Rollup merge of #139031 - DaniPopes:str-trim-closure, r=tgross35
Use char::is_whitespace directly in str::trim*

Use the method directly instead of wrapping it in a closure.
2025-04-27 11:54:57 +02:00
Matthias Krüger
bd3af53489
Rollup merge of #137714 - DiuDiu777:doc-fix, r=tgross35
Update safety documentation for `CString::from_ptr` and `str::from_boxed_utf8_unchecked`

## PR Description​
This PR addresses missing safety documentation for two APIs:

​**1. alloc::ffi::CStr::from_raw**​

- ​`Alias`: The pointer ​must not be aliased​ (accessed via other pointers) during the reconstructed CString's lifetime.
- `Owning`: Calling this function twice on the same pointer and creating two objects with overlapping lifetimes, introduces two alive owners of the same memory. This may result in a double-free.
- `Dangling`: The prior documentation required the pointer to originate from CString::into_raw, but this constraint is incomplete. A validly sourced pointer can also cause undefined behavior (UB) if it becomes dangling. A simple Poc for this situation:
```
use std::ffi::CString;
use std::os::raw::c_char;

fn create_dangling() -> *mut c_char {
    let local_ptr: *mut c_char = {
        let valid_data = CString::new("valid").unwrap();
        valid_data.into_raw()
    };

    unsafe {
        let _x = CString::from_raw(local_ptr);
    }
    local_ptr
}

fn main() {
    let dangling = create_dangling();
    unsafe {let _y = CString::from_raw(dangling);} // Cause UB!
}
```

​**2. alloc::str::from_boxed_utf8_unchecked**​

- `ValidStr`: Bytes must contain a ​valid UTF-8 sequence.
2025-04-27 11:54:57 +02:00
Matthias Krüger
9630242e5e
Rollup merge of #137439 - clarfonthey:c-str-module, r=tgross35
Stabilise `std::ffi::c_str`

This finished FCP in #112134 but never actually got a stabilisation PR. Since the FCP in #120048 recently passed to add the `os_str` module, it would be nice to also merge this too, to ensure that both get added in the next version.

Note: The added stability attributes which *somehow* were able to be omitted before (rustc bug?) were added based on the fact that they were added in 302551388b, which ended up in 1.85.0.

Closes: https://github.com/rust-lang/rust/issues/112134

r? libs-api
2025-04-27 11:54:56 +02:00
Yuki Okushi
d91ffb6da5
Merge pull request #2351 from rust-lang/rustc-pull 2025-04-27 18:53:00 +09:00
MarcoIeni
474466dc16
ci: clean more disk space in codebuild 2025-04-27 11:03:53 +02:00
LemonJ
0795b2d646 specify explicit safety guidance for from_utf8_unchecked 2025-04-27 16:56:31 +08:00
Ayush Singh
d40d424d43
CI: docker: host-x86_64: test-various: uefi_qemu_test: Update r-efi
- Update r-efi to 5.2.0

Signed-off-by: Ayush Singh <ayush@beagleboard.org>
2025-04-27 14:07:33 +05:30
yanglsh
5123ad5904 Fix zombie_processes FP inside closures 2025-04-27 16:28:06 +08:00
bors
8947e167e5 Auto merge of #140291 - GuillaumeGomez:doctest-2024-stdout, r=notriddle
Correctly display stdout and stderr in case a doctest is failing

Fixes https://github.com/rust-lang/rust/issues/140289.

Since the doctest is actually running itself, we need to handle the output directly inside it.

cc `@fmease`
r? `@notriddle`
2025-04-27 07:43:46 +00:00
John Kåre Alsaker
c33b4f870e Use search_for_cycle_permutation to look for variances_of 2025-04-27 09:38:18 +02:00
onur-ozkan
8290766bbe bypass linker configuration and cross target check on x check
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-04-27 07:14:04 +00:00
yanglsh
5d8fb77872 fix: unused_unit suggests wrongly when unit never type fallback 2025-04-27 15:02:49 +08:00
LemonJ
bfdd947bbd fix missing doc in CString::from_raw and str::from_boxed_utf8_unchecked 2025-04-27 12:49:37 +08:00
dswij
39a408664b
manual_div_ceil: fix suggestions when macro is involved (#14666)
here is my small fix

changelog: fix suggestion span to avoid showing macro name in
`.div_ceil()` suggestion

i changed this line
`let divisor_snippet = snippet_with_applicability(cx,
rhs.spansource_callsite(), "..", applicability);`
to this line
`let divisor_snippet = snippet_with_applicability(cx, rhs.span, "..",
applicability);`
to fix problem where this warning in macro expands like this
```rust
4  |         let _ = (x + 7) / 8;
   |                 ^^^^^^^^^^^ help: consider using `.div_ceil()`: `x.div_ceil(y!())`
```
[play it
yourself](https://play.rust-lang.org/?version=stable&mode=debug&edition=2024&gist=397aa8cd2ffffb24a286fbddbc75446c)

as you can see here it looks like `x.div_ceil(y!())` and contains macro
signature
so i fixed this problem, i will look closely if there any more problems
like this and fix them in order

**Related issue**

fixes
[rust-lang/rust-clippy#14665](https://github.com/rust-lang/rust-clippy/issues/14665)
2025-04-27 03:13:19 +00:00
bors
496145b9cc Auto merge of #139646 - lcnr:default-is-fully-concrete, r=BoxyUwU
check types of const param defaults

fixes #139643 by checking that the type of a const parameter default matches the type of the parameter as long as both types are fully concrete

r? `@BoxyUwU`
2025-04-27 01:59:43 +00:00
Pavel Grigorenko
df3dd876c9 Remove #[doc(hidden)] from AtomicPrimitive::AtomicInner 2025-04-27 02:18:08 +03:00
Christopher Durham
652998ba26 name ATOMIC_INIT without unstable alias 2025-04-27 02:18:08 +03:00
Christopher Durham
4d93f60568 use generic Atomic type where possible
in core/alloc/std only for now, and ignoring test files

Co-authored-by: Pavel Grigorenko <GrigorenkoPV@ya.ru>
2025-04-27 02:18:08 +03:00
Christopher Durham
96b4ed90c6 add generic Atomic<T> type alias 2025-04-27 02:09:07 +03:00
bors
43e62a789c Auto merge of #140288 - Zalathar:new-executor, r=jieyouxu
compiletest: Re-land using the new non-libtest executor by default

This PR re-lands #139998, which had the misfortune of triggering download-rustc in its CI jobs, so we didn't get proper test metrics for comparison with the old implementation. So that was PR was reverted in #140233, with the intention of re-landing it alongside a dummy compiler change to inhibit download-rustc.

---

Original PR description for #139998:
>The new executor was implemented in #139660, but required a manual opt-in. This PR activates the new executor by default, but leaves the old libtest-based executor in place (temporarily) to make reverting easier if something unexpectedly goes horribly wrong.
>
>Currently the new executor can be explicitly disabled by passing the `-N` flag to compiletest (e.g. `./x test ui -- -N`), but eventually that flag will be removed, alongside the removal of the libtest dependency. The flag is mostly there to make manual comparative testing easier if something does go wrong.
>
>As before, there *should* be no user-visible difference between the old executor and the new executor.

---
r? jieyouxu
2025-04-26 22:33:56 +00:00
Guillaume Gomez
aa69e3a0cb Fix bad handling of macros if there is already a main function 2025-04-27 00:12:32 +02:00
Michael Howell
9fed91fde0 docs: fix incorrect stability markers on std::{todo, matches}
This regression appeared in 916cfbcd3e.
The change is behaving as expected (a non-glob re-export uses the
stability marker on the `use` item, not the original one), but
this part of the standard library didn't follow it.
2025-04-26 14:56:17 -07:00
Eric Huss
1f108fe08a Update lint-docs to default to Rust 2024
This updates the lint-docs tool to default to the 2024 edition. The lint
docs are supposed to illustrate the code with the latest edition, and I
just forgot to update this in
https://github.com/rust-lang/rust/pull/133349.

Some docs needed to add the `edition` attribute since they were assuming
a particular edition, but were missing the explicit annotation.
2025-04-26 14:08:58 -07:00
Eric Huss
8608a3f637 lint-docs: Don't hard-code the valid editions
This removes the hard-coded list of edition support in the lint-docs
tool, and instead just assumes the edition attribute is something valid.
There isn't a real reason to have this, as rustc will error if given a
wrong number. This should be easier to maintain going forward.
2025-04-26 14:08:36 -07:00
Vadim Petrochenkov
7148908ace hygiene: Use IndexVec for syntax context decode cache 2025-04-26 23:32:49 +03:00
antoyo
72b6614bee
Merge pull request #654 from rust-lang/sync_from_rust_2025_04_26
Sync from rust 2025/04/26
2025-04-26 16:22:27 -04:00
DaniPopes
6f5698c368
Avoid re-interning in LateContext::get_def_path
The def path printer in `get_def_path` essentially calls
`Symbol::intern(&symbol.to_string())` for simple symbols in a path.
This accounts for ~30% of the runtime of get_def_path.

We can avoid this by simply appending the symbol directly when available.
2025-04-26 22:06:44 +02:00
Antoni Boucher
3893560e69 Update to nightly-2025-04-26 2025-04-26 16:02:17 -04:00
Vadim Petrochenkov
c7ad140473 hygiene: Misc cleanups
Inline some functions used once.
Use `impl Trait` more.
Tweak some comments.
2025-04-26 23:00:51 +03:00
Vadim Petrochenkov
2e8c53cf07 hygiene: Remove decode placeholders
They are no longer necessary after #139281
2025-04-26 23:00:51 +03:00
Antoni Boucher
612d7f5e03 Merge branch 'master' into sync_from_rust_2025_04_26 2025-04-26 15:58:19 -04:00
Chayim Refael Friedman
4ed9b12dd3
Merge pull request #19692 from vishruth-thimmaiah/remove_underscore_for_used_var
feat: adds an assist to remove underscores from used variables
2025-04-26 19:00:49 +00:00
Vishruth-Thimmaiah
9a00c99ba2
feat: adds an assist to remove underscores from used variables
adds an assist that suggests removing any underscore prefixes from used
variables.
2025-04-27 00:13:42 +05:30
Chayim Refael Friedman
8118676a08 Don't escape 'static
As it is a valid lifetime without escaping.

It does need to be escaped as a label, but we have no way to distinguish that.
2025-04-26 21:20:43 +03:00
Chayim Refael Friedman
2b701e00f1 Escape raw names in labels properly 2025-04-26 21:10:43 +03:00
Jake Goulding
9112c86f42 Update example to use CStr::to_string_lossy 2025-04-26 12:38:23 -04:00
bors
10fa3c449f Auto merge of #140336 - matthiaskrgr:rollup-kxo6ljw, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #140215 (transmutability: Support char, NonZeroXxx)
 - #140226 (Update wasm-component-ld to 0.5.13)
 - #140317 (Remove redundant check)
 - #140318 (Simply try to unpeel AsyncFnKindHelper goal in `emit_specialized_closure_kind_error`)
 - #140320 (replace `GenericArg` with `Term` where applicable)
 - #140325 (Grammar fixes for BufRead::has_data_left docs)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-26 15:59:32 +00:00
Vadim Petrochenkov
86969dbe77 session: Cleanup CanonicalizedPath::new
It wants an owned path, so pass an owned path
2025-04-26 18:42:15 +03:00
dswij
58cfdb72a8
fix: equatable_if_let suggests wrongly when involving reference (#14504)
Closes #8710

changelog: [`equatable_if_let`] fix wrong suggestions when involving
reference
2025-04-26 14:52:32 +00:00
Matthias Krüger
153eeb0e24
Rollup merge of #140325 - ethanwu10:ethanwu10/grammar-fixes-for-bufread-has-data-left-docs, r=jhpratt
Grammar fixes for BufRead::has_data_left docs

Fix some grammar in the documentation for `BufRead::has_data_left`
2025-04-26 16:12:34 +02:00
Matthias Krüger
3c322bc1cc
Rollup merge of #140320 - lcnr:wf-use-term, r=compiler-errors
replace `GenericArg` with `Term` where applicable

r? types
2025-04-26 16:12:33 +02:00
Matthias Krüger
443358d25d
Rollup merge of #140318 - compiler-errors:specialized-async-fn-kind-err, r=fee1-dead
Simply try to unpeel AsyncFnKindHelper goal in `emit_specialized_closure_kind_error`

Tweak the handling of `AsyncFnKindHelper` goals in `emit_specialized_closure_kind_error` to not be so special-casey, and just try to unpeel one or two layers of obligation causes to get to their underlying `AsyncFn*` goal.

Fixes https://github.com/rust-lang/rust/issues/140292
2025-04-26 16:12:33 +02:00
Matthias Krüger
fbf68324fc
Rollup merge of #140317 - mejrs:check_on_uni, r=compiler-errors
Remove redundant check

We still check for `rustc_on_unimplemented` on implementations, but this functionality was removed in https://github.com/rust-lang/rust/pull/139091, since then it always returns `Ok` when called with a non-trait defid.

b4c8b0c3f0/compiler/rustc_trait_selection/src/error_reporting/traits/on_unimplemented.rs (L557-L564)
2025-04-26 16:12:32 +02:00
Matthias Krüger
98492a13fe
Rollup merge of #140226 - alexcrichton:update-wasm-component-ld, r=jieyouxu
Update wasm-component-ld to 0.5.13

This commit updates the vendored `wasm-component-ld` binary to 0.5.13 which includes some various bug fixes and new feature updates for upcoming component model features coming down the pike. Not expected to break any existing workflows, just a normal update.
2025-04-26 16:12:32 +02:00
Matthias Krüger
cbf5d72af2
Rollup merge of #140215 - joshlf:transmutability-char-nonzero, r=jswrenn
transmutability: Support char, NonZeroXxx

Note that `NonZero` support is not wired up, as the author encountered
bugs while attempting this. A future commit will wire up `NonZero`
support.

r? ````@jswrenn````
2025-04-26 16:12:31 +02:00
Tshepang Mbambo
89bb181106
Merge pull request #2356 from rust-lang/tshepang-patch-2
replace command that does not work
2025-04-26 15:37:24 +02:00
Tshepang Mbambo
9c4d568cfc
replace command that does not work 2025-04-26 15:34:43 +02:00
Tshepang Mbambo
e40391ae0b
Merge pull request #2355 from rust-lang/tshepang-patch-1
copy-paste ease
2025-04-26 15:19:08 +02:00