Commit Graph

253604 Commits

Author SHA1 Message Date
Daniel Paoliello 29f2e27156 Keep the LIB env var in the compiler-builtins test 2024-04-25 13:49:46 -07:00
bors 3a36386dc1 Auto merge of #124386 - matthiaskrgr:rollup-0a6yr00, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - #124313 (Detect borrow error involving sub-slices and suggest `split_at_mut`)
 - #124374 (Don't ICE when `codegen_select_candidate` returns ambiguity in new solver)
 - #124380 (`Range` iteration specialization: remove trivial bounds)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-04-25 20:31:14 +00:00
lcnr 146f637826 add triage bot mentions 2024-04-25 20:21:38 +00:00
lcnr b64f687cb0 use EagerResolver 2024-04-25 20:19:01 +00:00
Vadim Petrochenkov 7517a4f882 ast: Visit item components in "natural" order 2024-04-25 22:50:06 +03:00
Vadim Petrochenkov 5be9fdd636 ast: Generalize item kind visiting
And avoid duplicating logic for visiting `Item`s with different kinds (regular, associated, foreign).
2024-04-25 22:49:58 +03:00
Jubilee Young 43f21a6871 thread_local: split refs to fields of Key 2024-04-25 12:45:21 -07:00
lcnr 03878c682a hir typeck: look into nested goals
uses a `ProofTreeVisitor` to look into nested
goals when looking at the pending obligations
during hir typeck. Used by closure signature
inference, coercion, and for async functions.
2024-04-25 19:44:00 +00:00
Jubilee Young 538ddb0ac2 thread_local: use less &mut T in LazyKeyInner::take
Instead, use raw pointers to accomplish internal mutability throughout.
2024-04-25 12:33:09 -07:00
Vadim Petrochenkov 98804c1786 debuginfo: Stabilize -Z debug-macros, -Z collapse-macro-debuginfo and #[collapse_debuginfo]
`-Z debug-macros` is "stabilized" by enabling it by default and removing.

`-Z collapse-macro-debuginfo` is stabilized as `-C collapse-macro-debuginfo`.
It now supports all typical boolean values (`parse_opt_bool`) in addition to just yes/no.

Default value of `collapse_debuginfo` was changed from `false` to `external` (i.e. collapsed if external, not collapsed if local).
`#[collapse_debuginfo]` attribute without a value is no longer supported to avoid guessing the default.
2024-04-25 22:14:47 +03:00
Matthias Krüger 3c0c5b4e46 Rollup merge of #124380 - lcnr:std-unnecessary-params, r=Nilstrieb
`Range` iteration specialization: remove trivial bounds

These bounds on impl items are trivially true and never checked by a caller. They end up shadowing the actual impls, currently preventing normalization in the new solver. While we may have to fix the underlying issue in the new solver at some point, for now this is an easy way to get us closer to compiling core with `-Znext-solver`.

r? `@Nilstrieb`
2024-04-25 21:12:18 +02:00
Matthias Krüger 6c21abf291 Rollup merge of #124374 - compiler-errors:fix-ambiguity-ice, r=lcnr
Don't ICE when `codegen_select_candidate` returns ambiguity in new solver

Because we merge identical candidates, we may have >1 impl candidate to in `codegen_select_error` but *not* have a trait error.

r? lcnr
2024-04-25 21:12:17 +02:00
Matthias Krüger 60c825f1e1 Rollup merge of #124313 - estebank:split-at-mut, r=fee1-dead
Detect borrow error involving sub-slices and suggest `split_at_mut`

```
error[E0499]: cannot borrow `foo` as mutable more than once at a time
  --> $DIR/suggest-split-at-mut.rs:13:18
   |
LL |     let a = &mut foo[..2];
   |                  --- first mutable borrow occurs here
LL |     let b = &mut foo[2..];
   |                  ^^^ second mutable borrow occurs here
LL |     a[0] = 5;
   |     ---- first borrow later used here
   |
   = help: use `.split_at_mut(position)` or similar method to obtain two mutable non-overlapping sub-slices
```

Address most of #58792.

