-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Rollup of 12 pull requests #139657
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 12 pull requests #139657
Conversation
Currently in case of a Trait object in closure parameter, the compiler suggests either to use a reference, which is correct or to use an `impl Trait` which is not. Do not emit this suggestion when the parameter is part of a closure.
Signed-off-by: onur-ozkan <[email protected]>
The `//@ needs-crate-type: $crate_types...` directive takes a comma-separated list of crate types that the target platform must support in order for the test to be run.
…directives Not all existing tests are converted, I only updated ones that I can easily find via directive comments.
Signed-off-by: onur-ozkan <[email protected]>
Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
llvm/llvm-project@5ee1c0b updates llvm to match the documented calling convention to pass f128 indirectly. @rustbot label llvm-main
The commit adds "associated" to the description of associated types and associated consts, to match the description of associated functions. This increases error message precision and consistency with `AssocKind::fmt`. The commit also notes an imperfection in `AssocKind::fmt`; fixing this imperfection is possible but beyond the scope of this PR.
…, r=scottmcm add `core::intrinsics::simd::{simd_extract_dyn, simd_insert_dyn}` fixes rust-lang#137372 adds `core::intrinsics::simd::{simd_extract_dyn, simd_insert_dyn}`, which contrary to their non-dyn counterparts allow a non-const index. Many platforms (but notably not x86_64 or aarch64) have dedicated instructions for this operation, which stdarch can emit with this change. Future work is to also make the `Index` operation on the `Simd` type emit this operation, but the intrinsic can't be used directly. We'll need some MIR shenanigans for that. r? `@ghost`
…gross35 rustc_target: update x86_win64 to match the documented calling convention for f128 llvm/llvm-project@5ee1c0b updates llvm to match the documented calling convention to pass f128 indirectly. This change makes us do that on all versions of LLVM, not just starting with LLVM 21. `@rustbot` label llvm-main try-job: dist-x86_64-msvc try-job: dist-x86_64-mingw try-job: x86_64-msvc-1 try-job: x86_64-msvc-2 try-job: x86_64-mingw-1 try-job: x86_64-mingw-2
Allow drivers to supply a list of extra symbols to intern Allows adding new symbols as `const`s in external drivers, desirable in Clippy so we can use them in patterns to replace code like https://github.com/rust-lang/rust/blob/75530e9f72a1990ed2305e16fd51d02f47048f12/src/tools/clippy/clippy_lints/src/casts/cast_ptr_alignment.rs#L66 The Clippy change adds a couple symbols as a demo, the exact `clippy_utils` API and replacing other usages can be done on the Clippy side to minimise sync conflicts --- try-job: aarch64-gnu
Test linking and running `no_std` binaries I looked around, but it seems that we do not have a test that tests a `#![no_std]` + `#![no_main]` binary. So now I've added one. Motivated by discussion in [this Zulip thread](https://rust-lang.zulipchat.com/#narrow/channel/219381-t-libs/topic/Provide.20.60__isPlatformVersionAtLeast.60.20in.20.60std.60.3F/with/507870028). r? ```@tgross35``` try-job: arm-android try-job: armhf-gnu try-job: dist-ohos try-job: x86_64-mingw-1
…trait_in_closure_params, r=Noratrieb Don't suggest the use of `impl Trait` in closure parameter Fixes rust-lang#138932
doc changes: debug assertions -> overflow checks This PR is for the following issue: rust-lang#108131 has some changes in docs
…e-type, r=onur-ozkan Introduce a `//@ needs-crate-type` compiletest directive The `//@ needs-crate-type: $crate_types...` directive takes a comma-separated list of crate types that the target platform must support in order for the test to be run. This allows the test writer to semantically convey that the ignore condition is based on target crate type needs, instead of using a general purpose `//@ ignore-$target` directive (often without comment). Fixes rust-lang#132309. ### Example ```rs //@ needs-crate-type: dylib (ignored on e.g. wasm32-unknown-unknown) //@ compile-flags: --crate-type=dylib fn foo() {} ``` ### Review advice - Best reviewed commit-by-commit. - The impl is not very clean, I briefly attempted to clean up the directive handling but found that more invasive changes are needed, so I'd like to not block on the cleanup for now. try-job: test-various try-job: armhf-gnu
Deeply normalize obligations in `BestObligation` folder Built on rust-lang#139513. This establishes a somewhat rough invariant that the `Obligation`'s predicate is always deeply normalized in the folder; when we construct a new obligation we normalize it. Putting this up for discussion since it does affect some goals. r? lcnr
…, r=onur-ozkan bootstrap: improve `channel` handling Fixes rust-lang#139569 See [this comment](rust-lang#139574 (comment)) for the explanation of this bug.
Update `compiler-builtins` to 0.1.153 Includes the following changes: * Avoid OOB access in `memcpy` and `memmove` [1] * Enable intrinsics on AVR [2] * `libm` updates to avoid using `core::arch` vector intrinsics [3] * Re-enable `f16` on aarch64 without Neon [4] [1]: rust-lang/compiler-builtins#799 [2]: rust-lang/compiler-builtins#791 [3]: rust-lang/compiler-builtins#814 [4]: rust-lang/compiler-builtins#809
…er, r=compiler-errors Allow parenthesis around inferred array lengths In rust-lang#135272 it was noticed that we weren't handling `Vec<(((((_)))))>` correctly under the new desugaring for `generic_arg_infer`, this had to be fixed in order to not regress stable code for types that should continue working. This has the side effect of *also* allowing the following to work: ```rust #![feature(generic_arg_infer)] struct Bar<const N: usize>; fn main() { let a: Bar<((_))> = Bar::<10>; } ``` However I did not make the same change for array lengths resulting in the following not compiling: ```rust #![feature(generic_arg_infer)] fn main() { let a: [u8; (((_)))] = [2; 2]; let a: [u8; 2] = [2; (((((_)))))]; } ``` This is rather inconsistent as parenthesis around `_` *are* supported for const args to non-arrays, and type args. This PR fixes this allowing the above example to compile. No stable impact. r? compiler-errors
…piler-errors Improve `AssocItem::descr`. The commit adds "associated" to the description of associated types and associated consts, to match the description of associated functions. This increases error message precision and consistency with `AssocKind::fmt`. The commit also notes an imperfection in `AssocKind::fmt`; fixing this imperfection is possible but beyond the scope of this PR. r? `@estebank`
@bors r+ rollup=never p=5 |
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing e62d47d (parent) -> 18a029c (this PR) Test differencesShow 15 test diffsStage 0
Stage 1
Stage 2
Additionally, 2 doctest diffs were found. These are ignored, as they are noisy. Job group index
Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
📌 Perf builds for each rolled up PR:
previous master: e62d47dace In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Finished benchmarking commit (18a029c): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (primary 3.2%, secondary -1.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary -0.8%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 782.4s -> 781.035s (-0.17%) |
Successful merges:
core::intrinsics::simd::{simd_extract_dyn, simd_insert_dyn}
#137447 (addcore::intrinsics::simd::{simd_extract_dyn, simd_insert_dyn}
)no_std
binaries #138904 (Test linking and runningno_std
binaries)impl Trait
in closure parameter #138998 (Don't suggest the use ofimpl Trait
in closure parameter)//@ needs-crate-type
compiletest directive #139469 (Introduce a//@ needs-crate-type
compiletest directive)BestObligation
folder #139564 (Deeply normalize obligations inBestObligation
folder)channel
handling #139574 (bootstrap: improvechannel
handling)compiler-builtins
to 0.1.153 #139600 (Updatecompiler-builtins
to 0.1.153)AssocItem::descr
. #139654 (ImproveAssocItem::descr
.)r? @ghost
@rustbot modify labels: rollup
Create a similar rollup