Commit graph

250672 commits

Author SHA1 Message Date
Ralf Jung
673ff09d6d update proc-macro2 2024-03-26 18:14:14 +01:00
Ralf Jung
08c149b73f rename our proc-macro test crate to a more clear name
and remove serde_derive, since the --extern .so file was really just a consequence of building a proc macro
2024-03-26 17:43:38 +01:00
Ralf Jung
a379a95578 test-cargo-miri: add proc-macro2 instead of anyhow 2024-03-26 17:37:33 +01:00
bors
9f11ed76ff Auto merge of #3420 - RalfJung:eyre, r=RalfJung
add eyre to test-cargo-miri

Same as anyhow: custom build probe, widely used.
2024-03-26 14:25:03 +00:00
Ralf Jung
86b57408c9 add eyre to test-cargo-miri 2024-03-26 14:51:43 +01:00
bors
8b2b84e483 Auto merge of #3415 - JoJoDeveloping:tree-borrows-initialized-root, r=RalfJung
Tree Borrows: Make tree root always be initialized

This PR fixes a slight annoyance we discovered while formally proving that certain optimizations are sound with Tree Borrows. In particular... (copied from the commit message):

There should never be an `Active` but not initialized node in the borrow tree. If such a node exists, and if it has a protector, then on a foreign read, it could become disabled. This leads to some problems when formally proving that read moving optimizations are sound.

The root node is the only node for which this can happen, since all other nodes can only become `Active` when actually used. But special-casing the root node here is annoying to reason about, everything becomes much nicer if we can simply say that *all* `Active` nodes must be initialized. This requires making the root node default-initialized.

This is also more intuitive, since the root arguably becomes initialized during the allocation, which can be considered a write.
2024-03-26 13:27:35 +00:00
Johannes Hostert
df73cb710e
Tree Borrows: Make tree root always be Active and initialized
There should never be an `Active` but not initialized node in the
borrow tree. If such a node exists, and if it has a protector, then
on a foreign read, it could become disabled. This leads to some
problems when formally proving that read-reordering optimizations are
sound.

The root node is the only node for which this can happen, since all
other nodes can only become `Active` when actually used. But special-
casing the root node here is annoying to reason about, everything
becomes much nicer if we can simply say that *all* `Active` nodes
must be initialized. This requires making the root node default-
initialized.

This is also more intuitive, since the root arguably becomes ini-
tialized during the allocation, which can be considered a write.
2024-03-26 14:08:34 +01:00
bors
2e198d04ee Auto merge of #3419 - RalfJung:rustup, r=RalfJung
Rustup

https://github.com/rust-lang/rust/pull/123081 landed so hopefully this works now.
2024-03-26 11:50:27 +00:00
Ralf Jung
89a36c0385 fmt 2024-03-26 11:53:50 +01:00
bors
78d556e28d Auto merge of #3418 - RalfJung:cargo-miri, r=RalfJung
cargo-miri, miri-script, tests/ui: misc simplifications and comments

Parts of https://github.com/rust-lang/miri/pull/3411 that can be landed now.
2024-03-26 10:53:20 +00:00
Ralf Jung
c51eb819fe Merge from rustc 2024-03-26 11:52:02 +01:00
Ali MJ Al-Nasrawy
59c217fed2 remove test FIXME re once-module-region 2024-03-28 06:41:22 +00:00
Ali MJ Al-Nasrawy
fb35156bb5 fixup except equal params from 2024-03-28 06:08:43 +00:00
Ali MJ Al-Nasrawy
7c6876f9a9 simplify check_unique 2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
6b6ed2ea28 reject external lifetimes as invalid arguments 2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
f4940e4d22 rework opaque types region inference 2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
08c8caa524 convert all named regions in opaque types to nll vars
Do it in typeck before entering region inference routines
particularly because we will no longer be able to convert placeholders.
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
15c7e59c05 favor placeholders over existentials when choosing SCC representatives
... even when the existential has the least RegionVid.

universal regions (of root universe) > placeholders > existentials

