Commit Graph

9835 Commits

Author SHA1 Message Date
Nicholas Nethercote 5e29e26b96 Remove the UntranslatableDiagnosticTrivial lint.
It's a specialized form of the `UntranslatableDiagnostic` lint that is
deny-by-default.

Now that `UntranslatableDiagnostic` has been changed from
allow-by-default to deny-by-default, the trivial variant is no longer
needed.
2024-02-28 10:53:04 +11:00
Philipp Krones ad7513e874 Merge commit '10136170fe9ed01e46aeb4f4479175b79eb0e3c7' into clippy-subtree-update 2024-02-27 15:50:17 +01:00
bors 71ffdf7ff7 Auto merge of #121655 - matthiaskrgr:rollup-qpx3kks, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - #121598 (rename 'try' intrinsic to 'catch_unwind')
 - #121639 (Update books)
 - #121648 (Update Vec and String `{from,into}_raw_parts`-family docs)
 - #121651 (Properly emit `expected ;` on `#[attr] expr`)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-02-27 00:55:14 +00:00
Matthias Krüger d95c321062 Rollup merge of #121598 - RalfJung:catch_unwind, r=oli-obk
rename 'try' intrinsic to 'catch_unwind'

The intrinsic has nothing to do with `try` blocks, and corresponds to the stable `catch_unwind` function, so this makes a lot more sense IMO.

Also rename Miri's special function while we are at it, to reflect the level of abstraction it works on: it's an unwinding mechanism, on which Rust implements panics.
2024-02-27 00:40:00 +01:00
bors 5c786a7fe3 Auto merge of #121516 - RalfJung:platform-intrinsics-begone, r=oli-obk
remove platform-intrinsics ABI; make SIMD intrinsics be regular intrinsics

`@Amanieu` `@workingjubilee` I don't think there is any reason these need to be "special"? The [original RFC](https://rust-lang.github.io/rfcs/1199-simd-infrastructure.html) indicated eventually making them stable, but I think that is no longer the plan, so seems to me like we can clean this up a bit.

Blocked on https://github.com/rust-lang/stdarch/pull/1538, https://github.com/rust-lang/rust/pull/121542.
2024-02-26 22:24:16 +00:00
bors 829308e9af Auto merge of #121636 - matthiaskrgr:rollup-1tt2o5n, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #121389 (llvm-wrapper: fix few warnings)
 - #121493 (By changing some attributes to only_local, reducing encoding attributes in the crate metadate.)
 - #121615 (Move `emit_stashed_diagnostic` call in rustfmt.)
 - #121617 (Actually use the right closure kind when checking async Fn goals)
 - #121628 (Do not const prop unions)
 - #121629 (fix some references to no-longer-existing ReprOptions.layout_seed)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-02-26 17:14:13 +00:00
Matthias Krüger 9d5ab73523 Rollup merge of #121615 - nnethercote:fix-121517, r=oli-obk
Move `emit_stashed_diagnostic` call in rustfmt.

This call was added to `parse_crate_mod` in #121487, to fix a case where a stashed diagnostic wasn't emitted. But there is another path where a stashed diagnostic might fail to be emitted if there's a parse error, if the `build` call in `parse_crate_inner` fails before `parse_crate_mod` is reached.

So this commit moves the `emit_stashed_diagnostic` call outwards, from `parse_crate_mod` to `format_project`, just after the `Parser::parse_crate` call. This should be far out enough to catch any parsing errors.

Fixes #121517.

r? `@oli-obk`
cc `@ytmimi`
2024-02-26 16:06:03 +01:00
bors b79db437dc Auto merge of #120586 - ShE3py:exprkind-err, r=fmease
Add `ErrorGuaranteed` to `ast::ExprKind::Err`

See #119967 for context
```
      \
       \
          _~^~^~_
      \) /  o o  \ (/
        '_   -   _'
        / '-----' \
```

