Commit graph

17981 commits

Author SHA1 Message Date
Jana Dönszelmann
867b4c9e48
Test that names of variables in external macros are not shown on a borrow error 2025-05-02 18:09:25 +02:00
bors
f97b3c6044 Auto merge of #139883 - matthiaskrgr:crashesapr15, r=Mark-Simulacrum
crashes: more tests

try-job: aarch64-apple
try-job: x86_64-msvc-1
try-job: x86_64-gnu
try-job: dist-i586-gnu-i586-i686-musl
try-job: test-various
2025-05-02 10:46:51 +00:00
Guillaume Gomez
84ac890ef5
Rollup merge of #140552 - folkertdev:naked-function-rustc_std_internal_symbol, r=bjorn3
allow `#[rustc_std_internal_symbol]` in combination with `#[naked]`

The need for this came up in https://github.com/rust-lang/compiler-builtins/pull/897, but in general this seems useful and valid to allow.

Based on a quick scan, I don't think changes to the generated assembly are needed.

cc ``@bjorn3``
2025-05-01 22:27:25 +02:00
Guillaume Gomez
6cb75d88eb
Rollup merge of #140544 - m-ou-se:format-args-const-cleanup, r=fee1-dead
Clean up "const" situation in format_args!().

This cleans up the "const" situation in the format_args!() expansion/lowering.

Rather than marking the Argument::new_display etc. functions as non-const, this marks the Arguments::new_v1 functions as non-const.

Example expansion/lowering of format_args!() in const:

```rust
// Error: cannot call non-const formatting macro in constant functions
const {
    fmt::Arguments::new_v1( // Now the error is produced here.
        &["Hello, ", "!\n"],
        &[
            fmt::Argument::new_display(&world) // The error used to be produced here.
        ],
    )
}
```
2025-05-01 22:27:24 +02:00
Guillaume Gomez
9d7d782e50
Rollup merge of #140460 - heiher:issue-140455, r=Urgau
Fix handling of LoongArch target features not supported by LLVM 19

Fixes #140455
2025-05-01 22:27:23 +02:00
Guillaume Gomez
96faee497a
Rollup merge of #140420 - fmease:rustdoc-fix-doctest-heur, r=GuillaumeGomez
rustdoc: Fix doctest heuristic for main fn wrapping

Fixes #140412 which regressed in #140220 that I reviewed. As mentioned in https://github.com/rust-lang/rust/pull/140220#issuecomment-2837061779, at the time I didn't have the time to re-review its latest changes and should've therefore invalided my previous "r=me" and blocked the PR on another review given the fragile nature of the doctest impl. This didn't happen which is my fault.

Contains some other small changes. Diff best reviewed modulo whitespace.
r? ``@GuillaumeGomez``
2025-05-01 22:27:23 +02:00
Matthias Krüger
c1f2ad2d16 crashes: more tests 2025-05-01 17:04:37 +02:00
Folkert de Vries
5d308148aa
allow #[rustc_std_internal_symbol] in combination with #[naked] 2025-05-01 16:26:26 +02:00
Mara Bos
86c6e7911d Bless pretty tests. 2025-05-01 12:31:44 +02:00
Mara Bos
ce50b4fd9d Bless mir opt tests. 2025-05-01 12:29:43 +02:00
León Orell Valerian Liehr
714ea10ea4
rustdoc: Fix doctest heuristic for main fn wrapping 2025-05-01 11:56:11 +02:00
Mara Bos
36c6633b0f Clean up "const" situation in format_args!().
Rather than marking the Argument::new_display etc. functions as
non-const, this marks the Arguments::new_v1 functions as non-const.
2025-05-01 11:55:23 +02:00
WANG Rui
482ad5c51e Remove redundant min-llvm-version annotations for LoongArch tests 2025-05-01 08:50:14 +08:00
Matthias Krüger
1ce06013fb
Rollup merge of #140481 - dpaoliello:reqasan, r=wesleywiser
Require sanitizers be enabled for asan_odr_windows.rs