For follow up work, we should emit a structured suggestion for cases where we can identify the exact `let (a, b) = foo.split_at_mut(2);` call that is needed.
2024-04-25 21:12:17 +02:00
Michael Goulet f2518cd798 Remove special-casing for SimplifiedType for next solver 2024-04-25 14:27:39 -04:00
Esteban Küber 64a4cdcfd4 review comment: rename method 2024-04-25 18:26:36 +00:00
lcnr ce70584753 remove trivial bounds 2024-04-25 17:31:00 +00:00
bors 38dd569150 Auto merge of #124377 - matthiaskrgr:rollup-ajxjq35, r=matthiaskrgr
Rollup of 2 pull requests

Successful merges:

 - #124287 (Improved code with clippy)
 - #124326 (tests: remove few ignore-stage2)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-04-25 17:12:29 +00:00
Matthias Krüger c125e9d9e0 Rollup merge of #124326 - klensy:ignore-stage2, r=compiler-errors
tests: remove few ignore-stage2

beta was branched long ago, so can be removed
2024-04-25 18:57:56 +02:00
Matthias Krüger b28721fd96 Rollup merge of #124287 - 41Leahcim:master, r=fmease
Improved code with clippy

I haven't used the bootstrapped compiler, but I think I have made some improvements using clippy. I have already made the following changes to the compiler:
Replaced `self.first().is_digit(10)` with `self.first().is_ascii_digit()` on lines 633, 664, and 680 of compiler/rust_lexer/src/lib.rs.

Removed unnecessary cast on line 262 of compiler/rustc_lexer/src/unescape.rs

Replaced ok_or_else with ok_or on line 303 of compiler/rustc_lexer/src/unescape.rs

Replaced `!std::env::var("RUSTC_BOOTSTRAP").is_ok()` with `std::env::var("RUSTC_BOOTSTRAP").is_err()` on line 4 of compiler/rustc_macros/build.rs

Removed needless borrow for generic argument `env`on line 53 of compiler/rust_llvm/build.rs
2024-04-25 18:57:56 +02:00
Esteban Küber abdb64d4ea Check equivalence of indices in more cases 2024-04-25 16:55:33 +00:00
Esteban Küber ad6ae61246 Don't suggest split_at_mut when the multiple borrows have the same index 2024-04-25 16:55:33 +00:00
Esteban Küber 9f9f0aa534 Mention split_at_mut when mixing mutability in indexing ops
Emit suggestion when encountering

```rust
let a = &mut foo[0];
let b = &foo[1];
a.use_mut();
```
2024-04-25 16:55:33 +00:00
Esteban Küber dbaa4e2148 Only suggest split_at_mut on indexing borrowck errors for std types 2024-04-25 16:55:32 +00:00
Esteban Küber 386236f289 Detect borrow error involving sub-slices and suggest split_at_mut
```
error[E0499]: cannot borrow `foo` as mutable more than once at a time
  --> $DIR/suggest-split-at-mut.rs:13:18
   |
LL |     let a = &mut foo[..2];
   |                  --- first mutable borrow occurs here
LL |     let b = &mut foo[2..];
   |                  ^^^ second mutable borrow occurs here
LL |     a[0] = 5;
   |     ---- first borrow later used here
   |
   = help: use `.split_at_mut(position)` or similar method to obtain two mutable non-overlapping sub-slices
```

Address most of #58792.

For follow up work, we should emit a structured suggestion for cases where we can identify the exact `let (a, b) = foo.split_at_mut(2);` call that is needed.
2024-04-25 16:55:32 +00:00
Michael Goulet cc606174a6 Don't ICE when codegen_select returns ambiguity in new solver 2024-04-25 11:49:12 -04:00
lcnr 662eadbafb pub(in super::super) to pub(crate)
`super::super` of `rustc_hir_typeck::fn_ctxt::_impl`
is just `rustc_hir_typeck`.
2024-04-25 15:21:46 +00:00
lcnr 2293f1ed6a obligations_for_self_ty to sub module 2024-04-25 15:21:46 +00:00
bors 9e6c4fddda Auto merge of #123531 - compiler-errors:closure-wf, r=oli-obk
Enforce closure args + return type are WF

I found this out when investigating https://github.com/rust-lang/rust/issues/123461#issuecomment-2040894359. Turns out we don't register WF obligations for closure args and return types, leading to the ICE.

