Commit graph

298901 commits

Author SHA1 Message Date
Matthias Krüger
8888488a03
Rollup merge of #140205 - reddevilmidzy:clean-up-test, r=jieyouxu
Tidying up UI tests [2/N]

Part of #133895

Moved the location of the tests that were in `tests/ui` and added descriptions!
I'll squash before merge!

r? jieyouxu
2025-04-25 17:31:49 +02:00
Matthias Krüger
7f27d16400
Rollup merge of #140193 - folkertdev:fix-issue-140082, r=jdonszelmann
fix ICE in `#[naked]` attribute validation

fixes https://github.com/rust-lang/rust/issues/140082

The comment here https://github.com/rust-lang/rust/pull/139615/files#r2040684192 is relevant, a better way to print the full path would be nice. If there's an issue I should `FIXME` this with let me know.

r? `@jdonszelmann`
cc `@nnethercote` https://github.com/rust-lang/rust/pull/139615
2025-04-25 17:31:48 +02:00
Matthias Krüger
eb225e395d
Rollup merge of #140152 - xizheyin:issue-140102, r=jieyouxu
Unify the format of rustc cli flags

As mentioned in #140102, I unified the format of rustc CLI flags.

I use the following rules:
1. `<param>`: Indicates a required parameter
2. `[param]`: Indicates an optional parameter
3. `|`: Indicates a mutually exclusive option
4. `*`: a list element with description

Current output:
```bash
Usage: rustc [OPTIONS] INPUT

Options:
    -h, --help          Display this message
        --cfg <SPEC>    Configure the compilation environment.
                        SPEC supports the syntax `<NAME>[="<VALUE>"]`.
        --check-cfg <SPEC>
                        Provide list of expected cfgs for checking
    -L [<KIND>=]<PATH>  Add a directory to the library search path. The
                        optional KIND can be one of
                        <dependency|crate|native|framework|all> (default:
                        all).
    -l [<KIND>[:<MODIFIERS>]=]<NAME>[:<RENAME>]
                        Link the generated crate(s) to the specified native
                        library NAME. The optional KIND can be one of
                        <static|framework|dylib> (default: dylib).
                        Optional comma separated MODIFIERS
                        <bundle|verbatim|whole-archive|as-needed>
                        may be specified each with a prefix of either '+' to
                        enable or '-' to disable.
        --crate-type <bin|lib|rlib|dylib|cdylib|staticlib|proc-macro>
                        Comma separated list of types of crates
                        for the compiler to emit
        --crate-name <NAME>
                        Specify the name of the crate being built
        --edition <2015|2018|2021|2024|future>
                        Specify which edition of the compiler to use when
                        compiling code. The default is 2015 and the latest
                        stable edition is 2024.
        --emit <TYPE>[=<FILE>]
                        Comma separated list of types of output for the
                        compiler to emit.
                        Each TYPE has the default FILE name:
                        * asm - CRATE_NAME.s
                        * llvm-bc - CRATE_NAME.bc
                        * dep-info - CRATE_NAME.d
                        * link - (platform and crate-type dependent)
                        * llvm-ir - CRATE_NAME.ll
                        * metadata - libCRATE_NAME.rmeta
                        * mir - CRATE_NAME.mir
                        * obj - CRATE_NAME.o
                        * thin-link-bitcode - CRATE_NAME.indexing.o
        --print <INFO>[=<FILE>]
                        Compiler information to print on stdout (or to a file)
                        INFO may be one of
                        <all-target-specs-json|calling-conventions|cfg|check-cfg|code-models|crate-name|crate-root-lint-levels|deployment-target|file-names|host-tuple|link-args|native-static-libs|relocation-models|split-debuginfo|stack-protector-strategies|supported-crate-types|sysroot|target-cpus|target-features|target-libdir|target-list|target-spec-json|tls-models>.
    -g                  Equivalent to -C debuginfo=2
    -O                  Equivalent to -C opt-level=3
    -o <FILENAME>       Write output to FILENAME
        --out-dir <DIR> Write output to compiler-chosen filename in DIR
        --explain <OPT> Provide a detailed explanation of an error message
        --test          Build a test harness
        --target <TARGET>
                        Target triple for which the code is compiled
    -A, --allow <LINT>  Set lint allowed
    -W, --warn <LINT>   Set lint warnings
        --force-warn <LINT>
                        Set lint force-warn
    -D, --deny <LINT>   Set lint denied
    -F, --forbid <LINT> Set lint forbidden
        --cap-lints <LEVEL>
                        Set the most restrictive lint level. More restrictive
                        lints are capped at this level
    -C, --codegen <OPT>[=<VALUE>]
                        Set a codegen option
    -V, --version       Print version info and exit
    -v, --verbose       Use verbose output

Additional help:
    -C help             Print codegen options
    -W help             Print 'lint' options and default settings
    -Z help             Print unstable compiler options
    --help -v           Print the full set of options rustc accepts
```
2025-04-25 17:31:47 +02:00
Matthias Krüger
394cdca40f
Rollup merge of #139572 - ismailarilik:docs/std/mention-const-blocks-in-const-keyword-doc-page, r=tgross35
docs(std): mention const blocks in const keyword doc page