Issue Details:
The `asan_odr_windows.rs` test is failing on AArch64 Windows, as sanitizers aren't supported on that platform.

Fix Details:
Apply the correct "need sanitizer" requirements to the test.
2025-04-30 22:36:43 +02:00
Matthias Krüger
051e94e60c
Rollup merge of #140476 - mejrs:test3, r=jieyouxu
chore: delete unused ui/auxiliary crates

It appears that all the tests that used it have been moved to tests/ui/editions/ (or elsewhere) already.

r? `````@jieyouxu`````
2025-04-30 22:36:42 +02:00
Matthias Krüger
372b15e55e
Rollup merge of #140467 - BoxyUwU:no_fcw_assoc_consts, r=lcnr
Don't FCW assoc consts in patterns

Fixes #140447

See comment in added test. We could also check that the anon const is a const arg by looking at the HIR. I'm not sure that's necessary though 🤔 The only consts that are evaluated "for the type system" are const args (which *should* get FCWs) and const patterns (which cant be anon consts afaik).
2025-04-30 22:36:40 +02:00
Matthias Krüger
6769d32316
Rollup merge of #140465 - mejrs:test2, r=jieyouxu
chore: edit and move tests

I deleted `ui/non-copyable-void.rs`: added in ab4105d9e8 to test that "nonconstructable" enums are "noncopyable", but these properties are not correlated anymore.

Second commit is kinda messy because I moved/edited/renamed some files at the same time, but I deleted nothing there.
2025-04-30 22:36:40 +02:00
Matthias Krüger
3648f3aa77
Rollup merge of #140458 - azhogin:azhogin/async-drop-fix-dropped-tuple-ice, r=oli-obk
Fix for async drop ice with partly dropped tuple

Fixes https://github.com/rust-lang/rust/issues/140427.
Problem was with block data access with block id from new added blocks in patch.
2025-04-30 22:36:39 +02:00
Matthias Krüger
62a48cd9c3
Rollup merge of #140504 - tmiasko:answer-ensure-stack, r=jswrenn
transmutability: ensure_sufficient_stack when answering query

Based on #140380.

Fixes #118860. The compile time was addressed earlier, this merely addresses stack overflow part of the issue.

r? `@jswrenn` `@joshlf`
2025-04-30 17:28:01 +02:00
Matthias Krüger
ce9fc4a9e9
Rollup merge of #140450 - petrochenkov:vistok, r=nnethercote
ast: Remove token visiting from AST visitor

It's no longer necessary after the removal of nonterminal tokens in #124141.

r? `@nnethercote`
2025-04-30 17:28:00 +02:00
Matthias Krüger
1a64f2c461
Rollup merge of #140203 - Wyliodrin:error_for_no_mangle_weak_language_items, r=bjorn3
Issue an error when using `no_mangle` on language items

This pull requests adds the code to issue an error or a warning when using `no_mangle` on language items. This should detail why the `undefined symbol` error is issued for the code described in #139923.

The pull request adds two ui tests, one testing the error and the other one the warning.

I would love some feedback here, as I am not sure that the error and warning are issues using the right API.
2025-04-30 17:27:59 +02:00
Matthias Krüger
230215f890
Rollup merge of #140090 - Urgau:snake_case-fn-var, r=petrochenkov
Check bare function idents for non snake-case name

This PR adds the check required to lint on bare function idents for non snake-case name.

Reported at #140089.
cc `@theemathas`
2025-04-30 17:27:58 +02:00
Matthias Krüger
bc99a045cb
Rollup merge of #139624 - m-ou-se:unconst-format-args, r=jhpratt
Don't allow flattened format_args in const.

Fixes https://github.com/rust-lang/rust/issues/139136

Fixes https://github.com/rust-lang/rust/issues/139621

We allow `format_args!("a")` in const, but don't allow any format_args with arguments in const, such as `format_args!("{}", arg)`.

However, we accidentally allow `format_args!("hello {}", "world")` in const, as it gets flattened to `format_args!("hello world")`.

This also applies to panic in const.

