1
Fork 0
Commit graph

255659 commits

Author SHA1 Message Date
bors
57062170c5 Auto merge of #17243 - Veykril:static-lt-hir, r=Veykril
internal: Add StaticLifetime to hir API
2024-05-16 06:04:52 +00:00
Lukas Wirth
b7e194ed82 internal: Add StaticLifetime to hir API 2024-05-16 08:02:51 +02:00
zachs18
a59d071e9c
Fix for_loops_over_fallibles hits in compiletest/src/json.rs 2024-05-16 05:51:29 +00:00
Daniel Sedlak
c342a61564 Add configuration option for ignoring panic!() in tests 2024-05-16 05:45:56 +00:00
Jubilee Young
887151ad93 Set debuginfo-level = "line-tables-only" for compiler profile
This profile has only undergone minimal tweaks since it was originally
drafted. I asked a number of compiler contributors and they said they
set rust.debug explicitly. This was even true for one contributor that
set `rust.debug` = false! Almost everyone seems slightly surprised that
`rust.debug = true` is not the default.

However, adding full debuginfo at this level costs multiple gigabytes!
We can still get much better debuginfo by setting "line-tables-only"
at the cost of only 150~200 MB.
2024-05-15 17:38:22 -07:00
bors
b71e8cbaf2 Auto merge of #124987 - workingjubilee:macro-metavar-expr-with-a-shorter-len, r=c410-f3r,joshtriplett,joshtriplett
Rename `${length()}` to `${len()}`

Implements the rename suggested in https://github.com/rust-lang/rust/pull/122808#issuecomment-2047722187
> I brought this up in the doc PR but it belongs here – `length` should probably be renamed `len` before stabilization. The latter is de facto standard in the standard library, whereas the former is only used in a single unstable API. These metafunctions aren’t library items of course, but should presumably still be consistent with established names.

r? `@c410-f3r`
2024-05-16 00:26:20 +00:00
bors
1871252fc8 Auto merge of #125164 - fmease:rollup-s5vwzlg, r=fmease
Rollup of 5 pull requests

Successful merges:

 - #125003 (avoid using aligned_alloc; posix_memalign is better-behaved)
 - #125142 (Migrate `run-make/rustdoc-themes` to new rmake.rs)
 - #125146 (Migrate `run-make/panic-impl-transitive` to `rmake`)
 - #125154 (Small improvements to the documentaion of FnAbi )
 - #125159 (Meta: Allow unauthenticated users to modify `L-*`, `PG-*` and `-Z*` labels)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-05-15 21:46:12 +00:00
bors
caad063933 Auto merge of #12713 - J-ZhengLi:issue8864, r=y21
make sure the msrv for `const_raw_ptr_deref` is met when linting [`missing_const_for_fn`]

fixes: #8864

---

changelog: make sure the msrv for `const_ptr_deref` is met when linting [`missing_const_for_fn`]
2024-05-15 21:29:34 +00:00
León Orell Valerian Liehr
734a109998
Rollup merge of #125159 - fmease:allow-unauth-labels-l-pg-z, r=jieyouxu
Meta: Allow unauthenticated users to modify `L-*`, `PG-*` and `-Z*` labels

Complements: rust-lang/rust-forge#744.

1. `L-*`: Issues and PRs concerning specific lints
2. `PG-*`: Issues and PRs concerning specific project groups
3. `-Z*`: Issues and PRs concerning specific unstable `-Z` compiler options

These are safe to expose. Allows unauthenticated users greater leeway in triaging issues.
We have a lot of such people <3 and I want to support them as much as possible.

r? jieyouxu (you get assigned a lot these days :P) or compiler
2024-05-15 22:01:20 +02:00
León Orell Valerian Liehr
601e5d199f
Rollup merge of #125154 - FractalFir:fnabi_doc, r=compiler-errors
Small improvements to the documentaion of FnAbi

I have updated the documentation of  `FnAbi`.

The `arg` and `ret` fields are no longer LLVM types, but Rust types(`ArgAbi` contains a `TyAndLayout` and a `PassMode`), so I changed the documentation to reflect that.