The previous behavior, that chooses the minimal RegionVid index, naturally prefers universal regions over others
because they always have the least RegionVids, but there was no guranteed ordering between placeholders and existentials.
2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
ce91e46a1e check RPITs for invalid args 2024-03-28 06:00:26 +00:00
Ali MJ Al-Nasrawy
c337825d6d ignore error params 2024-03-28 06:00:25 +00:00
Ali MJ Al-Nasrawy
4ecdf5ff00 except equal parameters from the uniqueness check 2024-03-28 06:00:25 +00:00
Ralf Jung
eee5a77ed0 Preparing for merge from rustc 2024-03-26 11:51:57 +01:00
Ralf Jung
5b877a352e cargo-miri: clean up info_query treatment a bit, and update comment about RUSTC 2024-03-26 11:49:40 +01:00
Ralf Jung
a9b4a9413f run command: simplify flag computation 2024-03-26 11:44:34 +01:00
Ralf Jung
22b00b9976 run_dep_mode: treat program.args and program.env consistently 2024-03-26 11:44:34 +01:00
Ali MJ Al-Nasrawy
4e1999d387 ignore uncaptured lifetimes when checking opaques 2024-03-26 09:26:23 +00:00
Ali MJ Al-Nasrawy
92f40b8059 fix ICE in check_unique 2024-03-26 09:26:23 +00:00
bors
5f73da71fb Auto merge of #3417 - RalfJung:RUSTC_WORKSPACE_WRAPPER, r=RalfJung
we have to ignore RUSTC_WORKSPACE_WRAPPER as well

This matches what we do with RUSTC_WRAPPER.
2024-03-26 07:47:32 +00:00
Ralf Jung
377caa2afd we have to ignore RUSTC_WORKSPACE_WRAPPER as well 2024-03-26 08:27:13 +01:00
bors
73476d4990 Auto merge of #122849 - clubby789:no-metadata, r=petrochenkov
Don't emit load metadata in debug mode

r? `@ghost`
2024-03-26 06:46:43 +00:00
bors
8b9e47c136 Auto merge of #123065 - workingjubilee:rollup-bve45ex, r=workingjubilee
Rollup of 10 pull requests

Successful merges:

 - #122707 (Fix a typo in the alloc::string::String docs)
 - #122769 (extend comments for reachability set computation)
 - #122892 (fix(bootstrap/dist): use versioned dirs when vendoring)
 - #122896 (Update stdarch submodule)
 - #122923 (In `pretty_print_type()`, print `async fn` futures' paths instead of spans.)
 - #122950 (Add regression tests for #101903)
 - #123039 (Update books)
 - #123042 (Import the 2021 prelude in the core crate)
 - #123044 (`Instance` is `Copy`)
 - #123051 (did I mention that tests are super cool? )

r? `@ghost`
`@rustbot` modify labels: rollup
2024-03-26 02:07:49 +00:00
bors
c98ea0d808 Auto merge of #111769 - saethlin:ctfe-backtrace-ctrlc, r=RalfJung
Print a backtrace in const eval if interrupted

Demo:
```rust
#![feature(const_eval_limit)]
#![const_eval_limit = "0"]

const OW: u64 = {
    let mut res: u64 = 0;
    let mut i = 0;
    while i < u64::MAX {
        res = res.wrapping_add(i);
        i += 1;
    }
    res
};

fn main() {
    println!("{}", OW);
}
```
```
╭ ➜ ben@archlinux:~/rust
╰ ➤ rustc +stage1 spin.rs
^Cerror[E0080]: evaluation of constant value failed
 --> spin.rs:8:33
  |
8 |         res = res.wrapping_add(i);
  |                                 ^ Compilation was interrupted

note: erroneous constant used
  --> spin.rs:15:20
   |
15 |     println!("{}", OW);
   |                    ^^

note: erroneous constant used
  --> spin.rs:15:20
   |
15 |     println!("{}", OW);
   |                    ^^
   |
   = note: this note originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

For more information about this error, try `rustc --explain E0080`.
```
2024-03-26 00:04:03 +00:00
Jubilee
56e8f67c87
Rollup merge of #123051 - matthiaskrgr:casetest, r=workingjubilee
did I mention that tests are super cool?

Fixes https://github.com/rust-lang/rust/issues/81974
Fixes https://github.com/rust-lang/rust/issues/84727
Fixes https://github.com/rust-lang/rust/issues/92979
2024-03-25 14:35:38 -07:00
Jubilee
77de550c61
Rollup merge of #123044 - compiler-errors:instance, r=oli-obk
`Instance` is `Copy`

No reason to take it by value; it was confusing ``@rcvalle`` to see it being mutated when it's also being passed by ref in some places.
2024-03-25 14:35:37 -07:00
Jubilee
ac0a9c58e8
Rollup merge of #123042 - dpaoliello:prelude, r=Nilstrieb
Import the 2021 prelude in the core crate

The `core` crate currently imports the v1 prelude
b3df0d7e5e/library/core/src/lib.rs (L285-L287)

