Commit graph

298901 commits

Author SHA1 Message Date
Matthias Krüger
67e2358fbb
Rollup merge of #139902 - lcnr:no-opaque-cast-projection, r=oli-obk
do not emit `OpaqueCast` projections with `-Znext-solver`

We normalize opaque types in their defining scope if the new solver is enabled. This means projections do not contain any 'revealable' opaque types we need to worry about. We either have a type which has been normalized by writeback or we need to normalize it anyways.

r? ```@compiler-errors``` ```@oli-obk```
2025-04-17 17:40:28 +02:00
Matthias Krüger
cecc7a490a
Rollup merge of #139870 - Shourya742:2025-04-15-add-retries-to-remove_and_create_dir_all, r=jieyouxu
add retries to remove and create dir all

closes: #139230

r? ```@jieyouxu```
2025-04-17 17:40:28 +02:00
Matthias Krüger
d2db1c1df9
Rollup merge of #139850 - xizheyin:issue-138698, r=jieyouxu
Hide unstable print kinds within emit_unknown_print_request_help in stable channel

Fixes #138698

We need to get the channel from `matches`. However, since `matches`(Line 1169) is constructed after `rustc_optgroups` (Line1165, where `RustcOptGroup::value_hint` is generated, i.e. what `rustc --print print` prints), I've left it unchanged here for now.

2da29dbe8f/compiler/rustc_driver_impl/src/lib.rs (L1161-L1169)

There is actually a way to manually parse the `--crate-name` parameter, but I'm afraid that's an unorthodox practice. So I conservatively just modified `emit_unknown_print_request_help` to print different parameters depending on whether they are nightly or not when passing the error parameter.

r? ```@jieyouxu```
2025-04-17 17:40:27 +02:00
Matthias Krüger
da43826398
Rollup merge of #139774 - compiler-errors:supertrait-alias, r=lcnr
Fix replacing supertrait aliases in `ReplaceProjectionWith`

The new solver has a procedure called `predicates_for_object_candidate`, which elaborates the super-bounds and item-bounds that are required to hold for a dyn trait to implement something via a built-in object impl.

In that procedure, there is a folder called `ReplaceProjectionWith` which is responsible for replacing projections that reference `Self`, so that we don't encounter cycles when we then go on to normalize those projections in the process of proving these super-bounds.

That folder had a few problems: Firstly, it wasn't actually checking that this was a super bound originating from `Self`. Secondly, it only accounted for a *single* projection type def id, but trait objects can have multiple (i.e. `trait Foo<A, B>: Bar<A, Assoc = A> + Bar<B, Assoc = B>`).

To fix the first, it's simple enough to just add an equality check for the self ty. To fix the second, I implemented a matching step that's very similar to the `projection_may_match` check we have for upcasting, since on top of having multiple choices, we need to deal with both non-structural matches and ambiguity.

This probably lacks a bit of documentation, but I think it works pretty well.

Fixes https://github.com/rust-lang/trait-system-refactor-initiative/issues/171