Besides that, I also added documentation to other fields, and added a clarification about the differences between `FnAbi` and `FnSig`, since this is not something that is immediately obvious.
2024-05-15 22:01:20 +02:00
León Orell Valerian Liehr
09156291e5
Rollup merge of #125146 - Oneirical:panic-impl, r=jieyouxu
Migrate `run-make/panic-impl-transitive` to `rmake`

Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).

The test itself is quite simple, but the "handle panics by entering infinite loop" part is strange.
2024-05-15 22:01:19 +02:00
León Orell Valerian Liehr
80f991e09b
Rollup merge of #125142 - GuillaumeGomez:migrate-rustdoc-themes, r=jieyouxu
Migrate `run-make/rustdoc-themes` to new rmake.rs

Part of https://github.com/rust-lang/rust/issues/121876.

r? `@jieyouxu`
2024-05-15 22:01:19 +02:00
León Orell Valerian Liehr
c5b17ec9d2
Rollup merge of #125003 - RalfJung:aligned_alloc, r=cuviper
avoid using aligned_alloc; posix_memalign is better-behaved

Also there's no reason why wasi should be different than all the other Unixes here.
2024-05-15 22:01:18 +02:00
Olasunkanmi Olayinka
0bf8af69a2 feat: update stdarch submodule for intrinsics on ARM 2024-05-15 15:38:58 -04:00
Zachary S
376a8c0ae5 Allow for_loops_over_fallibles in test that tests &mut Result as IntoIterator. 2024-05-15 13:51:16 -05:00
Michał Kostrubiec
257d222e4b Improved the documentation of the FnAbi struct 2024-05-15 20:32:27 +02:00
León Orell Valerian Liehr
72a48fc68c
Allow unauthenticated users to modify L-*, PG-* and -Z* labels 2024-05-15 20:24:09 +02:00
Zachary S
6b818ddac6 Fix article in test 2024-05-15 13:17:11 -05:00
Zachary S
66573b70a9 Use 'a' article for &Option. 2024-05-15 12:47:20 -05:00
Zachary S
0e467596ff Fix more new for_loops_over_fallibles hits in compiler. 2024-05-15 12:30:30 -05:00
bors
65dbe8e312 Auto merge of #17241 - blyxyas:fix-typos, r=lnicola
Chore: Fix some typos

https://github.com/rust-lang/rust/pull/124948

> In RA we gladly take typo fixes, but for now we definitely want them in the upstream repository.
2024-05-15 17:00:46 +00:00
blyxyas
15983f496b Fix typos 2024-05-15 18:55:27 +02:00
Zachary S
ea549fd176 Add tests for 'Also apply warn(for_loops_over_fallibles) to &T and &mut T, not just T = Result/Option.' 2024-05-15 11:53:40 -05:00
Zachary S
77f288c18d Include reference in lint diagnostic 2024-05-15 11:05:44 -05:00
Zachary S
7d7eb973d0 Fix new for_loops_over_fallibles hits in compiler. 2024-05-15 11:05:44 -05:00
Zachary S
4be041a2cd Also apply warn(for_loops_over_fallibles) to &T and &mut T, not just T = Result/Option. 2024-05-15 11:05:44 -05:00
bors
e669d97494 Auto merge of #12706 - pacak:less-aggressive-needless-borrows, r=dswij
less aggressive needless_borrows_for_generic_args

Current implementation looks for significant drops, that can change the behavior, but that's not enough - value might not have a `Drop` itself but one of its children might have it.

A good example is passing a reference to `PathBuf` to `std::fs::File::open`. There's no benefits to pass `PathBuf` by value, but since `clippy` can't see `Drop` on `Vec` several layers down it complains forcing pass by value and making it impossible to use the same name later.

New implementation only looks at copy values or values created in place     so existing variable will never be moved but things that take a string reference created and value is created inplace `&"".to_owned()` will make it to suggest to use `"".to_owned()` still.