This recently caused an issue when updating the `portable-simd` subtree since it was using a trait that was added to the 2021 prelude: https://github.com/rust-lang/rust/pull/122905#discussion_r1536228822

To make it easier to have a consistent build environment for subtrees and submodules that get included in `core`, we will now import the 2021 prelude into `core`.

Fixes #122912

r? `@Nilstrieb`
2024-03-25 14:35:37 -07:00
Jubilee
2b13f944fb
Rollup merge of #123039 - rustbot:docs-update, r=ehuss
Update books

## rust-lang/edition-guide

1 commits in e1eead1181a691e56299294d5f1d62fe7a26d317..98b33e9a441457b0a491fe1be90e7de64eafc3e5
2024-03-23 14:17:26 UTC to 2024-03-23 14:17:26 UTC

- remove indication that C string literals don't exist yet (rust-lang/edition-guide#295)

## rust-lang/reference

4 commits in 5afb503a4c1ea3c84370f8f4c08a1cddd1cdf6ad..984b36eca4b9293df04d5ba4eb5c4f77db0f51dc
2024-03-25 14:05:19 UTC to 2024-03-19 20:01:14 UTC

- Fix typo of shebang (rust-lang/reference#1486)
- Document importing `main` (rust-lang/reference#1461)
- add grammar for `associated_type_bounds` in reference (rust-lang/reference#1481)
- Literal expressions: fix mistake in the definition of unicode escapes (rust-lang/reference#1483)

## rust-lang/rust-by-example

1 commits in e093099709456e6fd74fecd2505fdf49a2471c10..7601e0c5ad29d5bd3b518700ea63fddfff5915a7
2024-03-17 21:37:25 UTC to 2024-03-17 21:37:25 UTC

- Update enum_use.md to use a more neutral theme (rust-lang/rust-by-example#1828)

## rust-lang/rustc-dev-guide

12 commits in 8a5d647f19b08998612146b1cb2ca47083db63e0..ffa246b7fd95a96e1cd54883e613aed42c32547d
2024-03-23 07:44:42 UTC to 2024-03-11 18:17:28 UTC

- [MCP 723] Rename AstConv to HIR ty lowering (rust-lang/rustc-dev-guide#1916)
- add chapter to summary (rust-lang/rustc-dev-guide#1947)
- document difference between solvers + new solver normalization (rust-lang/rustc-dev-guide#1945)
- Fix broken link in chapter '1. How to build and run the compiler' (rust-lang/rustc-dev-guide#1946)
- typo (rust-lang/rustc-dev-guide#1944)
- Reflect rustc_codegen_cranelift move (rust-lang/rustc-dev-guide#1941)
- Update rustdoc-internals.md (rust-lang/rustc-dev-guide#1911)
- Update test-implementation.md (rust-lang/rustc-dev-guide#1937)
- Extract Bootstrap into its own section (rust-lang/rustc-dev-guide#1939)
- typos (rust-lang/rustc-dev-guide#1938)
- More updates for recent diagnostics changes. (rust-lang/rustc-dev-guide#1936)
- Update bibliography.md (rust-lang/rustc-dev-guide#1912)
2024-03-25 14:35:36 -07:00
Jubilee
4856f9a42f
Rollup merge of #122950 - ShoyuVanilla:issue-101903, r=compiler-errors
Add regression tests for #101903

Closes #101903

See https://doc.rust-lang.org/1.77.0/nightly-rustc/rustc_lint/opaque_hidden_inferred_bound/static.OPAQUE_HIDDEN_INFERRED_BOUND.html#example
2024-03-25 14:35:36 -07:00
Jubilee
9775296796
Rollup merge of #122923 - kpreid:print-async-def, r=compiler-errors
In `pretty_print_type()`, print `async fn` futures' paths instead of spans.

This makes `-Zprint-type-sizes`'s output easier to read, because the name of an `async fn` is more immediately recognizable than its span. This change will also synergize with my other `-Zprint-type-sizes` PR #122922 which prints the type of child futures being awaited.

I also deleted the comment "FIXME(eddyb) should use `def_span`." because it appears to have already been fixed by commit 67727aa7c3.
2024-03-25 14:35:35 -07:00
Jubilee
cf9acea658
Rollup merge of #122896 - dpaoliello:stdarch, r=Amanieu
Update stdarch submodule

r? ```@Amanieu```
2024-03-25 14:35:35 -07:00
Jubilee
01263c45d0
Rollup merge of #122892 - lovesegfault:versioned-vendor, r=onur-ozkan
fix(bootstrap/dist): use versioned dirs when vendoring

Currently, if you attempt to run ui tests in a vendored build, you will
see this failure

```
---- [ui] tests/ui/issues/issue-21763.rs stdout ----
diff of stderr:

8          = note: required because it appears within the type `(Rc<()>, Rc<()>)`
9          = note: required for `hashbrown::raw::RawTable<(Rc<()>, Rc<()>)>` to implement `Send`
10      note: required because it appears within the type `hashbrown::map::HashMap<Rc<()>, Rc<()>, RandomState>`
-         --> $HASHBROWN_SRC_LOCATION
+         --> /rust/deps/hashbrown/src/map.rs:190:12
12      note: required because it appears within the type `HashMap<Rc<()>, Rc<()>>`
13        --> $SRC_DIR/std/src/collections/hash/map.rs:LL:COL
14      note: required by a bound in `foo`
```

This happens because the code that attempts to remap
`HASHBROWN_SRC_LOCATION` expects it to be under `hashbrown-$version`,
which is the case in a normal cargo registry, but not when vendoring, where
by default crates may not have the version in their directory name.

This change passes `--versioned-dirs` to `cargo vendor` to enforce that
every crate includes the version in the subdir name, which fixes the ui
test and brings `--enable-vendor` builds closer to normal ones.
2024-03-25 14:35:35 -07:00
Jubilee
2f8c9bd651
Rollup merge of #122769 - RalfJung:reachable, r=tmiasko
extend comments for reachability set computation

I hope this is right. :) Please review carefully.

r? ``@tmiasko``
Cc ``@oli-obk`` ``@saethlin``
2024-03-25 14:35:34 -07:00
Jubilee
c35e971ef7
Rollup merge of #122707 - reedwoodruff:string_docs_typo, r=workingjubilee
Fix a typo in the alloc::string::String docs
2024-03-25 14:35:34 -07:00
bors
5f2c7d2bfd Auto merge of #123040 - weihanglo:update-cargo, r=weihanglo
Update cargo

13 commits in d438c80c45c24be676ef5867edc79d0a14910efe..a510712d05c6c98f987af24dd73cdfafee8922e6
2024-03-19 16:11:22 +0000 to 2024-03-25 03:45:54 +0000
- Remove unnecessary test (rust-lang/cargo#13637)
- Use `gitoxide` for `list_files_git` (rust-lang/cargo#13592)
- fix: Warn on -Zlints (rust-lang/cargo#13632)
- feat: Add a basic linting system (rust-lang/cargo#13621)
- docs: remove untrue TODO for `native_dirs` (rust-lang/cargo#13631)
- refactor(testsuite): Rename lints to lints_table (rust-lang/cargo#13627)
- Fix debuginfo strip when using `--target` (rust-lang/cargo#13618)
- refactor(toml): Push diagnostic complexity on annotate-snippets (rust-lang/cargo#13619)
- Fix publish script due to crates.io CDN change (rust-lang/cargo#13614)
- fix(alias): dont panic when resolving an empty alias (rust-lang/cargo#13613)
- Update annotate snippets (rust-lang/cargo#13609)
- refactor(vendor): tiny not important refactors (rust-lang/cargo#13610)
- feat: Report some dependency changes on any command (rust-lang/cargo#13561)

r? ghost
2024-03-25 21:21:21 +00:00
Daniel Paoliello
d261647c93 Import the 2021 prelude in the core crate 2024-03-25 13:12:06 -07:00
Matthias Krüger
a3c2d752bd add test for ICE: failed to get layout for [type error] #92979
Fixes https://github.com/rust-lang/rust/issues/92979
2024-03-25 20:35:51 +01:00
Matthias Krüger
6fe555549b add test for ICE Where clause Binder(..) was applicable to Obligation(..) but now is not
Fixes https://github.com/rust-lang/rust/issues/84727
2024-03-25 20:20:01 +01:00
Matthias Krüger
5f95fc1dff add test for Compiler panic using fn_traits #81974
Fixes https://github.com/rust-lang/rust/issues/81974
2024-03-25 20:15:28 +01:00
Ralf Jung
d94f6576dd extend doc comment for reachability set computation
also extend the const fn reachability test
2024-03-25 19:57:57 +01:00
clubby789
b500693ad7 Don't emit load metadata in debug mode 2024-03-25 18:32:45 +00:00
bors
35936c4839 Auto merge of #123041 - RalfJung:miri, r=RalfJung
Miri subtree update

r? `@ghost`
2024-03-25 18:20:03 +00:00