Commit Graph

261885 Commits

Author SHA1 Message Date
Matthias Krüger
130d15e23e
Rollup merge of #126152 - RalfJung:size_of_val_raw, r=saethlin
size_of_val_raw: for length 0 this is safe to call

For motivation, see https://github.com/rust-lang/unsafe-code-guidelines/issues/465, specifically around [here](https://github.com/rust-lang/unsafe-code-guidelines/issues/465#issuecomment-2136401114).
Cc `@rust-lang/opsem`
2024-07-24 18:00:35 +02:00
Oli Scherer
fdff100545 Add regression test 2024-07-24 15:40:25 +00:00
Veera
4d5ac84285 Remove Unnecessary .as_str() Conversions 2024-07-24 11:06:23 -04:00
Alex Macleod
6d28e1a954 Lint casts to u128 in cast_lossless 2024-07-24 14:32:41 +00:00
Folkert
4b7a87de10
use an allow list for allowed asm options in naked functions 2024-07-24 15:27:56 +02:00
Folkert
c31ff97bf1
centralize turning asm flags into human readable names 2024-07-24 15:27:18 +02:00
rik86189
dfb3fb32ce Improved clarity of documentation for std::fs::create_dir_all 2024-07-24 14:23:29 +02:00
joboet
a4dd0d6899
std: use duplicate thread local state in tests
With rust-lang/miri#3739 merged, the deduplication hack is no longer necessary.
2024-07-24 14:13:57 +02:00
bors
2ccafed862 Auto merge of #126024 - oli-obk:candidate_key_caching_is_unsound_yay, r=lcnr
Do not use global caches if opaque types can be defined

fixes #119272

r? `@lcnr`

This is certainly a crude way to make the cache sound wrt opaque types, but since perf lets us get away with this, let's do it in the old solver and let the new solver fix this correctly once and for all.

cc https://github.com/rust-lang/rust/pull/122192#issuecomment-2149252655
2024-07-24 11:59:10 +00:00
Nicholas Nethercote
ac26b883bf Improve spans on evaluated cfg_attrs.
When converting something like `#![cfg_attr(cond, attr)]` into
`#![attr]`, we currently duplicate the `#` token and the `!` token. But
weirdly, there is also this comment:

// We don't really have a good span to use for the synthesized `[]`
// in `#[attr]`, so just use the span of the `#` token.

Maybe that comment used to be true? But now it is false: we can
duplicate the existing delimiters (and their spans and spacing), much
like we do for the `#` and `!`.

This commit does that, thus removing the incorrect comment, and
improving the spans on `Group`s in a few proc-macro tests.
2024-07-24 21:03:52 +10:00
Oli Scherer
61b5e11c47 Don't use global caches if opaques can be defined 2024-07-24 10:45:21 +00:00
bors
16953cef82 Auto merge of #12830 - blyxyas:more-controlflow, r=y21,xFredNet
Use ControlFlow in more places

Now, instead of manually using variables in visitors to signify that a visit is "done" and that the visitor should stop traversing. We use the trait type "Result" to signify this (in relevant places).

I'll schedule a perf run, I don't think it will be much of a difference, but every bit of performance is welcomed :)

changelog: Improve performance, less memory use in visitors

Fixes #12829
r? `@y21`
2024-07-24 09:48:19 +00:00
bors
6d674685ae Auto merge of #127524 - oli-obk:feed_item_attrs2, r=petrochenkov
Make ast `MutVisitor` have the same method name and style as `Visitor`

It doesn't map 100% because some `MutVisitor` methods can filter or even expand to multiple items, but consistency seems nicer.

tracking issue: https://github.com/rust-lang/rust/issues/127615
2024-07-24 09:36:57 +00:00
bors
d24930ceb4 Auto merge of #127524 - oli-obk:feed_item_attrs2, r=petrochenkov
Make ast `MutVisitor` have the same method name and style as `Visitor`

It doesn't map 100% because some `MutVisitor` methods can filter or even expand to multiple items, but consistency seems nicer.

tracking issue: https://github.com/rust-lang/rust/issues/127615
2024-07-24 09:36:57 +00:00
Chris Denton
7cd25b1b11
Forbid unsafe_op_in_unsafe_fn in sys/pal/windows 2024-07-24 08:28:47 +00:00
Chris Denton
9b87fbc3e5
Import core::ffi::c_void in more places 2024-07-24 08:27:22 +00:00
bors
08a9ca7c18 Auto merge of #128127 - tmandry:you-wouldnt-bump-a-fuchsia, r=Kobzol
Bump Fuchsia

This includes changes to unblock merging #126024.