Aims to close #139549
2025-04-25 17:31:47 +02:00
Matthias Krüger
a35379654c
Rollup merge of #138968 - Natural-selection1:update-Result-doc, r=Amanieu
Update the index of Result to make the summary more comprehensive

fix #138966

This PR and #138957 are twin PR

r? `@Amanieu`
2025-04-25 17:31:46 +02:00
Matthias Krüger
4bbd21b7ab
Rollup merge of #137683 - Kobzol:tidy-gcc-submodule, r=GuillaumeGomez
Add a tidy check for GCC submodule version

To make sure that it stays in sync with the required GCC version of the GCC codegen backend.

The check should succeed on CI, although it will fail after https://github.com/rust-lang/rust/pull/137660, until the next GCC sync.

r? `@GuillaumeGomez`
2025-04-25 17:31:46 +02:00
Antoni Boucher
61d1c13b3e Merge commit '4f83a4258d' into subtree-update_cg_gcc_2025-04-25 2025-04-25 10:44:19 -04:00
Antoni Boucher
3cd97b644d Merge commit '4f83a4258d' into subtree-update_cg_gcc_2025-04-25 2025-04-25 10:44:19 -04:00
antoyo
4f83a4258d
Merge pull request #652 from rust-lang/sync_from_rust_2025_04_25_2
Sync from rust 2025/04/25
2025-04-25 10:41:04 -04:00
Chayim Refael Friedman
1925c25a51
Merge pull request #19690 from ChayimFriedman2/preallocate-input
minor: Preallocate `parser::Input`
2025-04-25 14:35:49 +00:00
Chayim Refael Friedman
4792652845 Preallocate parser::Input 2025-04-25 17:18:14 +03:00
Antoni Boucher
9059f8cd7c Fix test 2025-04-25 10:18:12 -04:00
Antoni Boucher
5e5ad10bc6 Fix clippy warnings 2025-04-25 10:10:50 -04:00
Antoni Boucher
79339104b1 Update to nightly-2025-04-25 2025-04-25 10:05:35 -04:00
Antoni Boucher
5dbe271045 Merge branch 'master' into sync_from_rust_2025_04_25_2 2025-04-25 10:05:03 -04:00
Guillaume Gomez
c44068b916 Add rustdoc-ui regression test for #140289 2025-04-25 15:55:54 +02:00
bors
8f43b85954 Auto merge of #140282 - matthiaskrgr:rollup-g6ze4jj, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #137653 (Deprecate the unstable `concat_idents!`)
 - #138957 (Update the index of Option to make the summary more comprehensive)
 - #140006 (ensure compiler existance of tools on the dist step)
 - #140143 (Move `sys::pal::os::Env` into `sys::env`)
 - #140202 (Make #![feature(let_chains)] bootstrap conditional in compiler/)
 - #140236 (norm nested aliases before evaluating the parent goal)
 - #140257 (Some drive-by housecleaning in `rustc_borrowck`)
 - #140278 (Don't use item name to look up associated item from trait item)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-25 12:27:16 +00:00