Fixes https://github.com/rust-lang/rust-clippy/issues/12454

changelog: [`needless_borrows_for_generic_args`]: avoid moving variables
2024-05-15 15:51:27 +00:00
David Koloski
5976494deb Don't link lsan rt if asan or hwasan are enabled 2024-05-15 15:40:53 +00:00
David Koloski
1b934f3e8c Sort mutually-exclusive pairs, update fixed tests 2024-05-15 15:40:52 +00:00
David Koloski
d7d3bd1221 Relax restrictions on multiple sanitizers
Most combinations of LLVM sanitizers are legal-enough to enable
simultaneously. This change will allow simultaneously enabling ASAN and
shadow call stacks on supported platforms.
2024-05-15 15:40:52 +00:00
bors
a9b5c8ca81 Auto merge of #12790 - c410-f3r:blah, r=dswij
Fix #12760

Fix #12760

```
changelog: [missing_panics_doc]: Ignore panics in compile time
```
2024-05-15 15:40:36 +00:00
bors
b21b74b5e6 Auto merge of #125134 - compiler-errors:negative-traits-are-not-notable, r=fmease
rustdoc: Negative impls are not notable

In #124097, we add `impl !Iterator for [T]` for coherence reasons, and since `Iterator` is a [notable trait](8387315ab3/library/core/src/iter/traits/iterator.rs (L40)), this means that all `-> &[_]` now are tagged with a `!Iterator` impl as a notable trait.

I "fixed" the failing tests in that PR with 6cbbb8b709a43482847243484ed67131e372ba71, where I just blessed the tests, since I didn't want to mix these changes with that PR; however, don't believe negative impls are notable, and this PR aims to prevent these impls from being mentioned.

In the standard library, we use negative impls purely to guide coherence. They're not really a signal of anything useful to the end-user. If there ever is a case that we want negative impls to be mentioned as notable, this really should be an opt-in feature.
2024-05-15 14:52:49 +00:00
bors
a7f326574c Auto merge of #12779 - de-vri-es:move-assigng-clones-to-pedantic, r=y21
`assigning_clones`: move to `pedantic` so it is allow by default

In a nutshell, the `assigning_clones` lint suggests to make your code less readable for a small performance gain. See #12778 for more motivation.

fixes #12778

changelog: [`assigning_clones`]: move to the `pedantic` group
2024-05-15 14:50:29 +00:00
Oneirical
a7484d2e49 fix tidy 2024-05-15 10:09:19 -04:00
Oneirical
cae17ff42b rewrite panic-impl-transitive 2024-05-15 09:58:47 -04:00
Jakub Beránek
7b6a3d029b
CI: fix toolstate publishing 2024-05-15 15:48:52 +02:00
bors
f01965937d Auto merge of #17240 - Veykril:metrics-caching-fix, r=Veykril
Use actions/cache again in metrics CI

The other one overwrites the target cache again which we don't want
2024-05-15 13:27:20 +00:00
Lukas Wirth
2dca5431c4 Use actions/cache again in metrics CI 2024-05-15 15:25:58 +02:00
bors
ade234d574 Auto merge of #125144 - fmease:rollup-4uft293, r=fmease
Rollup of 6 pull requests

Successful merges:

 - #124307 (Optimize character escaping.)
 - #124975 (Use an helper to move the files)
 - #125027 (Migrate `run-make/c-link-to-rust-staticlib` to `rmake`)
 - #125038 (Invert comparison in `uN::checked_sub`)
 - #125104 (Migrate `run-make/no-cdylib-as-rdylib` to `rmake`)
 - #125137 (MIR operators: clarify Shl/Shr handling of negative offsets)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-05-15 12:43:34 +00:00
León Orell Valerian Liehr
8d38f2fb11
Rollup merge of #125137 - RalfJung:mir-sh, r=scottmcm
MIR operators: clarify Shl/Shr handling of negative offsets

"made unsigned" was not fully clear (made unsigned how? by using `abs`? no), so let's say "re-interpreted as an unsigned value of the same size" instead.