try-job: x86_64-fuchsia
2024-07-24 07:12:24 +00:00
Nadrieril
940769a79b Improve "covered_by_many" error 2024-07-24 08:46:52 +02:00
Nadrieril
64ac2b8082 Explain why a given pattern is considered unreachable 2024-07-24 08:02:55 +02:00
Nadrieril
c4d6a4a7e4 Add some tests 2024-07-24 08:02:55 +02:00
Nadrieril
bab8ede761 Move rustc-specific entrypoint to the rustc module 2024-07-24 08:02:55 +02:00
bors
f4831e6317 Auto merge of #128128 - matthiaskrgr:rollup-jz6w0ck, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #125962 (Update tracking issue for `const_binary_heap_new_in`)
 - #126770 (Add elem_offset and related methods)
 - #127481 (Remove generic lifetime parameter of trait `Pattern`)
 - #128043 (Docs for core::primitive: mention that "core" can be shadowed, too, so we should write "::core")
 - #128092 (Remove wrapper functions from c.rs)
 - #128100 (Allow to pass a full path for `run-make` tests)
 - #128106 (Fix return type of FileAttr methods on AIX target)
 - #128108 (ensure std step before preparing sysroot)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-07-24 04:48:02 +00:00
B I Mohammed Abbas
0ea5694c7c Add chroot unsupported implementation for VxWorks 2024-07-24 09:59:04 +05:30
Tyler Mandry
2fd41dfff9 Bump Fuchsia
This includes changes to unblock merging #126024.
2024-07-23 20:30:24 -07:00
Matthias Krüger
1fe9726c95
Rollup merge of #128108 - onur-ozkan:ensure-std-for-precompiled-rustc, r=Kobzol
ensure std step before preparing sysroot

When using download-rustc, any stage other than 0 or 1 (e.g., cargo +stage2 build/doc) will fail to find std while compiling on simple rust sources. Ensuring the std step fixes this issue.

r? Kobzol
2024-07-24 05:05:37 +02:00
Matthias Krüger
888422880c
Rollup merge of #128106 - hallfox:patch-1, r=ChrisDenton
Fix return type of FileAttr methods on AIX target

At some point it seems `SystemTime::new` changed from returning `SystemTime` to `io::Result<SystemTime>`. This seems to have been addressed on other platforms, but was never changed for AIX.

This was caught by running
```
python3 x.py build --host x86_64-unknown-linux-gnu --target powerpc64-ibm-aix
```
2024-07-24 05:05:36 +02:00
Matthias Krüger
20e86c9f2d
Rollup merge of #128100 - GuillaumeGomez:run-make-path, r=Kobzol,jieyouxu
Allow to pass a full path for `run-make` tests

It's common (at least for me) to pass a full path to a `run-make` test (including the `rmake.rs` file) and to see that it isn't found, which is a bit frustrating.

With these changes, we can now optionally pass the `rmake.rs` (or even `Makefile`) at the end of the path.

cc ```@jieyouxu```
r? ```@Kobzol```
2024-07-24 05:05:35 +02:00
Matthias Krüger
ee77dda778
Rollup merge of #128092 - ChrisDenton:wrappers, r=workingjubilee
Remove wrapper functions from c.rs

I'd like for the windows `c.rs` just to contain the basic platform definitions and not anything higher level unless absolutely necessary. So this removes some wrapper functions that weren't really necessary in any case. The functions are only used in a few places which themselves are relatively thin wrappers. The "interesting" bit is that we had an `AlertableIoFn` that abstracted over `ReadFileEx` and `WriteFileEx`. I've replaced this with a closure.

Also I removed an `#[allow(unsafe_op_in_unsafe_fn)]` while I was moving things around.
2024-07-24 05:05:34 +02:00
Matthias Krüger
e56e886796
Rollup merge of #128043 - safinaskar:primitive, r=workingjubilee
Docs for core::primitive: mention that "core" can be shadowed, too, so we should write "::core"

``@rustbot`` label +A-docs
2024-07-24 05:05:33 +02:00
Matthias Krüger
6f696257cb
Rollup merge of #127481 - a1phyr:pattern_gat, r=Amanieu
Remove generic lifetime parameter of trait `Pattern`

Use a GAT for `Searcher` associated type because this trait is always implemented for every lifetime anyway.

cc #27721
2024-07-24 05:05:32 +02:00
Matthias Krüger
d6080a1e2f
Rollup merge of #126770 - wr7:master, r=Amanieu
Add elem_offset and related methods

Implementation of #126769
2024-07-24 05:05:31 +02:00
Matthias Krüger
0666eee2a1
Rollup merge of #125962 - Coekjan:const-binary-heap, r=Amanieu
Update tracking issue for `const_binary_heap_new_in`

This PR updates the tracking issue of `const_binary_heap_new_in` feature:
- Old issue: #112353
- New issue: #125961
2024-07-24 05:05:30 +02:00
bors
42103d69b7 Auto merge of #128123 - ehuss:tidy-rustbook-submodule, r=Mark-Simulacrum
Fix tidy check if book submodule is not checked out