r? lcnr
2025-04-17 17:40:27 +02:00
Jakub Beránek
cecf16785f
Add a note about the test dashboard to the post-merge report 2025-04-17 17:38:15 +02:00
Amanieu d'Antras
e5e5fb9d80 Fix drop handling in hint::select_unpredictable
This intrinsic doesn't drop the value that is not selected so this is
manually done in the public function that wraps the intrinsic.
2025-04-17 17:30:53 +02:00
Jakub Beránek
08cb187d26
Turn test_dashboard into a file 2025-04-17 17:26:40 +02:00
Jakub Beránek
aa9cb70190
Print number of root tests and subdirectories 2025-04-17 17:25:12 +02:00
Jieyou Xu
83af9f57c1
run-make: drop os_pipe workaround now that anonymous_pipe is stable on beta 2025-04-17 23:23:30 +08:00
Jakub Beránek
d2c1763336
Create a macro for rendering test results 2025-04-17 17:18:38 +02:00
Jakub Beránek
1a6e0d52e5
Render test revisions separately 2025-04-17 17:14:26 +02:00
Jason Newcomb
26f43ff346
match_single_binding: allow macros in scrutinee and patterns (#14635)
changelog: [`match_single_binding`]: allow macros in scrutinee and
patterns

Fixes rust-lang/rust-clippy#14634
2025-04-17 14:58:53 +00:00
Alex Crichton
f9091e24a0 Ignore zero-sized types in wasm future-compat warning
This commit fixes a false positive of the warning triggered for #138762
and the fix is to codify that zero-sized types are "safe" in both the
old and new ABIs.
2025-04-17 07:42:55 -07:00
Samuel Tardieu
a49ea2d63d
fix: unnecessary_lazy_evaluations suggests wrongly for async closure (#14644)
Closes rust-lang/rust-clippy#14578

changelog: [`unnecessary_lazy_evaluations`] fix wrong suggestions for
async closure
2025-04-17 14:42:15 +00:00
Ralf Jung
2a94b1c2bf
Merge pull request #4276 from RalfJung/auto-sync
ci.yml: always create sync PR when there's any difference
2025-04-17 14:40:27 +00:00
Jakub Beránek
4b310338f8
Add a note about how to find tests that haven't been executed anywhere. 2025-04-17 16:35:39 +02:00
Guillaume Gomez
7bfb15cd11 Fix new_lint clippy command 2025-04-17 16:31:56 +02:00
Jakub Beránek
a326afd5dd
Add buttons for expanding and collapsing all test suites 2025-04-17 16:30:23 +02:00
Patrick-6
50cf102311 Change function visibility to pub 2025-04-17 16:23:44 +02:00
Jakub Beránek
c8a882b7b5
Add command to citool for generating a test dashboard 2025-04-17 16:18:24 +02:00
Jakub Beránek
111c15c48e
Extract function for normalizing path delimiters to utils 2025-04-17 16:18:01 +02:00
Jakub Beránek
d14df2652d
Make parent in download_auto_job_metrics optional 2025-04-17 16:18:01 +02:00
Ralf Jung
8c9a9a7716 for testing, run the CI job an extra time today 2025-04-17 16:14:19 +02:00
Ralf Jung
9cd4757f59 ci.yml: always create sync PR when there's any difference 2025-04-17 16:14:19 +02:00
Lukas Woodtli
7a5a884275 Make C string merging test work on MIPS
Assembly for MIPS uses, by convention, a different prefix for local
anonymous variables.
2025-04-17 16:08:22 +02:00
xizheyin
8562110e0d Hide unstable print kinds within emit_unknown_print_request_help in stable channel
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-17 22:02:31 +08:00
yanglsh
5a1dbea052 fix: unnecessary_lazy_evaluations suggests wrongly for async closure 2025-04-17 22:00:57 +08:00
sayantn
e804386587 Change void* type for gather/scatter intrinsics 2025-04-17 13:59:07 +00:00
sayantn
d6b0426127 Change void* type for cvt_storeu intrinsics 2025-04-17 13:59:07 +00:00
sayantn
376c3f33c5 Change void* type for compressstore intrinsics 2025-04-17 13:59:07 +00:00
sayantn
b10a6817d9 Change void* type for 3 intrinsics
- `_mm512_load_si512`
 - `_mm512_loadu_si512`
 - `_mm512_stream_si512`
2025-04-17 13:59:07 +00:00
sayantn
ccf36667b0 Add checks for void pointer types to ensure consistency 2025-04-17 13:59:07 +00:00
Antoni Boucher
06af88e06c Add new failing test 2025-04-17 08:50:09 -04:00
Antoni Boucher
4b5940ad77 Fix overflow operations 2025-04-17 08:50:06 -04:00
Antoni Boucher
0d773175cc Add support for simd_insert_dyn and simd_extract_dyn 2025-04-17 08:50:02 -04:00
Antoni Boucher
bb1e6a3193 Fix tests 2025-04-17 08:49:55 -04:00
Antoni Boucher
6504f4c09c Format 2025-04-17 08:49:52 -04:00
Antoni Boucher
bc0bc8d5e1 Fix int_to_float_cast for f128 2025-04-17 08:49:49 -04:00
Antoni Boucher
ec44cfdfb4 Fix tests 2025-04-17 08:49:44 -04:00
Antoni Boucher
ecf0a1eea3 Update GCC version 2025-04-17 08:49:41 -04:00
Antoni Boucher
5cf2bbc4e2 Fix clippy warnings 2025-04-17 08:49:37 -04:00
Antoni Boucher
f9822772e8 Fix libcore tests 2025-04-17 08:49:33 -04:00
Antoni Boucher
9a453d46f4 Update other patches 2025-04-17 08:49:30 -04:00
Antoni Boucher
e1fa74b4a9 Implement copysignf128 2025-04-17 08:49:24 -04:00
Antoni Boucher
5c832e5ece Remove most of builtins hack since it's not necessary anymore 2025-04-17 08:49:21 -04:00
Antoni Boucher
be75a58538 Fix compilation 2025-04-17 08:49:15 -04:00
Antoni Boucher
cc81c706e4 Fix patches 2025-04-17 08:49:08 -04:00
Timo
ac88357f83
New lint: swap_with_temporary (#14046)
This lint detects inefficient or useless `{std,core}::mem::swap()` calls
such as:

```rust
    // Should be `a = temp();`
    swap(&mut a, &mut temp());
    // Should be `*b = temp();`
    swap(b, &mut temp());
    // Should be `temp1(); temp2();` if we want to keep the side effects
    swap(&mut temp1(), &mut temp2());
```

It also takes care of using a form appropriate for a `()` context if
`swap()` is part of a larger expression (don't ask me why this wouldn't
happen, I have no idea), by suggesting `{ x = y; }` (statement in block)
or `{std,core}::mem::drop((temp1(), temp2())`.

changelog: [`swap_with_temporary`]: new lint

Close #1968
2025-04-17 12:42:46 +00:00
Antoni Boucher
c1d21003bb Update to nightly-2025-04-17 2025-04-17 08:34:54 -04:00
Antoni Boucher
90c6c9f6a9 Merge branch 'master' into sync_from_rust_2025_04_17 2025-04-17 08:34:28 -04:00