Commit Graph

250082 Commits

Author SHA1 Message Date
Nicholas Nethercote
82a609f9a6 Shrink the comment on TokenTree.
It uses very old language that is more confusing today than helpful,
including references to `SubstNt` that no longer exists. The comment
above `TokenStream` is better, and suffices for a basic understanding of
these types.
2024-03-21 10:18:34 +11:00
Nicholas Nethercote
a94bb2a013 Streamline NamedMatch.
This commit combines `MatchedTokenTree` and `MatchedNonterminal`, which
are often considered together, into a single `MatchedSingle`. It shares
a representation with the newly-parameterized `ParseNtResult`.

This will also make things much simpler if/when variants from
`Interpolated` start being moved to `ParseNtResult`.
2024-03-21 10:18:34 +11:00
Nicholas Nethercote
b7f3b714da Remove non-useful code path.
It has no effect on anything in the test suite.
2024-03-21 10:18:34 +11:00
Nicholas Nethercote
dbed10a6a2 Fix out-of-date comment. 2024-03-21 10:18:34 +11:00
Nicholas Nethercote
c14d9ae23e Fix some formatting. 2024-03-21 10:18:34 +11:00
Nicholas Nethercote
095722214d Use better variable names in some maybe_whole! calls. 2024-03-21 10:18:34 +11:00
Nicholas Nethercote
0de050bd6d Use maybe_whole! to streamline parse_stmt_without_recovery. 2024-03-21 10:18:33 +11:00
Nicholas Nethercote
d4ad322b5d Use maybe_whole! to streamline parse_item_common.
This requires changing `maybe_whole!` so it allows the value to be
modified.
2024-03-21 10:18:28 +11:00
Nicholas Nethercote
8ac16c6193 Rewrite parse_meta_item.
It can't use `maybe_whole`, but it can match `maybe_whole` more closely.

Also add a test for a case that wasn't previously covered.
2024-03-21 10:16:09 +11:00
Celina G. Val
5f6257429d Enable users to dump the body of an instance 2024-03-20 16:00:00 -07:00
Celina G. Val
ff504a09fe Improve emit stable mir body 2024-03-20 15:55:35 -07:00
Nicholas Nethercote
d919dbe370 Use maybe_whole! to streamline parse_attr_item. 2024-03-21 09:00:26 +11:00
Nicholas Nethercote
b9ead994b3 Rename Token::is_path.
This makes it consistent with `is_whole_expr` and `is_whole_block`.
2024-03-21 09:00:26 +11:00
Nicholas Nethercote
099e716502 Factor out tt pushes. 2024-03-21 09:00:25 +11:00
Alex Crichton
a400dac8ca Inherit RUSTC_BOOTSTRAP when testing wasm
This is implemented with the freshly-released Wasmtime 19 and should
prevent beta breakage from wasm tests that was observed and fixed
in #122640 again.
2024-03-20 14:42:30 -07:00
bors
1388d7a069 Auto merge of #122761 - jwong101:fix/vec-insert, r=workingjubilee,Nilstrieb
fix OOB pointer formed in Vec::index

Move the length check to before using `index` with `ptr::add` to prevent an out of bounds pointer from being formed.

Fixes #122760
2024-03-20 21:37:30 +00:00
Nadrieril
120d3570aa Add barest-bones deref patterns
Co-authored-by: Deadbeef <ent3rm4n@gmail.com>
2024-03-20 22:30:27 +01:00
Martin Nordholts
c3cc6c1990 compiletest: Introduce remove_and_create_dir_all() helper
The code

    let _ = fs::remove_dir_all(&dir);
    create_dir_all(&dir).unwrap();

is duplicated in 7 places. Let's introduce a helper.
2024-03-20 20:28:30 +01:00
bors
e3df96cfda Auto merge of #122779 - estebank:test-svg-non-determinism, r=compiler-errors
When comparing SVG tests against their blessed version, ignore the first line

`anstyle_svg` has some weird non-determinism in the width parameter, which makes tests blessed in one environment to fail in another. This is the *only* non-determinism detected so far, so we modify the diff check to ignore the first line of the SVG. In order for a test to fail/be updated by `--bless`, a different part of the file needs to also have changed. If other sources of non-determinism are found, we should back out of the "`--color=always` means `.svg`" change.

r? `@compiler-errors`
2024-03-20 18:47:34 +00:00
The 8472
3ff1e448e7 select Vec::from_iter impls in a const block to optimize compile times 2024-03-20 19:26:38 +01:00
Martin Nordholts
352587af44 compiletest: mir_dump_dir.as_path() -> &mir_dump_dir 2024-03-20 19:24:18 +01:00
Ali MJ Al-Nasrawy
0dc006b3a8 register opaques that reference errors 2024-03-20 17:30:19 +00:00
Ali MJ Al-Nasrawy
19e0ea4a6d make type_flags(ReError) & HAS_ERROR 2024-03-20 17:29:58 +00:00
Michael Goulet
ce5f8c93fa Bless test fallout (duplicate diagnostics) 2024-03-20 13:00:34 -04:00
Michael Goulet
aa39dbb962 Split item bounds and item super predicates 2024-03-20 13:00:34 -04:00
Alex Macleod
a8452461dc Ignore paths from expansion in unused_qualifications 2024-03-20 16:30:26 +00:00
Esteban Küber
bf63f7eefe When comparing SVG tests against their blessed version, ignore the first line
`anstyle_svg` has some weird non-determinism in the width parameter, which makes tests blessed in one environment to fail in another. This is the *only* non-determinism detected so far, so we modify the diff check to ignore the first line of the SVG. In order for a test to fail/be updated by `--bless`, a different part of the file needs to also have changed.
2024-03-20 16:25:29 +00:00
Guillaume Gomez
98e66553a6 Rename hir::Let into hir::LetExpr 2024-03-20 16:47:11 +01:00
bors
94b72d6beb Auto merge of #122359 - Zoxc:missing-static-notes, r=wesleywiser
Print the crates not available as static