r? fmease
2024-02-26 14:43:15 +00:00
Ralf Jung a3c0f3af9c miri: rename miri_start_panic → miri_start_unwind 2024-02-26 11:10:18 +01:00
Ralf Jung b4ca582b89 rename 'try' intrinsic to 'catch_unwind' 2024-02-26 11:10:18 +01:00
Guillaume Gomez 0e08be5360 Rollup merge of #120656 - Zalathar:filecheck-flags, r=wesleywiser
Allow tests to specify a `//@ filecheck-flags:` header

This allows individual codegen/assembly/mir-opt tests to pass extra flags to the LLVM `filecheck` tool as needed.

---

The original motivation was noticing that `tests/run-make/instrument-coverage` was very close to being an ordinary codegen test, except that it needs some extra logic to set up platform-specific variables to be passed into filecheck.

I then saw the comment in `verify_with_filecheck` indicating that a `filecheck-flags` header might be useful for other purposes as well.
2024-02-26 10:27:41 +01:00
Nicholas Nethercote bf7d1b54e8 Move emit_stashed_diagnostic call in rustfmt.
This call was added to `parse_crate_mod` in #121487, to fix a case where
a stashed diagnostic wasn't emitted. But there is another path where a
stashed diagnostic might fail to be emitted if there's a parse error, if
the `build` call in `parse_crate_inner` fails before `parse_crate_mod`
is reached.

So this commit moves the `emit_stashed_diagnostic` call outwards, from
`parse_crate_mod` to `format_project`, just after the
`Parser::parse_crate` call. This should be far out enough to catch any
parsing errors.

Fixes #121517.
2024-02-26 10:45:45 +11:00
Lieselotte c440a5b814 Add ErrorGuaranteed to ast::ExprKind::Err 2024-02-25 22:24:31 +01:00
Lieselotte a3fce72a27 Add ast::ExprKind::Dummy 2024-02-25 22:22:09 +01:00
bors b0d3e04ca9 Auto merge of #120393 - Urgau:rfc3373-non-local-defs, r=WaffleLapkin
Implement RFC 3373: Avoid non-local definitions in functions

