Commit graph

155020 commits

Author SHA1 Message Date
bors
bdc6b3de48 Auto merge of #134405 - rmehri01:x-completions, r=onur-ozkan
Generate shell completions for x as well

It would be nice to be have shell completions for both `./x` and `x` (installed with `cargo install --path src/tools/x`) instead of just `x.py`. This pr generates the corresponding completions for each shell in a similar way to `x.py` but under `x.<shell>` instead.
2024-12-23 19:31:58 +00:00
bors
addbd001ec Auto merge of #134687 - matthiaskrgr:rollup-m32tkax, r=matthiaskrgr
Rollup of 5 pull requests

Successful merges:

 - #134363 (Use `#[derive(Default)]` instead of manual `impl` when possible)
 - #134517 (Add tests for coverage attribute on trait functions)
 - #134528 (opt-dist: propagate channel info to bootstrap)
 - #134669 (Document the `--dev` flag for `src/ci/docker/run.sh`)
 - #134680 (Clean up a few rmake tests  )

r? `@ghost`
`@rustbot` modify labels: rollup
2024-12-23 16:40:02 +00:00
Matthias Krüger
a62f245fb7
Rollup merge of #134669 - clubby789:dev-ci-mode, r=jieyouxu
Document the `--dev` flag for `src/ci/docker/run.sh`

This flag is very helpful for debugging CI issues locally, but it's not documented anywhere and I wasn't aware of it until `@jieyouxu` pointed it out. Add a note to the CI Docker readme to make this more discoverable
2024-12-23 14:44:21 +01:00
Matthias Krüger
cfb7a56676
Rollup merge of #134528 - jieyouxu:fix-rustc-bootstrap-test, r=Kobzol
opt-dist: propagate channel info to bootstrap

Fixes #133503.