This fixes tidy in a checkout without submodules. https://github.com/rust-lang/rust/pull/127786 added a new cargo workspace, and the corresponding checks in tidy. There is code in tidy to skip those checks if the submodule is checked out, but that code assumed the root of the workspace was also the root of the submodule. With `rustbook`, the root is `src/tools/rustbook`, but the submodules it needs are in the `src/doc` directory.

The solution here is to explicitly list which submodules are needed instead of assuming the root is also the submodule.
2024-07-24 02:24:04 +00:00
Eric Huss
e8ef886962 Fix tidy check if book submodule is not checked out 2024-07-23 17:44:40 -07:00
bors
959477ea36 Auto merge of #13153 - Alexendoo:bind-instead-of-map-struct, r=Manishearth
Make `BindInsteadOfMap` a struct

Makes it codegen once instead of three times

changelog: none
2024-07-24 00:44:30 +00:00
bors
f751af4d78 Auto merge of #127153 - NobodyXu:pipe, r=ChrisDenton
Initial implementation of anonymous_pipe API

ACP completed in rust-lang/libs-team#375
Tracking issue: #127154

try-job: x86_64-msvc
try-job: i686-mingw
2024-07-24 00:03:14 +00:00
Michael Goulet
b82f878f03 Gate AsyncFn* under async_closure feature 2024-07-23 19:56:06 -04:00
blyxyas
b21a91ae3a Replace local variables signifying "done" or "loop break", use ControlFlow #12830 2024-07-24 01:40:58 +02:00
wr7
557210c5c7 Add elem_offset and related methods 2024-07-23 18:22:29 -05:00
bors
615284aa5a Auto merge of #13151 - Alexendoo:nextest, r=Jarcho
Fix running compile-test under cargo nextest

`ui_test` itself has `cargo nextest` support which we now use - https://github.com/oli-obk/ui_test/pull/161

It prints `ui_test` as its test name whereas we printed `compile_test`, this ended up being treated as a test name filter causing all the tests to be filtered out

changelog: none
2024-07-23 22:30:02 +00:00
bors
760a278a1f Auto merge of #13154 - blyxyas:focus-on-contribs, r=blyxyas
Temporarily remove myself from reviewer rotation

I'm going to focus on the project goal and my own contributions, this + medical stuff leaves me not enough time to review.

I'll still review any performance related PR, and you can still request from me a benchmark for a PR, and will finish the PRs that I'm still assign to.

changelog: none
2024-07-23 22:21:39 +00:00
blyxyas
5ea7044d72 Temporarily remove myself from reviewer rotation 2024-07-23 23:52:26 +02:00
bors
e91d82eabb Auto merge of #13143 - Alexendoo:transmute-ptr-to-ptr-suggestions, r=y21
Suggest `.cast`/`.cast_const`/`.cast_mut` in `transmute_ptr_as_ptr`

Essentially pre-applies `ptr_as_ptr` - https://github.com/rust-lang/rust-clippy/issues/6372#issuecomment-1830438907

changelog: none
2024-07-23 21:48:07 +00:00
Alex Macleod
493498b65f Make BindInsteadOfMap a struct
Makes it codegen once instead of three times
2024-07-23 20:57:35 +00:00
Askar Safin
b8f7ed2394
library/core/src/primitive.rs: small doc fix
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2024-07-23 23:11:26 +03:00
bors
8bfcae730a Auto merge of #128109 - matthiaskrgr:rollup-gc7kopi, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #125886 (Migrate run make issue 15460)
 - #126898 (Migrate `run-make/link-framework` to `rmake.rs`)
 - #126994 (Support lists and stylings in more places for `rustc --explain`)
 - #127990 (Migrate `lto-linkage-used-attr`, `no-duplicate-libs` and `pgo-gen-no-imp-symbols` `run-make` tests to rmake)
 - #128060 (Fix inclusion of `wasm-component-ld` in dist artifacts)
 - #128082 (Note closure captures when reporting cast to fn ptr failed)
 - #128098 (make it possible to disable download-rustc if it's incompatible)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-07-23 19:45:09 +00:00
donno2048
23e346e706 make tidy fast without compromising case alternation 2024-07-23 19:38:47 +00:00
Oneirical
421619da48 rewrite extern-multiple-copies2 to rmake 2024-07-23 15:08:40 -04:00
Guillaume Gomez
0728c155a3 Allow to pass a full path for run-make tests 2024-07-23 20:14:33 +02:00
onur-ozkan
2f55cedf50 ensure std step before preparing sysroot
When using download-rustc, any stage other than 0 or 1 (e.g., cargo +stage2 build/doc) will
fail to find std while compiling on simple rust sources. Ensuring the rustc step fixes
this issue.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-07-23 20:51:35 +03:00