Commit Graph

266387 Commits

Author SHA1 Message Date
clubby789
e9fcb7db4d Fix feature name in test 2024-09-20 09:18:47 +00:00
bors
2b11f265b6 Auto merge of #130508 - adwinwhite:niche-not-depend-on-order, r=the8472
Get rid of niche selection's dependence on fields's order

Fixes #125630.
Use the optimal niche selection decided in `univariant()` rather than picking niche field manually.

r? `@the8472`
2024-09-20 08:43:57 +00:00
bors
976487c48b Auto merge of #130597 - matthiaskrgr:rollup-9ls4066, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - #130485 (Do not expect infer/bound/placeholder/error in v0 symbol mangling)
 - #130567 (Register tool docs for compiletest)
 - #130582 (rustdoc: use the correct span for doctests)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-09-20 06:03:19 +00:00
Matthias Krüger
ee4afa39a2
Rollup merge of #130582 - notriddle:notriddle/doctest-span, r=GuillaumeGomez
rustdoc: use the correct span for doctests

Fixes #130470
2024-09-20 06:43:39 +02:00
Matthias Krüger
ee2bec0af7
Rollup merge of #130567 - jieyouxu:tool-docs-compiletest, r=Kobzol
Register tool docs for compiletest

This PR registers tool docs for `src/tools/compiletest`, meaning that

```
$ ./x doc src/tools/compiletest
```

or

```
$ ./x doc compiletest
```

will now generate docs, like for `run-make-support`.

Fixes #130564.
2024-09-20 06:43:39 +02:00
Matthias Krüger
b963750b6b
Rollup merge of #130485 - compiler-errors:impossible-types, r=BoxyUwU
Do not expect infer/bound/placeholder/error in v0 symbol mangling

Infer/bound/placeholder/error are not encounterable during codegen. Let's make sure v0 symbol mangling doesn't "accidentally" handle them.

As for aliases (namely: projections and uv consts) these may still be encounterable because of the way that we render the def paths of items. Specifically, when we have something like:

```
struct W<T>(T);

impl<T> W<T> {
    fn x() {
        fn y() {}
    }
}
```

The path of `y` is rendered like `crate_name::W<T>::y`. Specifically, since `y` doesn't inherit the generics of the impl, we use the *identity* substitutions for that impl. If the impl has any aliases, they will remain unnormalized if they're rigid.

r? `@BoxyUwU`
2024-09-20 06:43:38 +02:00
bors
2e45ec36c7 Auto merge of #130593 - ytmimi:sync-from-rustfmt, r=ytmimi
Sync from rustfmt

r? `@ghost`
2024-09-20 03:31:04 +00:00
Yacin Tmimi
eeda9dd070 Merge commit 'b23b69900eab1260be510b2bd8922f4b6de6cf1e' into sync-from-rustfmt 2024-09-19 21:46:44 -04:00
Jaic1
c2ccd89ce4 handle unsized consts with type str in v0 symbol mangling 2024-09-20 09:41:16 +08:00
Yacin Tmimi
b23b69900e chore: prep v1.8.0 release 2024-09-19 21:33:01 -04:00
bors
5793a9e902 Auto merge of #130561 - lukas-code:perf-normalize-env, r=compiler-errors
[perf] skip normalizing param env if it is already normalized

If the param env is already normalized after elaboration, then we can skip a bunch of expensive operations.

> [!note]
> This makes it so that outlives predicates are no longer sorted after non-outlives predicates. Surely this won't make a semantic difference.