Previously, `tests/ui/bootstrap/rustc_bootstap.rs` [sic] failed during [beta bump](https://github.com/rust-lang/rust/pull/133447#issuecomment-2501298794) in opt-dist tests. This is because:

- `opt-dist` tried to run `./x test` against beta-channel dist `rustc` through `bootstrap`.
- The dist build produced during the beta bump produces a `rustc` which correctly thinks that it is a beta compiler based on `src/ci/channel` info.
- `opt-dist` tries to run `./x test` on the beta `rustc` from the dist build, but without specifying channel through a synthetic `config.toml`, so `bootstrap` tells `compiletest` that we're on the `nightly` channel (by default).
- Now there's a channel mismatch: `compiletest` believes the `rustc` under test is a *nightly* rustc, but the `rustc` under test actually considers itself a *beta* rustc. This means that `//@ only-nightly` will be satisfied yet the test will fail as the *beta* rustc is not a *nightly* rustc.

This PR:

- Fixes the test failure during beta bump (i.e. #133503) by having `opt-dist` faithfully report the channel of the dist `rustc` being tested (i.e. "beta" in a beta bump PR). This will properly make the test be ignored during beta bump as the `rustc` under test is not a *nightly* rustc.
- Fixes the test name `rustc_bootstap.rs` -> `rustc_bootstrap.rs`. No more stapping.
- Slightly adjusts the doc comment in the test to make it more clear.

I ran a try-job against the beta branch (explicitly running the opt-dist tests by modifying the job definition) with these changes in #134131, and it appears that the try-job was [successful](https://github.com/rust-lang/rust/pull/134131#issuecomment-2555492215). The two commits in this PR are cherry-picked from #134131, with the test commit slightly modified (to also adjust the test comments).

r? `@Kobzol` (or compiler or bootstrap or infra I guess?)
2024-12-23 14:44:21 +01:00
bors
904d8f6b39 Auto merge of #134681 - lnicola:sync-from-ra, r=lnicola
Subtree update of `rust-analyzer`

r? `@ghost`
2024-12-23 12:18:14 +00:00
clubby789
d124ec68b3 Link to dev guide on Docker testing 2024-12-23 09:35:14 +00:00
Laurențiu Nicola
0180d2d16f Bump rustc crates 2024-12-23 11:33:26 +02:00
Laurențiu Nicola
9420a0b11a Merge from rust-lang/rust 2024-12-23 11:27:07 +02:00
Laurențiu Nicola
214134902f Preparing for merge from rust-lang/rust 2024-12-23 11:26:54 +02:00
Trevor Gross
8fc4ba2ac1
Rollup merge of #134672 - Zalathar:revert-coverage-attr, r=wesleywiser
Revert stabilization of the `#[coverage(..)]` attribute

Due to a process mixup, the PR to stabilize the `#[coverage(..)]` attribute (#130766) was merged while there are still outstanding concerns. The default action in that situation is to revert, and the feature is not sufficiently urgent or uncontroversial to justify special treatment, so this PR reverts that stabilization.

---

- A key point that came up in offline discussions is that unlike most user-facing features, this one never had a proper RFC, so parts of the normal stabilization process that implicitly rely on an RFC break down in this case.
- As the implementor and de-facto owner of the feature in its current form, I would like to think that I made good choices in designing and implementing it, but I don't feel comfortable proceeding to stabilization without further scrutiny.
- There hasn't been a clear opportunity for T-compiler to weigh in or express concerns prior to stabilization.
- The stabilization PR cites a T-lang FCP that occurred in the tracking issue, but due to the messy design and implementation history (and lack of a clear RFC), it's unclear what that FCP approval actually represents in this case.
  - At the very least, we should not proceed without a clear statement from T-lang or the relevant members about the team's stance on this feature, especially in light of the other concerns listed here.
- The existing user-facing documentation doesn't clearly reflect which parts of the feature are stable commitments, and which parts are subject to change. And there doesn't appear to be a clear consensus anywhere about where that line is actually drawn, or whether the chosen boundary is acceptable to the relevant teams and individuals.
  - For example, the [stabilization report comment](https://github.com/rust-lang/rust/issues/84605#issuecomment-2166514660) mentions that some aspects are subject to change, but that text isn't consistent with my earlier comments, and there doesn't appear to have been any explicit discussion or approval process.
  - [The current reference text](4dfaa4f/src/attributes/coverage-instrumentation.md) doesn't mention this distinction at all, and instead simply describes the current implementation behaviour.
- When the implementation was changed to its current form, the associated user-facing error messages were not updated, so they still refer to the attribute only being allowed on functions and closures.
  - On its own, this might have been reasonable to fix-forward in the absence of other concerns, but the fact that it never came up earlier highlights the breakdown in process that has occurred here.

---

Apologies to everyone who was excited for this stabilization to land, but unfortunately it simply isn't ready yet.
2024-12-23 02:07:32 -05:00
Trevor Gross
c9c90dc4b5
Rollup merge of #134668 - compiler-errors:default-struct-value-fmt, r=ytmimi
Make sure we don't lose default struct value when formatting struct

The reason why https://github.com/rust-lang/rustfmt/issues/6424 broke when https://github.com/rust-lang/rust/pull/129514 landed is because the parser now *successfully* parses default struct values. That means that where we used to fail in `rewrite_macro_inner`:

e108481f74/src/tools/rustfmt/src/macros.rs (L263-L267)

... we now succeed, and we now proceed to format the inner struct as a macro arg. Since formatting was never implemented for default struct values, this means that we’ll always rewrite the struct to exclude the default value.

This PR makes it so that we simply don’t rewrite struct fields if they have a default value.

r? `@ytmimi`
2024-12-23 02:07:32 -05:00
Trevor Gross
fde85a8e5f
Rollup merge of #134659 - jieyouxu:recursive-remove, r=ChrisDenton
test-infra: improve compiletest and run-make-support symlink handling

I was trying to implement #134656 to port `tests/run-make/incr-add-rust-src-component.rs`, but found some blockers related to symlink handling, so in this PR I tried to resolve them by improving symlink handling in compiletest and run-make-support (particularly for native windows msvc environment).

Key changes:

- I needed to copy symlinks (duplicate a symlink pointing to the same file), so I pulled out the copy symlink logic and re-exposed it as `run_make_support::rfs::copy_symlink`. This helper correctly accounts for the Windows symlink-to-file vs symlink-to-dir distinction (hereafter "Windows symlinks") when copying symlinks.
- `recursive_remove`:
    - I needed a way to remove symlinks themselves (no symlink traversal). `std::fs::remove_dir_all` handles them, but only if the root path is a directory. So I wrapped `std::fs::remove_dir_all` to also handle when the root path is a non-directory entity (e.g. file or symlink). Again, this properly accounts for Windows symlinks.
    - I wanted to use this for both compiletest and run-make-support, so I put the implementation and accompanying tests in `build_helper`.
    - In this sense, it's a reland of #129302 with proper test coverage.
    - It's a thin wrapper around `std::fs::remove_dir_all` (`remove_dir_all` correctly handles read-only entries on Windows). The helper has additional permission-setting logic for when the root path is a non-dir entry on Windows to handle read-only non-dir entry.

Fixes #126334.
2024-12-23 02:07:31 -05:00
Trevor Gross
3acf9c93a4
Rollup merge of #129220 - asomers:target-maintainer, r=tgross35
Add platform docs for FreeBSD.
2024-12-23 02:07:31 -05:00
Zalathar
87c2f9a5be Revert "Auto merge of #130766 - clarfonthey:stable-coverage-attribute, r=wesleywiser"
This reverts commit 1d35638dc3, reversing
changes made to f23a80a4c2.
2024-12-23 12:30:37 +11:00
bors
908af5ba4a Auto merge of #134666 - matthiaskrgr:rollup-whe0chp, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #130289 (docs: Permissions.readonly() also ignores root user special permissions)
 - #134583 (docs: `transmute<&mut T, &mut MaybeUninit<T>>` is unsound when exposed to safe code)
 - #134611 (Align `{i686,x86_64}-win7-windows-msvc` to their parent targets)
 - #134629 (compiletest: Allow using a specific debugger when running debuginfo tests)
 - #134642 (Implement `PointerLike` for `isize`, `NonNull`, `Cell`, `UnsafeCell`, and `SyncUnsafeCell`.)
 - #134660 (Fix spacing of markdown code block fences in compiler rustdoc)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-12-23 01:18:40 +00:00
Michael Goulet
68c46e13a2 Make sure we don't lose default struct value when formatting struct 2024-12-22 23:55:42 +00:00
bors
5a14967f7b Auto merge of #131311 - rust-lang:cargo_update, r=clubby789
Weekly `cargo update`

Automation to keep dependencies in `Cargo.lock` current.

The following is the output from `cargo update`:

```txt

compiler & tools dependencies:
     Locking 15 packages to latest compatible versions
    Updating clap_complete v4.5.39 -> v4.5.40
    Updating env_filter v0.1.2 -> v0.1.3
    Updating env_logger v0.11.5 -> v0.11.6
    Updating expect-test v1.5.0 -> v1.5.1
    Updating foldhash v0.1.3 -> v0.1.4
    Updating miniz_oxide v0.8.1 -> v0.8.2
    Updating object v0.36.5 -> v0.36.7
    Updating serde_json v1.0.133 -> v1.0.134
    Updating thiserror v2.0.7 -> v2.0.9
    Updating thiserror-impl v2.0.7 -> v2.0.9
    Updating tinyvec v1.8.0 -> v1.8.1
    Updating wasm-encoder v0.221.2 -> v0.222.0
    Removing wasmparser v0.218.0
    Removing wasmparser v0.221.2
      Adding wasmparser v0.222.0
    Updating wast v221.0.2 -> v222.0.0
    Updating wat v1.221.2 -> v1.222.0
note: pass `--verbose` to see 35 unchanged dependencies behind latest

library dependencies:
     Locking 1 package to latest compatible version
    Updating object v0.36.5 -> v0.36.7
note: pass `--verbose` to see 6 unchanged dependencies behind latest

rustbook dependencies:
     Locking 9 packages to latest compatible versions
    Updating cc v1.2.0 -> v1.2.5
    Updating clap_complete v4.5.39 -> v4.5.40
    Updating env_filter v0.1.2 -> v0.1.3
    Updating env_logger v0.11.5 -> v0.11.6
    Updating libc v0.2.168 -> v0.2.169
    Updating miniz_oxide v0.8.1 -> v0.8.2
    Updating serde_json v1.0.133 -> v1.0.134
    Updating thiserror v2.0.7 -> v2.0.9
    Updating thiserror-impl v2.0.7 -> v2.0.9
```
2024-12-22 22:29:29 +00:00
Matthias Krüger
e86874f807
Rollup merge of #134629 - clubby789:debuginfo-specific, r=jieyouxu
compiletest: Allow using a specific debugger when running debuginfo tests

r? `@jieyouxu`

Closes #134468

Example: `./x test tests/debuginfo -- --debugger gdb`
2024-12-22 21:59:26 +01:00
Alan Somers
12b54b1e73 Add platform docs for FreeBSD. 2024-12-22 13:57:18 -07:00
Jieyou Xu
4d3bf1f5ee run-make-support: re-export recursive_remove
This facade is like other `run_make_support::fs` APIs that
panic-on-failure but includes the path that the operation was called on
in the panic message.
2024-12-23 03:25:36 +08:00
Jieyou Xu
7e2240338a compiletest: use recursive_remove instead of aggressive_rm_rf
`aggressive_rm_rf` does not correctly handle distinction between
symlink-to-file vs symlink-to-dir on Windows.
2024-12-23 03:25:36 +08:00
Jieyou Xu
98fdcaed50 build_helper: add recursive_remove helper
`recursive_remove` is intended to be a wrapper around
`std::fs::remove_dir_all`, but which also allows the removal target to
be a non-directory entry, i.e. a file or a symlink. It also tries to
remove read-only attributes from filesystem entities on Windows for
non-dir entries, as `std::fs::remove_dir_all` handles the dir (and its
children) read-only cases.

Co-authored-by: Chris Denton <chris@chrisdenton.dev>
2024-12-23 03:25:36 +08:00
许杰友 Jieyou Xu (Joe)
3b388eb9b6 run_make_support: extract copy_symlink helper 2024-12-23 03:25:36 +08:00
Scott McMurray
29889fd1ef Update clippy 2024-12-22 06:12:45 -08:00
Lukas Wirth
63a3c39461
Merge pull request #18742 from Veykril/push-yswvkzmsvqql
fix: Fix flycheck workspace when requested but package was found
2024-12-22 13:42:39 +00:00
Lukas Wirth
6604f22c02 fix: Fix flycheck workspace when requested but package was found 2024-12-22 14:28:17 +01:00
Lukas Wirth
eea63c2473 fix: Delay initial flycheck until after build scripts 2024-12-22 14:18:53 +01:00
Lukas Wirth
c38d297b9f
Merge pull request #18738 from Veykril/push-vqxqutskzvvu
fix: Properly check if workspace flychecking is allowed
2024-12-22 12:11:00 +00:00
Lukas Wirth
84b7c8b13c
Merge pull request #18740 from Veykril/push-tntsvtmtlotw
fix: Fix empty check diagnostics not marking files as changed
2024-12-22 11:52:59 +00:00
Lukas Wirth
2a977e0e92 fix: Fix empty check diagnostics not marking files as changed 2024-12-22 12:38:38 +01:00
Lukas Wirth
36135264a6
Merge pull request #18739 from Veykril/push-ntpvvqnnovtn
fix: Don't trigger paren wrapping typing handler after idents
2024-12-22 11:22:56 +00:00
Lukas Wirth
b08d1f93ce fix: Properly check if workspace flychecking is allowed 2024-12-22 12:10:48 +01:00
Lukas Wirth
15206e4942 fix: Don't trigger paren wrapping typing handler after idents 2024-12-22 12:08:27 +01:00
Lukas Wirth
36455e9557
Merge pull request #18737 from Veykril/push-rslstwynmzpx
minor: Tell the server to stop prior to restarting it
2024-12-22 10:44:27 +00:00
Lukas Wirth
5c302cc867 minor: Tell the server to stop prior to restarting it 2024-12-22 11:30:18 +01:00
Lukas Wirth
9812c4de07
Merge pull request #18735 from Veykril/push-rpuxqrzrzvsw
fix: Set `result_id` for `RelatedFullDocumentDiagnosticReport` everywhere
2024-12-22 10:03:25 +00:00
Lukas Wirth
c2e2360d9b fix: Set result_id for RelatedFullDocumentDiagnosticReport everywhere 2024-12-22 10:48:57 +01:00
github-actions
b4ef16857e cargo update
compiler & tools dependencies:
     Locking 15 packages to latest compatible versions
    Updating clap_complete v4.5.39 -> v4.5.40
    Updating env_filter v0.1.2 -> v0.1.3
    Updating env_logger v0.11.5 -> v0.11.6
    Updating expect-test v1.5.0 -> v1.5.1
    Updating foldhash v0.1.3 -> v0.1.4
    Updating miniz_oxide v0.8.1 -> v0.8.2
    Updating object v0.36.5 -> v0.36.7
    Updating serde_json v1.0.133 -> v1.0.134
    Updating thiserror v2.0.7 -> v2.0.9
    Updating thiserror-impl v2.0.7 -> v2.0.9
    Updating tinyvec v1.8.0 -> v1.8.1
    Updating wasm-encoder v0.221.2 -> v0.222.0
    Removing wasmparser v0.218.0
    Removing wasmparser v0.221.2
      Adding wasmparser v0.222.0
    Updating wast v221.0.2 -> v222.0.0
    Updating wat v1.221.2 -> v1.222.0
note: pass `--verbose` to see 35 unchanged dependencies behind latest

library dependencies:
     Locking 1 package to latest compatible version
    Updating object v0.36.5 -> v0.36.7
note: pass `--verbose` to see 6 unchanged dependencies behind latest

rustbook dependencies:
     Locking 9 packages to latest compatible versions
    Updating cc v1.2.0 -> v1.2.5
    Updating clap_complete v4.5.39 -> v4.5.40
    Updating env_filter v0.1.2 -> v0.1.3
    Updating env_logger v0.11.5 -> v0.11.6
    Updating libc v0.2.168 -> v0.2.169
    Updating miniz_oxide v0.8.1 -> v0.8.2
    Updating serde_json v1.0.133 -> v1.0.134
    Updating thiserror v2.0.7 -> v2.0.9
    Updating thiserror-impl v2.0.7 -> v2.0.9
2024-12-22 00:22:56 +00:00
Matthias Krüger
0cfabd5d60
Rollup merge of #134607 - tbu-:pr_fix_typo3, r=oli-obk
on pair → on par
2024-12-21 22:16:04 +01:00
Matthias Krüger
22de6f6880
Rollup merge of #134581 - erickt:bump_sdk, r=lqd
Bump Fuchsia toolchain for testing

This updates the Fuchsia SDK used to test rust on Fuchsia to 26.20241211.7.1, and clang to the development version 20 from 388d7f144880dcd85ff31f06793304405a9f44b6.

```@steven807``` asked me to take over the PR. Since I don't have commit access to his repo, I just cherry picked his patch here.

try-job: dist-various-2

r? lqd
2024-12-21 22:16:04 +01:00
clubby789
4f4d62067a compiletest: Allow using a specific debugger when running debuginfo tests 2024-12-21 20:47:58 +00:00
Jakub Beránek
69a6c9c365
Revert "Auto merge of #133902 - Kobzol:ci-dist-arm-runner, r=MarcoIeni"
This reverts commit b597d2a099, reversing
changes made to ff7906bfe1.
2024-12-21 13:51:17 +01:00
bors
54dcff104b Auto merge of #134604 - RalfJung:miri-sync, r=RalfJung
Miri subtree update

r? `@ghost`
2024-12-21 09:21:42 +00:00
Tobias Bucher
84f8faf17c on pair → on par 2024-12-21 10:18:39 +01:00
The Miri Cronjob Bot
591c47b247 Merge from rustc 2024-12-21 05:09:29 +00:00
The Miri Cronjob Bot
9dac973f84 Preparing for merge from rustc 2024-12-21 05:01:56 +00:00
bors
73c278fd93 Auto merge of #134594 - weihanglo:update-cargo, r=weihanglo
Update cargo

10 commits in 99dff6d77db779716dda9ca3b29c26addd02c1be..652623b779c88fe44afede28bf7f1c9c07812511
2024-12-18 00:55:17 +0000 to 2024-12-20 15:44:42 +0000
- fix(package): use relpath to cwd for vcs dirtiness report (rust-lang/cargo#14970)
- Enable triagebot merge conflict notifications (rust-lang/cargo#14972)
- fixed the error message for a user to open the crate (rust-lang/cargo#14969)
- fix(package): show dirty filepaths relative to git workdir (rust-lang/cargo#14968)
- Add the `test` cfg as a well known cfg before of compiler change (rust-lang/cargo#14963)
- refactor(cargo-package): let-else to flatten code (rust-lang/cargo#14959)
- fix(cargo-package): add more traces (rust-lang/cargo#14960)
- Do not hash absolute sysroot path into stdlib crates metadata. (rust-lang/cargo#14951)
- docs: add missing argument to Rustup Cargo workaround (rust-lang/cargo#14954)
- fix(cargo-rustc): stabilize higher precedence trailing flags (rust-lang/cargo#14900)
2024-12-21 03:59:07 +00:00
Weihang Lo
a4b09c3105
Update cargo 2024-12-20 20:50:05 -05:00
Matthias Krüger
472bbb9f0c
Rollup merge of #128780 - GuillaumeGomez:rustflags-doctests, r=rustdoc
Add `--doctest-compilation-args` option to add compilation flags to doctest compilation

Fixes #67533.
Tracking issue: https://github.com/rust-lang/rust/issues/134172

It's been something I meant to take a look at for a long time and actually completely forgot... The idea is to allow to give more control over how doctests are compiled to users. To do so, this PR adds a new `--doctest-compilation-args` option which provides extra compilation flags.

r? `@notriddle`
2024-12-21 01:30:14 +01:00
roife
56ced3b32f fix: only show debug lens with a valid root 2024-12-21 07:03:45 +08:00