~~I think this is a useful thing to check for, but I'd like to check what the fallout is.~~ crater is complete.

~~Worst case, I think we should enforce this across an edition boundary (and possibly eventually migrate this for all editions) -- this should be super easy to do, since this is a check in HIR wfcheck, so it can be made edition dependent.~~ I believe the regressions are manageable enough to not necessitate edition-specific behavior.

Fixes #123461
2024-04-25 15:05:51 +00:00
Michael Goulet 870ed4bfa2 Add test 2024-04-25 10:51:54 -04:00
Michael Goulet b2fea557f3 Check closure args and returns are WF 2024-04-25 10:03:17 -04:00
Michael Goulet 487cdeb039 Format stash message correctly 2024-04-25 10:03:17 -04:00
bors 6a9758d4f3 Auto merge of #124058 - TechVest:master, r=fmease
Fix some typos in comments
2024-04-25 13:02:08 +00:00
bors 1c84675e1f Auto merge of #124368 - RalfJung:miri, r=RalfJung
Miri subtree update

r? `@ghost`
2024-04-25 10:59:13 +00:00
Ralf Jung 9f7194b5eb update lockfile 2024-04-25 12:28:45 +02:00
bors d93f9ae3ee Auto merge of #3514 - RalfJung:hyperfine, r=RalfJung
CI: run benches with hyperfine rather than bash

The hyperfine installation is cached so this should not cost a lot of CI time.

This is step 1/2 to getting rid of the BASH variable hack.
2024-04-25 09:16:32 +00:00
Ralf Jung 505e4dd7ba CI: run benches with hyperfine rather than bash 2024-04-25 11:14:22 +02:00
bors 31e6e8c6c5 Auto merge of #119650 - chenyukang:yukang-fix-118596-ref-mut, r=wesleywiser
Suggest ref mut for pattern matching assignment

Fixes #118596
2024-04-25 08:52:19 +00:00
bors 97132949f7 Auto merge of #3501 - RalfJung:tls-many-seeds, r=RalfJung
add a test for the TLS memory leak

This is a regression test for https://github.com/rust-lang/rust/issues/123583.
2024-04-25 08:14:58 +00:00
Ralf Jung 247e82cb83 run many-seeds tests at least a few times on all tier 1 targets 2024-04-25 09:53:34 +02:00
Ralf Jung ea9cff254f add a test for the TLS memory leak 2024-04-25 09:51:15 +02:00
Ralf Jung f38dba69b1 weak memory outdated loads: show where the load was from 2024-04-25 09:51:15 +02:00
klensy 21e97a67ab tests: remove few ignore-stage2
beta was branched long ago, so can be removed
2024-04-25 10:48:11 +03:00
bors e22a73c6d0 Auto merge of #3512 - RalfJung:miri-script-build, r=RalfJung
make miri-script a workspace root

This is needed to make miri-script build on stable (as is done by the `./miri` script) when the parent package uses unstable cargo features.
2024-04-25 07:20:16 +00:00
bors 9d7a47fe31 Auto merge of #3513 - rust-lang:rustup-2024-04-25, r=RalfJung
Automatic Rustup
2024-04-25 06:48:37 +00:00
bors 865808b33b Auto merge of #124360 - matthiaskrgr:rollup-k6bffhd, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - #124257 (Rewrite the `no-input-file.stderr` test in Rust and support diff)
 - #124324 (Minor AST cleanups)
 - #124327 (CI: implement job skipping in Python matrix calculation)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-04-25 06:35:26 +00:00
bors c69c79d42a Auto merge of #3505 - RalfJung:ci, r=RalfJung
CI: don't run cron-fail-notify when the job just got canceled

Doesn't seem right to prepare a PR in that case
2024-04-25 06:16:47 +00:00
Nicholas Nethercote 11e95d43ae Name the field in Expander.
For code clarity.
2024-04-25 15:18:07 +10:00
The Miri Cronjob Bot 258e5043a1 fmt 2024-04-25 05:05:41 +00:00
The Miri Cronjob Bot ff6fc75781 Merge from rustc 2024-04-25 05:04:32 +00:00
The Miri Cronjob Bot bed7caf206 Preparing for merge from rustc 2024-04-25 04:57:07 +00:00