This wasn't supposed to happen. I added protection against this in the format args flattening code, ~~but I accidentally marked a function as const that shouldn't have been const~~ but this was removed in https://github.com/rust-lang/rust/pull/135139.

This is a breaking change. The crater found no breakage, however.

This breaks things like:

```rust
const _: () = if false { panic!("a {}", "a") };
```

and

```rust
const F: std::fmt::Arguments<'static> = format_args!("a {}", "a");
```
2025-04-30 17:27:57 +02:00
bors
7188f45311 Auto merge of #140503 - matthiaskrgr:rollup-n7zigts, r=matthiaskrgr
Rollup of 11 pull requests

Successful merges:

 - #136160 (Remove backticks from `ShouldPanic::YesWithMessage`'s `TrFailedMsg`)
 - #139059 (uses_power_alignment: wording tweaks)
 - #139192 (mention provenance in the pointer::wrapping_offset docs)
 - #140312 (Improve pretty-printing of braces)
 - #140404 (rm `TypeVistable` impls for `Canonical`)
 - #140437 (enable msa feature for mips in codegen tests)
 - #140438 (Add `rust.debug-assertions-tools` option)
 - #140439 (miri: algebraic intrinsics: bring back float non-determinism)
 - #140445 (Treat ManuallyDrop as ~const Destruct)
 - #140446 (chore: fix some tests)
 - #140448 (Rename `rustc_query_append!` to `rustc_with_all_queries!`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-30 12:09:10 +00:00
Alexandru RADOVICI
07c7e5ffb3 error when using no_mangle on language items
add suggestion on how to add a panic breakpoint

Co-authored-by: Pat Pannuto <pat.pannuto@gmail.com>
delete no_mangle from ui/panic-handler/panic-handler-wrong-location test

issue an error for the usage of #[no_mangle] on internal language items

delete the comments

add newline

rephrase note

Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>
update error not to leak implementation details

delete no_mangle_span

Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>
delete commented code
2025-04-30 14:54:10 +03:00
Mara Bos
56426db0b6 Add test for format_args!("{}", 0) in const. 2025-04-30 13:18:21 +02:00
Matthias Krüger
89ad574330
Rollup merge of #140446 - mejrs:test1, r=jieyouxu
chore: fix some tests
2025-04-30 10:18:29 +02:00
Matthias Krüger
9625096d2c
Rollup merge of #140445 - oli-obk:const-manually-drop, r=fee1-dead
Treat ManuallyDrop as ~const Destruct

cc https://github.com/rust-lang/rust/issues/133214#issuecomment-2838078133

r? ```@compiler-errors```

cc ```@fee1-dead```
2025-04-30 10:18:28 +02:00
Matthias Krüger
bb037805c1
Rollup merge of #140437 - husqvarnagroup:af/codegen-test-mips-msa, r=jieyouxu
enable msa feature for mips in codegen tests

Fix codegen unit tests for mips by enabling the msa target feature.
2025-04-30 10:18:27 +02:00
Matthias Krüger
56e01fe1a4
Rollup merge of #140312 - nnethercote:DelimArgs-spacing, r=petrochenkov
Improve pretty-printing of braces

r? ````@petrochenkov````
2025-04-30 10:18:26 +02:00
Matthias Krüger
bd3e4474a6
Rollup merge of #136160 - ShE3py:should-panic-backticks, r=thomcc
Remove backticks from `ShouldPanic::YesWithMessage`'s `TrFailedMsg`

More legible imo
```rs
#[test]
#[should_panic = "love"]
fn foo() {
    assert!(1 == 2);
}
```
Before:
```
note: panic did not contain expected string
      panic message: `"assertion failed: 1 == 2"`,
 expected substring: `"love"`
```
After:
```
note: panic did not contain expected string
      panic message: "assertion failed: 1 == 2"
 expected substring: "love"
```
Also removed the comma as `assert_eq!` / `assert_ne!` don't use one.