r? ghost
2024-09-20 00:19:16 +00:00
Eric Holk
a18800f807
pin_ergonomics: allow reborrowing as Pin<&T> 2024-09-19 16:28:19 -07:00
Jubilee Young
65f132fd25 Bless rustc_abi::obj_size_bound tests 2024-09-19 16:23:38 -07:00
Jubilee Young
f4cb6ef8d8 Keep object-size-dependent tests failing
These tests depend on the internal logic of rustc regarding handling
very large objects. Fix them to reflect rustc_abi::obj_size_bound diffs.
2024-09-19 16:23:38 -07:00
Jubilee Young
d6383b4605 bless issue-56762.rs as huge-static.rs 2024-09-19 16:23:38 -07:00
Jubilee Young
42dbf29b48 Correct outdated object size limit
The comment here about 48 bit addresses being enough was written in 2016
but was made incorrect in 2019 by 5-level paging, and then persisted for
another 5 years before being noticed and corrected.
2024-09-19 16:23:38 -07:00
Eric Holk
92a5d21bc4
Add a test case to make sure we don't reborrow twice 2024-09-19 15:40:56 -07:00
Eric Holk
b2b76fb706
Allow shortening reborrows
Generating a call to `as_mut()` let to more restrictive borrows than
what reborrowing usually gives us. Instead, we change the desugaring to
reborrow the pin internals directly which makes things more expressive.
2024-09-19 15:34:00 -07:00
Guillaume Gomez
8745bcf99b Add tidy check for rustdoc templates to ensure the whitespace characters are all stripped 2024-09-19 23:48:13 +02:00
Michael Howell
65e432db60 rustdoc: use the correct span for doctests 2024-09-19 13:57:44 -07:00
bors
506f22b466 Auto merge of #130572 - matthiaskrgr:rollup-0q3qyg9, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #128001 (Improve documentation for <integer>::from_str_radix)
 - #130553 ([Clippy] Get rid of most `std` `match_def_path` usage, swap to diagnostic items.)
 - #130554 (`pal::unsupported::process::ExitCode`: use an `u8` instead of a `bool`)
 - #130556 (Mark the `link_cfg` feature as internal)
 - #130558 (Support 128-bit atomics on s390x)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-09-19 18:40:30 +00:00
Matthias Krüger
f715815bfb
Rollup merge of #130558 - taiki-e:s390x-atomic-128, r=cuviper
Support 128-bit atomics on s390x