Bastian Kersting
a3e7c699bc 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.
2025-04-25 12:16:40 +00:00
Guillaume Gomez
70c389e069 Correctly display stdout and stderr in case a doctest is failing 2025-04-25 14:13:24 +02:00
bendn
d3a4ebca85
remove expect() in unnecessary_transmutes 2025-04-25 19:07:41 +07:00
Kivooeo
f072d30741 resolved conflict 2025-04-25 17:02:59 +05:00
reddevilmidzy
db2a73e284 Cleaned up 5 tests in tests/ui 2025-04-25 20:50:57 +09:00
xizheyin
999b9069dd
Add option style comment for rustc_optgroups
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-25 19:37:42 +08:00
Chris Denton
c07054bdd1
Retry if creating temp fails with access denied
On Windows, if creating a temporary directory fails with permission denied then use a retry/backoff loop. This hopefully fixes a recuring error in our CI.
2025-04-25 11:28:36 +00:00
xizheyin
64867c68f4
Check if format argument is identifier to avoid error err-emit
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-25 19:07:30 +08:00
xizheyin
44232a67c3
Add ui test parser/issues/invalid-parse-format-issue-139104.rs
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-25 18:58:59 +08:00
Ralf Jung
ea9037e165
Merge pull request #4292 from rust-lang/rustup-2025-04-25
Automatic Rustup
2025-04-25 10:43:50 +00:00
Zalathar
1670de40e0 Trivial compiler change to inhibit download-rustc in CI 2025-04-25 20:41:50 +10:00
Zalathar
0238f3ec98 compiletest: Use the new non-libtest executor by default (2)
(Re-landing #139998, with a compiler change to inhibit download-rustc.)

Currently the new executor can be explicitly disabled by passing the `-N` flag
to compiletest (e.g. `./x test ui -- -N`), but eventually that flag will be
removed, alongside the removal of the libtest dependency.
2025-04-25 20:31:10 +10:00
Lukas Wirth
61ddcf06ba
Merge pull request #19688 from ChayimFriedman2/less-unused
internal: More `shrink_to_fit()` and upgrade dashmap and hashbrown
2025-04-25 10:19:38 +00:00
Ralf Jung
673c879abb avoid an unnecessary transmute 2025-04-25 12:18:27 +02:00
Sede Soukossi
8604d0fd34
rustdoc: fix typo change from equivelent to equivalent 2025-04-25 12:03:08 +02:00
Chayim Refael Friedman
31523ae54b Switch AstIdMap to hashbrown::HashTable from the raw API
It's the intended use.
2025-04-25 12:57:13 +03:00
Chayim Refael Friedman
5dac463bda Upgrade dashmap and hashbrown
And adapt `intern` to the changes in the API.
2025-04-25 12:47:26 +03:00
bors
5c54aa781f Auto merge of #140273 - matthiaskrgr:rollup-rxmuvkg, r=matthiaskrgr
Rollup of 8 pull requests

Successful merges:

 - #137096 (Stabilize flags for doctest cross compilation)
 - #140148 (CI: use aws codebuild for job dist-arm-linux)
 - #140187 ([AIX] Handle AIX dynamic library extensions within c-link-to-rust-dylib run-make test)
 - #140196 (Improved diagnostics for non-primitive cast on non-primitive types (`Arc`, `Option`))
 - #140210 (Work around cygwin issue on condvar timeout)
 - #140213 (mention about `x.py setup` in `INSTALL.md`)
 - #140229 (`DelimArgs` tweaks)
 - #140248 (Fix impl block items indent)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-04-25 09:09:27 +00:00
gohome001
2ec065062a minor: format 2025-04-25 17:02:08 +08:00
gohome001
9031c86009 test: add test case for highlight unsafe operations 2025-04-25 16:06:48 +08:00
gohome001
f6f92a22ba feat: highlight unsafe operations 2025-04-25 16:06:48 +08:00
Chayim Refael Friedman
42f6877333 shrink_to_fit() in more places
This saves 18mb on `analysis-stats .`, without regressing speed.
2025-04-25 10:55:12 +03:00
Jakub Beránek
796a9ee378
Update gcc submodule to 0ea98a1365b81f7488073512c850e8ee951a4afd
To keep it in sync with rustc_codegen_gcc.
2025-04-25 09:27:10 +02:00
Jakub Beránek
0e4ffa15c1
Add a tidy check for GCC submodule version 2025-04-25 09:26:47 +02:00
ismailarilik
49cb451b5d docs(std): mention const blocks in const keyword doc page 2025-04-25 10:17:27 +03:00
xizheyin
2b8e9b508c
Enable [behind-upstream] triagebot option
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-04-25 15:17:19 +08:00
bors
862156d6f2 Auto merge of #140233 - Zalathar:revert-new-executor, r=jieyouxu
Revert compiletest new-executor, to re-land without download-rustc

Revert <https://github.com/rust-lang/rust/pull/139998> because the original merge triggered download-rustc, which messes with test metrics and prevents us from properly comparing them before/after the change.

The plan is to re-land this PR as-is, combined with a trivial compiler change to avoid download-rustc and get proper test metrics for comparison.

This reverts commit be181dd75c, reversing changes made to 645d0ad2a4.

r? ghost
2025-04-25 06:00:11 +00:00
Matthias Krüger
3c08a50a15
Rollup merge of #140278 - compiler-errors:name-based-comparison, r=nnethercote
Don't use item name to look up associated item from trait item

This fix should be self-justifying b/c the fact that we were using identifiers here was kinda sus anyways, esp b/c we have a failproof way of doing the comparison :) I'll leave some info about why this repro needs a macro.

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