``@rustbot`` label +A-libtest
2025-04-30 10:18:24 +02:00
Vadim Petrochenkov
20faf8532b compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
Vadim Petrochenkov
6668d13de2 ast: Remove token visiting from AST visitor
It's no longer necessary after the removal of nonterminal tokens in #124141.
2025-04-30 10:36:03 +03:00
bors
427288b3ce Auto merge of #140188 - nnethercote:streamline-format-macro, r=cuviper
Streamline the `format` macro.

Removing the unnecessary local variable speeds up compilation a little.

r? `@cuviper`
2025-04-30 04:04:21 +00:00
Tomasz Miąsko
88a86794b9 transmutability: uninit transition matches unit byte only
The previous implementation was inconsistent about transitions that
apply for an init byte. For example, when answering a query, an init
byte could use corresponding init transition. Init byte could also use
uninit transition, but only when the corresponding init transition was
absent. This behaviour was incompatible with DFA union construction.

Define an uninit transition to match an uninit byte only and update
implementation accordingly. To describe that `Tree::uninit` is valid
for any value, build an automaton that accepts any byte value.

Additionally, represent byte ranges uniformly as a pair of integers to
avoid special case for uninit byte.
2025-04-29 20:42:43 +02:00
Daniel Paoliello
c3befaa8ff Require sanitizers be enabled for asan_odr_windows.rs 2025-04-29 10:55:22 -07:00
Boxy
be906131de Don't FCW assoc consts in patterns 2025-04-29 18:41:42 +01:00
mejrs
9b33cea260 Delete unused ui/auxiliary crates 2025-04-29 18:42:10 +02:00
Trevor Gross
a20fe8ff23
Rollup merge of #139909 - oli-obk:or-patterns, r=BoxyUwU
implement or-patterns for pattern types

These are necessary to represent `NonZeroI32`, as the range for that is `..0 | 1..`. The `rustc_scalar_layout_range_*` attributes avoided this by just implementing wraparound and having a single `1..=-1` range effectively. See https://rust-lang.zulipchat.com/#narrow/channel/481660-t-lang.2Fpattern-types/topic/.60or.20pattern.60.20representation.20in.20type.20system/with/504217694 for some background discussion

cc https://github.com/rust-lang/rust/issues/123646

r? `@BoxyUwU`
2025-04-29 12:28:22 -04:00
mejrs
a917de445b Move tests from /ui directory 2025-04-29 18:19:26 +02:00
Andrew Zhogin
cce706ec3c Fix for async drop ice with partly dropped tuple 2025-04-29 21:41:15 +07:00
mejrs
1f2b71e072 Delete "nonconstructable" enums are "noncopyable" test 2025-04-29 15:50:58 +02:00
mejrs
a4ce307c01 Coalesce duplicate missing clone tests 2025-04-29 12:46:26 +02:00
Oli Scherer
a1c70590b2 Treat ManuallyDrop as ~const Destruct 2025-04-29 10:39:54 +00:00
Oli Scherer
923ca85a18 Add test 2025-04-29 10:28:10 +00:00
mejrs
fc2cd77e11 Fix comment describing what the test does 2025-04-29 12:19:55 +02:00
mejrs
478b3789ce Move on impl position test to proper directory 2025-04-29 12:19:29 +02:00
Adrian Friedli
cf12e290fd enable msa feature for mips in codegen tests 2025-04-29 10:20:25 +02:00
bors
4c83e55e2d Auto merge of #137940 - 1c3t3a:alignment-borrows-check, r=saethlin
Extend the alignment check to borrows

The current alignment check does not include checks for creating misaligned references from raw pointers, which is now added in this patch.

When inserting the check we need to be careful with references to field projections (e.g. `&(*ptr).a`), in which case the resulting reference must be aligned according to the field type and not the type of the pointer.

r? `@saethlin`

cc `@RalfJung,` after our discussion in #134424
2025-04-29 05:36:44 +00:00
Nicholas Nethercote
99f6b6328e Improve pretty-printing of braces.
Most notably, the `FIXME` for suboptimal printing of `use` groups in
`tests/ui/macros/stringify.rs` is fixed. And all other test output
changes result in pretty printed output being closer to the original
formatting in the source code.
2025-04-29 13:46:17 +10:00