about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2024-07-24Rollup merge of #128122 - tgross35:missing-fragment-specifier-unconditional, ↵Matthias Krüger-1/+116
r=petrochenkov Mark `missing_fragment_specifier` as `FutureReleaseErrorReportInDeps` We are moving toward forbidding `missing_fragment_specifier` either in edition 2024 or unconditionally. Make a first step toward this by ensuring crates that rely on the old behavior are reported when used as dependencies. Tracking issue: <https://github.com/rust-lang/rust/issues/128143>
2024-07-24Rollup merge of #128046 - GrigorenkoPV:90435, r=tgross35Matthias Krüger-15/+11
Fix some `#[cfg_attr(not(doc), repr(..))]` Now that #90435 seems to have been resolved.
2024-07-24Rollup merge of #127717 - gurry:127441-stray-impl-sugg, r=compiler-errorsMatthias Krüger-29/+295
Fix malformed suggestion for repeated maybe unsized bounds Fixes #127441 Now when we encounter something like `foo(a : impl ?Sized + ?Sized)`, instead of suggesting removal of both bounds and leaving `foo(a: impl )` behind, we suggest changing the first bound to `Sized` and removing the second bound, resulting in `foo(a: impl Sized)`. Although the issue was reported for impl trait types, it also occurred with regular param bounds. So if we encounter `foo<T: ?Sized + ?Sized>(a: T)` we now detect that all the bounds are `?Sized` and therefore emit the suggestion to remove the entire predicate `: ?Sized + ?Sized` resulting in `foo<T>(a: T)`. Lastly, if we encounter a situation where some of the bounds are something other than `?Sized`, then we emit separate removal suggestions for each `?Sized` bound. E.g. if we see `foo(a: impl ?Sized + Bar + ?Sized)` or `foo<T: ?Sized + Bar + ?Sized>(a: T)` we emit suggestions such that the user will be left with `foo(a : impl Bar)` or `foo<T: Bar>(a: T)` respectively.
2024-07-24Rollup merge of #126548 - rik86189:issue-88264-fix, r=tgross35Matthias Krüger-7/+2
Improved clarity of documentation for std::fs::create_dir_all Closes #88264
2024-07-24Rollup merge of #126042 - davidzeng0:master, r=AmanieuMatthias Krüger-0/+61
Implement `unsigned_signed_diff` <!-- If this PR is related to an unstable feature or an otherwise tracked effort, please link to the relevant tracking issue here. If you don't know of a related tracking issue or there are none, feel free to ignore this. This PR will get automatically assigned to a reviewer. In case you would like a specific user to review your work, you can assign it to them by using r​? <reviewer name> --> Implements https://github.com/rust-lang/rust/issues/126041
2024-07-24Rollup merge of #122192 - oli-obk:type_of_opaque_for_const_checks, r=lcnrMatthias Krüger-263/+245
Do not try to reveal hidden types when trying to prove auto-traits in the defining scope fixes #99793 this avoids the cycle error by just causing a selection error, which is not fatal. We pessimistically assume that freeze does not hold, which is always a safe assumption.
2024-07-24Mark `missing_fragment_specifier` as `FutureReleaseErrorReportInDeps`Trevor Gross-1/+116
We are moving toward forbidding `missing_fragment_specifier` either in edition 2024 or unconditionally. Make a first step toward this by ensuring crates that rely on the old behavior are reported when used as dependencies. Tracking issue: <https://github.com/rust-lang/rust/issues/128143>
2024-07-24Auto merge of #128142 - matthiaskrgr:rollup-rep8ofv, r=matthiaskrgrbors-435/+528
Rollup of 9 pull requests Successful merges: - #126152 (size_of_val_raw: for length 0 this is safe to call) - #127252 (Add edge-case examples to `{count,leading,trailing}_{ones,zeros}` methods) - #127374 (Tweak "wrong # of generics" suggestions) - #127457 (Make tidy fast without compromising case alternation) - #127480 (Fix build failure on vxworks #127084 ) - #127733 (Replace some `mem::forget`'s with `ManuallyDrop`) - #128120 (Gate `AsyncFn*` under `async_closure` feature) - #128131 (Import `c_void` rather than using the full path) - #128133 (Improve spans on evaluated `cfg_attr`s.) r? `@ghost` `@rustbot` modify labels: rollup
2024-07-24Do not assemble candidates for auto traits of opaque types in their defining ↵Oli Scherer-54/+93
scope
2024-07-24Add regression testsOli Scherer-0/+88
2024-07-24Do not try to reveal hidden types when trying to prove Freeze in the ↵Oli Scherer-261/+67
defining scope
2024-07-24Rollup merge of #128133 - nnethercote:fix-cfg_attr-spans, r=petrochenkovMatthias Krüger-41/+41
Improve spans on evaluated `cfg_attr`s. 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. `@petrochenkov`
2024-07-24Rollup merge of #128131 - ChrisDenton:stuff, r=workingjubileeMatthias Krüger-32/+35
Import `c_void` rather than using the full path Follow up to #128092. As requested, this imports `c_void` in more places. I also fixed up some imports to use `core` for core types instead of `crate`. While that is not strictly necessary, I think ideally things in `sys/pal` should only depend on itself or core so that the code is less spaghetti. We're far away from that ideal at the moment but I can at least try to slowly move in that direction. Also this forbids `unsafe_op_in_unsafe_fn` for library/std/src/sys/pal/windows by fixing up the remaining unsafe bits that are just punting their unsafe requirements onto the caller of the `unsafe` function (or definition macro). <!-- r? workingjubilee -->
2024-07-24Rollup merge of #128120 - compiler-errors:async-fn-name, r=oli-obkMatthias Krüger-12/+43
Gate `AsyncFn*` under `async_closure` feature T-lang has not come to a consensus on the naming of async closure callable bounds, and as part of allowing the async closures RFC merge, we agreed to place `AsyncFn` under the same gate as `async Fn` so that these syntaxes can be evaluated in parallel. See https://github.com/rust-lang/rfcs/pull/3668#issuecomment-2246435537 r? oli-obk
2024-07-24Rollup merge of #127733 - GrigorenkoPV:don't-forget, r=AmanieuMatthias Krüger-132/+88
Replace some `mem::forget`'s with `ManuallyDrop` > but I would like to see a larger effort to replace all uses of `mem::forget`. _Originally posted by `@saethlin` in https://github.com/rust-lang/rust/issues/127584#issuecomment-2226087767_ So, r? `@saethlin` Sorry, I have finished writing all of this before I got your response.
2024-07-24Rollup merge of #127480 - biabbas:vxworks, r=workingjubileeMatthias Krüger-5/+35
Fix build failure on vxworks #127084 PR to address issue #127084 . 1. Skip `reset_segpipe` for vxworks 2. Return unimplemented error for vxworks from settimes and lchown 3. Temporarily skip dirfd for vxworks 4. Add allow unused unsafe on read_at and write_at functions in unix/fs.rs 5. Using cfg disable ON_BROKEN_PIPE_FLAG_USED and on_broken_pipe_flag_used() for vxworks 6. Remove old crate::syscommon::thread::min_stack() reference from process_vxworks.rs and update to set stack size of rtpthread Thank you.
2024-07-24Rollup merge of #127457 - donno2048:master, r=albertlarsan68Matthias Krüger-31/+35
Make tidy fast without compromising case alternation Fixes tidy speed issue but still catches case-alternation, enabled for other `style.rs` files, and also detects test files better. r? `@albertlarsan68` `@Nilstrieb`
2024-07-24Rollup merge of #127374 - estebank:wrong-generic-args, r=oli-obkMatthias Krüger-176/+184
Tweak "wrong # of generics" suggestions Fix incorrect suggestion, make verbose and change message to make more sense when it isn't a span label.
2024-07-24Rollup merge of #127252 - fitzgen:edge-cases-for-bitwise-operations, r=m-ou-seMatthias Krüger-6/+35
Add edge-case examples to `{count,leading,trailing}_{ones,zeros}` methods Some architectures (i386) do not define a "count leading zeros" instruction, they define a "find first set bit" instruction (`bsf`) whose result is undefined when given zero (ie none of the bits are set). Of this family of bitwise operations, I always forget which of these things is potentially undefined for zero, and I'm also not 100% sure that Rust provides a hard guarantee for the results of these methods when given zero. So I figured there are others who have these same uncertainties, and it would be good to resolve them and answer the question via extending these doc examples/tests. See https://en.wikipedia.org/wiki/Find_first_set#Hardware_support for more info on i386 and `bsf` on zero.
2024-07-24Rollup merge of #126152 - RalfJung:size_of_val_raw, r=saethlinMatthias Krüger-0/+32
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-24Add regression testOli Scherer-0/+49
2024-07-24Improved clarity of documentation for std::fs::create_dir_allrik86189-7/+2
2024-07-24Auto merge of #126024 - oli-obk:candidate_key_caching_is_unsound_yay, r=lcnrbors-2/+11
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-24Improve spans on evaluated `cfg_attr`s.Nicholas Nethercote-41/+41
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-24Don't use global caches if opaques can be definedOli Scherer-2/+11
2024-07-24Auto merge of #127524 - oli-obk:feed_item_attrs2, r=petrochenkovbors-445/+478
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-24Forbid unsafe_op_in_unsafe_fn in sys/pal/windowsChris Denton-10/+14
2024-07-24Import `core::ffi::c_void` in more placesChris Denton-22/+21
2024-07-24Auto merge of #128127 - tmandry:you-wouldnt-bump-a-fuchsia, r=Kobzolbors-1/+1
Bump Fuchsia This includes changes to unblock merging #126024. try-job: x86_64-fuchsia
2024-07-24Auto merge of #128128 - matthiaskrgr:rollup-jz6w0ck, r=matthiaskrgrbors-333/+438
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-24Add chroot unsupported implementation for VxWorksB I Mohammed Abbas-2/+8
2024-07-23Bump FuchsiaTyler Mandry-1/+1
This includes changes to unblock merging #126024.
2024-07-24Rollup merge of #128108 - onur-ozkan:ensure-std-for-precompiled-rustc, r=KobzolMatthias Krüger-0/+1
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-24Rollup merge of #128106 - hallfox:patch-1, r=ChrisDentonMatthias Krüger-3/+3
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-24Rollup merge of #128100 - GuillaumeGomez:run-make-path, r=Kobzol,jieyouxuMatthias Krüger-2/+25
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-24Rollup merge of #128092 - ChrisDenton:wrappers, r=workingjubileeMatthias Krüger-126/+43
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-24Rollup merge of #128043 - safinaskar:primitive, r=workingjubileeMatthias Krüger-3/+9
Docs for core::primitive: mention that "core" can be shadowed, too, so we should write "::core" ``@rustbot`` label +A-docs
2024-07-24Rollup merge of #127481 - a1phyr:pattern_gat, r=AmanieuMatthias Krüger-198/+207
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-24Rollup merge of #126770 - wr7:master, r=AmanieuMatthias Krüger-0/+149
Add elem_offset and related methods Implementation of #126769
2024-07-24Rollup merge of #125962 - Coekjan:const-binary-heap, r=AmanieuMatthias Krüger-1/+1
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-24Auto merge of #128123 - ehuss:tidy-rustbook-submodule, r=Mark-Simulacrumbors-33/+29
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-23Fix tidy check if book submodule is not checked outEric Huss-33/+29
2024-07-24Auto merge of #127153 - NobodyXu:pipe, r=ChrisDentonbors-16/+551
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-23Gate AsyncFn* under async_closure featureMichael Goulet-12/+43
2024-07-23Add elem_offset and related methodswr7-0/+149
2024-07-23library/core/src/primitive.rs: small doc fixAskar Safin-1/+1
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2024-07-23Auto merge of #128109 - matthiaskrgr:rollup-gc7kopi, r=matthiaskrgrbors-112/+251
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-23make tidy fast without compromising case alternationdonno2048-31/+35
2024-07-23Allow to pass a full path for `run-make` testsGuillaume Gomez-2/+25
2024-07-23ensure std step before preparing sysrootonur-ozkan-0/+1
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>