r? `@nnethercote`
2025-04-25 07:50:27 +02:00
Matthias Krüger
e534fad2e5
Rollup merge of #140257 - amandasystems:housecleaning, r=wesleywiser
Some drive-by housecleaning in `rustc_borrowck`

This commit picks up a few odd ends discovered during the work on #130227. It adds some documentation and renames a few methods with too generic names to describe what they actually do. It also adds some debug output that was helpful during bug hunting and generally cleans up a few things (for my values of "clean").

r? lcnr
2025-04-25 07:50:27 +02:00
Matthias Krüger
9eb0078556
Rollup merge of #140236 - lcnr:normalizes-to-goals, r=compiler-errors
norm nested aliases before evaluating the parent goal

see the explanation of the underlying issue in tests/ui/traits/next-solver/normalize/eager-norm-pre-normalizes-to.rs.

This is also the cause of https://github.com/rust-lang/trait-system-refactor-initiative/issues/184, fixing the overflow errors with the new solver. I did not add any tests based on it directly as relying on that behavior to cause recursion limit shenanigans feels fragile. Thanks `@Nadrieril` for minimizing the issue [on zulip](https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/typenum.20.602.20.2F.201.60.20overflow.20error/with/513993621).

r? `@compiler-errors`
2025-04-25 07:50:26 +02:00
Matthias Krüger
564e5ccb5c
Rollup merge of #140202 - est31:let_chains_feature_compiler, r=lcnr
Make #![feature(let_chains)] bootstrap conditional in compiler/

Let chains have been stabilized recently in #132833, so we can remove the gating from our uses in the compiler (as the compiler uses edition 2024).
2025-04-25 07:50:25 +02:00
Matthias Krüger
f3641df491
Rollup merge of #140143 - thaliaarchi:move-env-pal, r=joboet
Move `sys::pal::os::Env` into `sys::env`

Although `Env` (as `Vars`), `Args`, path functions, and OS constants are publicly exposed via `std::env`, their implementations are each self-contained. Keep them separate in `std::sys` and make a new module, `sys::env`, for `Env`.

Also fix `unsafe_op_in_unsafe_fn` for Unix and update the `!DynSend` and `!DynSync` impls which had grown out of sync with the platforms (see #48005 for discussion on that).

r? joboet

Tracked in #117276.
2025-04-25 07:50:25 +02:00
Matthias Krüger
886816359c
Rollup merge of #140006 - onur-ozkan:138778, r=onur-ozkan
ensure compiler existance of tools on the dist step

Fixes https://github.com/rust-lang/rust/issues/138778 with a coverage on https://github.com/rust-lang/rust/issues/138123 and https://github.com/rust-lang/rust/issues/138004.

try-job: dist-powerpc64le-linux
2025-04-25 07:50:24 +02:00