This prints out the crates not available to be statically linked when static linking is preferred and we run into an error with duplicated crates.
2024-03-20 15:46:15 +00:00
Roy Buitenhuis
2fca27cd3b Add bare metal riscv32 target. 2024-03-20 16:02:10 +01:00
Mara Bos
34621757ea SeqCst->Relaxed in condvar test.
Relaxed is enough here. Synchronization is done by the mutex.
2024-03-20 15:38:09 +01:00
Mara Bos
acddc55748 SeqCst->Relaxed in thread local test.
Relaxed memory ordering is fine because spawn()/join() already provides
all the synchronization we need.
2024-03-20 15:38:09 +01:00
Mara Bos
b45a725cbc SeqCst->Relaxed in std::net::test.
Relaxed is enough to have fetch_add(1) return each value only once
(until it wraps around).
2024-03-20 15:35:13 +01:00
Mara Bos
8b519f98e2 Use less restricted memory ordering in xous::thread_local_key.
SeqCst isn't necessary in any of these cases.
2024-03-20 15:35:11 +01:00
bors
a128516cf9 Auto merge of #122754 - Mark-Simulacrum:bootstrap-bump, r=albertlarsan68
Bump to 1.78 bootstrap compiler

https://forge.rust-lang.org/release/process.html#master-bootstrap-update-t-2-day-tuesday
2024-03-20 13:43:41 +00:00
Mark Rousskov
9a22a0fdab Fix bootstrap bump fallout 2024-03-20 08:49:13 -04:00
Mark Rousskov
283db5abfc Workaround for rustdoc bug in new beta
Filed #122758 to track a proper fix, but this seems to solve the
problem in the meantime and is probably OK in terms of impact on
(internal) doc quality.
2024-03-20 08:49:13 -04:00
Mark Rousskov
02f1930595 step cfgs 2024-03-20 08:49:13 -04:00
Tshepang Mbambo
3e8ff90935 make "expected paren or brace" error translatable 2024-03-20 14:31:05 +02:00
bors
c86f3ac24f Auto merge of #120717 - compiler-errors:cap-closure-kind, r=oli-obk
For async closures, cap closure kind, get rid of `by_mut_body`

Right now we have three `AsyncFn*` traits, and three corresponding futures that are returned by the `call_*` functions for them. This is fine, but it is a bit excessive, since the future returned by `AsyncFn` and `AsyncFnMut` are identical. Really, the only distinction we need to make with these bodies is "by ref" and "by move".

This PR removes `AsyncFn::CallFuture` and renames `AsyncFnMut::CallMutFuture` to `AsyncFnMut::CallRefFuture`. This simplifies MIR building for async closures, since we don't need to build an extra "by mut" body, but just a "by move" body which is materially different.

We need to do a bit of delicate handling of the ClosureKind for async closures, since we need to "cap" it to `AsyncFnMut` in some cases when we only care about what body we're looking for.

This also fixes a bug where `<{async closure} as Fn>::call` was returning a body that takes the async-closure receiver *by move*.

This also helps align the `AsyncFn` traits to the `LendingFn` traits' eventual designs.
2024-03-20 11:40:45 +00:00
Nikita Popov
022e42db00 Update to LLVM 18.1.2 2024-03-20 12:26:19 +01:00
Ralf Jung
0cb1065d7e collector: move functions around so that the 'root collection' section really only has root collection things under it 2024-03-20 11:57:27 +01:00
Ralf Jung
feeffaeff9 mentioned_items: avoid adding str/slice unsizing casts 2024-03-20 11:16:11 +01:00
Ralf Jung
682991d2c7 explicitly set opt-level=0 2024-03-20 11:07:12 +01:00
Ralf Jung
0d6a16ac4b mentioned_items: record all callee and coerced closure types, whether they are FnDef/Closure or not
They may become FnDef during monomorphization!
2024-03-20 11:07:12 +01:00
Ralf Jung
f1ec494c32 mentioned items: also handle closure-to-fn-ptr coercions 2024-03-20 11:07:12 +01:00
Ralf Jung
347ca50bc8 mentioned items: also handle vtables 2024-03-20 11:07:12 +01:00
Ralf Jung
ee4b758161 avoid processing mentioned items that are also still used 2024-03-20 11:07:12 +01:00
Ralf Jung
91b35a1b40 fix comments in required-consts tests 2024-03-20 11:07:12 +01:00
Ralf Jung
712fe36611 collector: recursively traverse 'mentioned' items to evaluate their constants 2024-03-20 11:07:12 +01:00