Since LLVM 18 (c568927f3e), 128-bit atomics are fully supported on s390x. And the current minimum external LLVM version is now 18 (https://github.com/rust-lang/rust/pull/130487).

s390x 128-bit atomic instructions (lpq,stpq,cdsg) has been present since [the First Edition of the Principles of Operation](https://publibfp.dhe.ibm.com/epubs/pdf/dz9zr000.pdf). (LLVM's minimal supported architecture level [is z10 (the Eighth Edition of the PoP)](https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/SystemZ/SystemZProcessors.td#L16-L17).)

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

r? `@cuviper`
2024-09-19 20:37:09 +02:00
Matthias Krüger
9f0d32c638
Rollup merge of #130556 - Urgau:link_cfg_internal, r=jieyouxu
Mark the `link_cfg` feature as internal

This PR marks the `link_cfg` feature as internal because it's a perme-unstable feature, only used by `core`/`std`and `unwind`.
2024-09-19 20:37:08 +02:00
Matthias Krüger
553c20cc92
Rollup merge of #130554 - ShE3py:unsupported-exitcode, r=Noratrieb
`pal::unsupported::process::ExitCode`: use an `u8` instead of a `bool`

`ExitCode` should “represents the status code the current process can return to its parent under normal termination”, but is currently represented as a `bool` on unsupported platforms, making the `impl From<u8> for ExitCode` lossy.

Fixes #130532.

History: [IRLO thread](https://internals.rust-lang.org/t/mini-pre-rfc-redesigning-process-exitstatus/5426) (`ExitCode` as a `main` return), #48618 (initial impl), #93445 (`From<u8>` impl).
2024-09-19 20:37:08 +02:00
Matthias Krüger
569153a432
Rollup merge of #130553 - GnomedDev:remove-clippy-paths, r=compiler-errors
[Clippy] Get rid of most `std` `match_def_path` usage, swap to diagnostic items.

Part of https://github.com/rust-lang/rust-clippy/issues/5393.

This was going to remove all `std` paths, but `SeekFrom` has issues being cleanly replaced with a diagnostic item as the paths are for variants, which currently cannot be diagnostic items.

This also, as a last step, categories the paths to help with future path removals.
2024-09-19 20:37:07 +02:00
Matthias Krüger
767ae2b33d
Rollup merge of #128001 - Krappa322:master, r=scottmcm
Improve documentation for <integer>::from_str_radix

Two improvements to the documentation:
- Document `-` as a valid character for signed integer destinations
- Make the documentation even more clear that extra whitespace and non-digit characters is invalid. Many other languages, e.g. c++, are very permissive in string to integer routines and simply try to consume as much as they can, ignoring the rest. This is trying to make the transition for developers who are used to the conversion semantics in these languages a bit easier.
2024-09-19 20:37:06 +02:00
许杰友 Jieyou Xu (Joe)
08453d5ac2 Fix compiletest doc comments 2024-09-19 16:40:26 +00:00
许杰友 Jieyou Xu (Joe)
b3e1e4194e Register tool docs for compiletest 2024-09-19 16:38:02 +00:00
许杰友 Jieyou Xu (Joe)
60600a6fa4 Break up compiletest runtest.rs into smaller helper modules
Previously compiletest's `runtest.rs` was a massive 4700 lines file that
made reading and navigation very awkward.

This commit intentionally does not neatly reorganize where all the
methods on `TestCx` goes, that is intended for a follow-up PR.
2024-09-19 16:30:47 +00:00
bors
749f80ab05 Auto merge of #130069 - GuillaumeGomez:gen-scraped-buttons, r=notriddle
Generate scraped examples buttons in JS

Follow-up of https://github.com/rust-lang/rust/pull/129796.

To reduce the page size when there are scraped examples, we can generate their buttons in JS since they require JS to work in any case. There should be no changes in display or in functionality.

You can test it [here](https://rustdoc.crud.net/imperio/gen-scraped-buttons/doc/scrape_examples/fn.test.html).

cc `@willcrichton`
r? `@notriddle`
2024-09-19 15:53:31 +00:00
Kornel
3dcb5a3962
Add str.as_str() for easy dereferencing of Box<str> 2024-09-19 16:25:56 +01:00
Urgau
b67485e196 Make link_cfg internal because it's in perme-unstable 2024-09-19 15:56:27 +02:00
Lukas Markeffsky
1999d065b7 skip normalizing param env if it is already normalized 2024-09-19 15:56:24 +02:00
bors
13a5097796 Auto merge of #130529 - onur-ozkan:better-ci-llvm-default, r=Kobzol
change `download-ci-llvm` default from `if-unchanged` to `true`

Since https://github.com/rust-lang/rust/pull/129473 and https://github.com/rust-lang/rust/pull/130202, using `download-ci-llvm=true` is now the better default and it also fixes #130515.
2024-09-19 13:32:00 +00:00
Lieselotte
dc628c8ecb
pal::unsupported::process::ExitCode: use an u8 instead of a bool 2024-09-19 14:22:50 +02:00
GnomedDev
13d5732811
Categorise paths in clippy_utils::paths 2024-09-19 13:13:43 +01:00
GnomedDev
b2eebeeea9
[Clippy] Swap open_options to use diagnostic items instead of paths 2024-09-19 13:13:43 +01:00
GnomedDev
364e552940
[Clippy] Swap iter_over_hash_type to use diagnostic items instead of paths 2024-09-19 13:13:43 +01:00
GnomedDev
43b8e04d46
[Clippy] Swap non_octal_unix_permissions to use diagnostic item instead of path 2024-09-19 13:13:43 +01:00
GnomedDev
5f85f73f63
[Clippy] Swap unnecessary_owned_empty_strings to use diagnostic item instead of path 2024-09-19 13:13:43 +01:00
GnomedDev
5f42ae13c1
[Clippy] Swap manual_strip to use diagnostic items instead of paths 2024-09-19 13:13:43 +01:00
GnomedDev
89532c0f30
[Clippy] Swap unnecessary_to_owned to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
1890620b26
[Clippy] Swap instant_subtraction to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
372f68b6a6
[Clippy] Swap waker_clone_wake to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
5b55270225
[Clippy] Swap filter_map_bool_then to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
25da0e2e5d
[Clippy] Swap manual_while_let_some to use diagnostic items instead of paths 2024-09-19 13:13:42 +01:00
GnomedDev
15240a93c9
[Clippy] Swap repeat_vec_with_capacity to use diagnostic item instead of path 2024-09-19 13:13:42 +01:00
GnomedDev
846ae57fc1
[Clippy] Swap VecArgs::hir to use diagnostic items instead of paths 2024-09-19 13:13:40 +01:00
GnomedDev
28f4c8293a
[Clippy] Swap single_char_add_str/format_push_string to use diagnostic items instead of paths 2024-09-19 13:13:20 +01:00
GnomedDev
037b9784b6
[Clippy] Swap manual_main_separator_str to use diagnostic item instead of path 2024-09-19 13:13:20 +01:00