This PR implements [RFC 3373: Avoid non-local definitions in functions](https://github.com/rust-lang/rust/issues/120363).
2024-02-25 19:11:06 +00:00
bors 34aab623dd Auto merge of #121337 - ChrisDenton:ProcessPrng, r=Mark-Simulacrum
Windows: Use ProcessPrng for random keys

Windows 10 introduced [`ProcessPrng`](https://learn.microsoft.com/en-us/windows/win32/seccng/processprng) for random number generation. This allows us to replace the overly complicated (and prone to failure) `BCryptGenRandom` with a documented function.

For the tier 3 Windows 7 target, we simply use the older `RtlGenRandom`, which is undocumented. It should be fine even on modern systems (for comparability reasons) as it's just a wrapper for `ProcessPrng`. However, it does require loading an extra intermediary DLL which we can avoid when we know we have Windows 10+.
2024-02-25 14:18:46 +00:00
Chris Denton 8f89cbd796 Add ProcessPrng shim to Miri
This is essentially the same as SystemFunction036 (aka RtlGenRandom) except that the given length is a usize instead of a u32
2024-02-25 10:13:43 -03:00
bors 26cd5d862e Auto merge of #118724 - onur-ozkan:refactor-x-install, r=Mark-Simulacrum
speed up `x install` by skipping archiving and compression

Performing archiving and compression on `x install` is nothing more than a waste of time and resources. Additionally, for systems like gentoo(which uses `x install`) this should be highly beneficial.

[benchmark report](https://github.com/rust-lang/rust/pull/118724#issuecomment-1848964908)

Resolves #109308

r? Mark-Simulacrum (I think you want to review this, feel free to change it if otherwise.)
2024-02-25 12:19:55 +00:00
bors 43fdd4916d Auto merge of #121581 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2024-02-25 10:20:20 +00:00
bors 710048f790 Auto merge of #121579 - RalfJung:miri, r=RalfJung
Miri subtree update

r? `@ghost`
2024-02-25 08:20:01 +00:00
Laurențiu Nicola 5ee6a5d704 Avoid using cfg(FALSE) 2024-02-25 09:58:11 +02:00
Laurențiu Nicola 9caeabe2e2 Add missing imports 2024-02-25 09:56:19 +02:00
Laurențiu Nicola 4a2588a973 Merge commit '4a8d0f7f565b6df45da5522dd7366a4df3460cd7' into sync-from-ra 2024-02-25 09:45:26 +02:00
Ralf Jung c1d0e489e5 fix use of platform_intrinsics in tests 2024-02-25 08:15:44 +01:00
bors 55dcf9c0ce Auto merge of #3318 - RalfJung:compiletest-rebuilds, r=oli-obk
compiletest: call cargo-miri directly rather than via 'cargo run'

Fixes https://github.com/rust-lang/miri/issues/3297. Thanks to `@bjorn3` for figuring out the cause of this.

r? `@oli-obk`
2024-02-24 19:46:12 +00:00
bors 4db9a3652a Auto merge of #3312 - RossSmyth:miri-clean, r=RalfJung
Add "cargo miri clean" command

My first reaction when my miri cache was messed up was to attempt run this, which obviously failed. This helps paper over platform differences and such.
2024-02-24 18:00:29 +00:00
Ralf Jung cd36cda60c compiletest: call cargo-miri directly rather than via 'cargo run' 2024-02-24 18:27:38 +01:00
Ross Smyth 3e7c2e1f6d Add "cargo miri clean" command 2024-02-24 11:58:40 -05:00
bors 2f1c9db3cf Auto merge of #3316 - RossSmyth:windows-script, r=RalfJung
Windows miri-script execution egronomics

This allows for Windows users to use miri-script without pain. As working on miri earlier I was doing
`.\miri-script\target\debug\miri-script.exe { install | build | ... }` which wasn't fun.
2024-02-24 16:30:37 +00:00
Ross Smyth c7be4439ad Windows miri-script execution egronomics
This allows for Windows users to use miri-script without pain
2024-02-24 11:16:15 -05:00
Matthias Krüger d978a1c671 Rollup merge of #121531 - saethlin:ignore-less-debug, r=compiler-errors
Ignore less tests in debug builds

Since https://github.com/rust-lang/rust/pull/120594 and https://github.com/rust-lang/rust/pull/120863, nearly all UB-detecting debug assertions get compiled out of code that is monomorphized by a crate built with debug assertions disabled.

Which means that if we default all our codegen tests to `-Cdebug-assertions=no`, most of them work just fine against a sysroot built with debug assertions.

I also tried to explain a bit better why some tests need to be skipped, for those that still need to be skipped.
2024-02-24 15:35:14 +01:00
Matthias Krüger b87a713b9d Rollup merge of #121522 - RalfJung:insert-extract-boundscheck, r=oli-obk
check that simd_insert/extract indices are in-bounds

Fixes https://github.com/rust-lang/rust/issues/77477
r? `@oli-obk`
2024-02-24 15:35:14 +01:00
Ben Kimock 2f3c0b9859 Ignore less tests in debug builds 2024-02-23 18:04:01 -05:00
bors 40dc2b4bd2 Auto merge of #3314 - RalfJung:up, r=RalfJung
cargo update
2024-02-23 19:21:01 +00:00
Ralf Jung 7bc0435c9a cargo update 2024-02-23 20:19:00 +01:00
Ralf Jung 134e2b2056 interpret: do no ICE on OOB shuffle/insert/extract indices 2024-02-23 19:43:59 +01:00
Pavel Grigorenko 58c8c0853f Get rid of some #[allow(static_mut_refs)] 2024-02-23 18:02:25 +03:00
bors 52cea084bd Auto merge of #121491 - matthiaskrgr:rollup-wkzqawy, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #121434 (Fix #121208 fallout)
 - #121471 (When encountering `<&T as Clone>::clone(x)` because `T: Clone`, suggest `#[derive(Clone)]`)
 - #121476 (remove `llvm.assertions=true` in compiler profile)
 - #121479 (fix generalizer unsoundness)
 - #121480 (Fix more #121208 fallout)
 - #121482 (Allow for a missing `adt_def` in `NamePrivacyVisitor`.)
 - #121484 (coverage: Use variable name `this` in `CoverageGraph::from_mir`)
 - #121487 (Explicitly call `emit_stashed_diagnostics`.)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-02-23 12:12:49 +00:00
Matthias Krüger 6ee43bc7de Rollup merge of #121487 - nnethercote:fix-121450, r=oli-obk
Explicitly call `emit_stashed_diagnostics`.

Commit 72b172b in #121206 changed things so that
`emit_stashed_diagnostics` is only called from `run_compiler`. But rustfmt doesn't use `run_compiler`, so it needs to call `emit_stashed_diagnostics` itself to avoid an abort in `DiagCtxtInner::drop` when stashed diagnostics occur.

Fixes #121450.

r? `@oli-obk`
2024-02-23 09:42:14 +01:00
bors 6dadb6eb23 Auto merge of #121448 - klensy:bump-22-02-24, r=clubby789
bump few deps

Bumps `sysinfo`, `tabled`; dedupes `env_logger`; drops `is-terminal`
https://github.com/zhiburt/tabled/blob/v0.15.1/CHANGELOG.md
https://github.com/GuillaumeGomez/sysinfo/blob/v0.30.5/CHANGELOG.md
2024-02-23 07:42:50 +00:00
bors dda102c190 Auto merge of #121432 - mj10021:issue-119851-fix, r=nnethercote
Move as many tests from tests/ui/numbers-arithmetic to tests/ui/lint as possible

Fixes #119851 , and also consolidates as many individual tests as possible from numbers-arithmetic.  I might have moved the tests in too aggressively, so let me know
2024-02-23 05:42:20 +00:00
Nicholas Nethercote 41da3d6f2f Explicitly call emit_stashed_diagnostics.
Commit 72b172b in #121206 changed things so that
`emit_stashed_diagnostics` is only called from `run_compiler`. But
rustfmt doesn't use `run_compiler`, so it needs to call
`emit_stashed_diagnostics` itself to avoid an abort in
`DiagCtxtInner::drop` when stashed diagnostics occur.

Fixes #121450.
2024-02-23 16:09:51 +11:00
Zalathar baec3076db Allow tests to specify a //@ filecheck-flags: header
Any flags specified here will be passed to LLVM's `filecheck` tool, in tests
that use that tool.
2024-02-23 11:28:06 +11:00
Zalathar 1e432dd9f4 Simplify existing code for setting filecheck flags
This removes a version check for LLVM >=13, and specifies prefixes as a series
of independent `--check-prefix` flags instead of a single `--check-prefixes`.
2024-02-23 11:27:39 +11:00
许杰友 Jieyou Xu (Joe) be94059be9 Update tidy target_specific_tests to account for //@ directives 2024-02-22 16:04:03 +00:00
许杰友 Jieyou Xu (Joe) 95f4d4da43 Update tidy target_policy to account for //@ directives 2024-02-22 16:04:03 +00:00
许杰友 Jieyou Xu (Joe) 90a189c19b Update compiletest to only accept //@ directives 2024-02-22 16:04:03 +00:00
许杰友 Jieyou Xu (Joe) 0840502351 Update list of known directive names for diagnostics 2024-02-22 16:04:03 +00:00
James Dietz 669f891845 remove exception 2024-02-22 10:04:20 -05:00
klensy 53efefb3c2 dedupe env_logger, drop is-terminal 2024-02-22 14:35:21 +03:00