r? `@scottmcm`
2024-05-15 14:21:39 +02:00
León Orell Valerian Liehr
2659ff3882
Rollup merge of #125104 - Oneirical:test6, r=jieyouxu
Migrate `run-make/no-cdylib-as-rdylib` to `rmake`

Part of #121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).

> "the test will fail if the cdylib is picked, because it doesn't export any rust symbols"

Is that true? Is there a way to verify?

I suggest maybe extending the test with: (after cleaning the directory)

```rust
    rustc()
        .input("bar.rs")
        .crate_type("cdylib")
        .run();
    rustc()
        .input("foo.rs")
        .prefer_dynamic()
        .run();
    fail();
```

to make sure we're actually testing something here.
2024-05-15 14:21:39 +02:00
León Orell Valerian Liehr
4f7d9d4ad8
Rollup merge of #125038 - ivan-shrimp:checked_sub, r=joboet
Invert comparison in `uN::checked_sub`

After #124114, LLVM no longer combines the comparison and subtraction in `uN::checked_sub` when either operand is a constant (demo: https://rust.godbolt.org/z/MaeoYbsP1). The difference is more pronounced when the expression is slightly more complex (https://rust.godbolt.org/z/4rPavsYdc).

This is due to the use of `>=` here:

ee97564e3a/library/core/src/num/uint_macros.rs (L581-L593)

For constant `C`, LLVM eagerly converts `a >= C` into `a > C - 1`, but the backend can only combine `a < C` with `a - C`, not `C - 1 < a` and `a - C`: e586556e37/llvm/lib/CodeGen/CodeGenPrepare.cpp (L1697-L1742)

This PR[^1] simply inverts the `>=` into `<` to restore the LLVM magic, and somewhat align this with the implementation of `uN::overflowing_sub` from #103299.

When the result is stored as an `Option` (rather than being branched/cmoved on), the discriminant is `self >= rhs`. This PR doesn't affect the codegen (and relevant tests) of that since LLVM will negate `self < rhs` to `self >= rhs` when necessary.

[^1]: Note to `self`: My very first contribution to publicly-used code. Hopefully like what I should learn to always be, tiny and humble.
2024-05-15 14:21:38 +02:00
León Orell Valerian Liehr
2804d4223b
Rollup merge of #125027 - Oneirical:c-test-with-remove, r=jieyouxu
Migrate `run-make/c-link-to-rust-staticlib` to `rmake`

Part of #121876.

r? `@jieyouxu`
2024-05-15 14:21:38 +02:00
León Orell Valerian Liehr
2e70bea168
Rollup merge of #124975 - lu-zero:move_file, r=clubby789
Use an helper to move the files

In case the source is not in the same filesystem.

See c1b3e0440f (commitcomment-141886468)
2024-05-15 14:21:37 +02:00
León Orell Valerian Liehr
3873a74f8a
Rollup merge of #124307 - reitermarkus:escape-debug-size-hint-inline, r=joboet
Optimize character escaping.

Allow optimization of panicking branch in `EscapeDebug`, see https://github.com/rust-lang/rust/pull/121805.

r? `@joboet`
2024-05-15 14:21:37 +02:00
bors
98d768bf75 Auto merge of #17239 - Veykril:metrics-caching, r=Veykril
internal: Key ignoring the job-id in metrics cache
2024-05-15 11:32:48 +00:00
Lukas Wirth
b5fbde7f1c Key ignoring the job-id in metrics cache 2024-05-15 13:31:11 +02:00
Renato A
e1611aa690
Update library/core/src/result.rs
Co-authored-by: joboet <jonasboettiger@icloud.com>
2024-05-15 08:07:16 -03:00
bors
38640806cc Auto merge of #17238 - Veykril:metrics-caching, r=Veykril
Fix metrics workflow not actually updating the toolchain

The install won't persist across jobs
2024-05-15 10:57:26 +00:00
Lukas Wirth
9db0b656e8 Fix metrics workflow not actually updating the toolchain 2024-05-15 12:54:24 +02:00