Commit graph

16347 commits

Author SHA1 Message Date
bors
a0a5c42346 Auto merge of #134738 - clubby789:forbid-output-ui, r=jieyouxu
compiletest: Support `forbid-output` in UI tests

The `forbid-output` directive is currently only run in incremental tests (although no incremental tests use it). There are some UI tests 'using' it, but it's doing nothing 😄 Let's fix this

Will also PR the dev guide to note this.

dev-guide PR: https://github.com/rust-lang/rustc-dev-guide/pull/2171
2024-12-25 08:46:20 +00:00
bors
41f2f5c0b7 Auto merge of #134747 - weihanglo:update-cargo, r=weihanglo
Update cargo

6 commits in 652623b779c88fe44afede28bf7f1c9c07812511..c86f4b3a1b153218e6e50861214b0b4b4e695f23
2024-12-20 15:44:42 +0000 to 2024-12-24 17:49:48 +0000
- fix(package): check dirtiness of path fields in manifest (rust-lang/cargo#14966)
- test: make path arguments more generic and flexible (rust-lang/cargo#14979)
- Moved manifest metadata tracking from fingerprint to dep info (rust-lang/cargo#14973)
- fix: assure possibly blocking non-files (like FIFOs) won't be picked up for publishing. (rust-lang/cargo#14977)
- simplify SourceID Hash (rust-lang/cargo#14800)
- upgrade `gix` to the latest release 0.69. (rust-lang/cargo#14975)
2024-12-25 03:29:11 +00:00
Weihang Lo
57e413c47d
Update cargo 2024-12-24 22:16:30 -05:00
clubby789
5a8ecc9518 compiletest: Support forbid-output in UI tests 2024-12-25 00:06:07 +00:00
roife
9e7d29688f fix missing name enum when hovering on fields in variants 2024-12-25 07:28:26 +08:00
Lukas Wirth
1287b9362e fix: Fix metrics workflow using the wrong download-artifact version 2024-12-24 18:59:49 +01:00
Lukas Wirth
6d10170a07
Merge pull request #18743 from ChayimFriedman2/e0107
feat: Unify handling of path diagnostics in hir-ty
2024-12-24 17:13:07 +00:00
Lukas Wirth
9c554620c2
Merge pull request #18754 from Veykril/push-zkkzxrsxnqnm
Cleanup target fetching for cargo metadata
2024-12-24 17:03:31 +00:00
Chayim Refael Friedman
9d44ee1312 Unify handling of path diagnostics in hir-ty
Because it was a mess.

Previously, pretty much you had to handle all path diagnostics manually: remember to check for them and handle them. Now, we wrap the resolver in `TyLoweringContext` and ensure proper error reporting.

This means that you don't have to worry about them: most of the things are handled automatically, and things that cannot will create a compile-time error (forcing you top `drop(ty_lowering_context);`) if forgotten, instead of silently dropping the diagnostics.

The real place for error reporting is in the hir-def resolver, because there are other things resolving, both in hir-ty and in hir-def, and they all need to ensure proper diagnostics. But this is a good start, and future compatible.

This commit also ensures proper path diagnostics for value/pattern paths, which is why it's marked "feat".
2024-12-24 18:58:52 +02:00
Lukas Wirth
4be8178a76 Cleanup target fetching for cargo metadata 2024-12-24 17:49:07 +01:00
oliveredget
be1d5dd494
chore: fix typos 2024-12-24 23:37:30 +08:00
Lukas Wirth
8bfb2fe018
Merge pull request #18707 from ChayimFriedman2/subst
feat: Show substitution where hovering over generic things
2024-12-24 14:16:16 +00:00
Lukas Wirth
eb80a6bd48
Merge pull request #18718 from Giga-Bowser/fix-syntaxfactory-intoiterator
internal: Standardize how we take iterator parameters in `SyntaxFactory`
2024-12-24 14:12:52 +00:00
Lukas Wirth
b3308bce33
Merge pull request #18722 from markmurphydev/status_bar_settings
Rename `rust-analyzer.statusBar.documentSelector` to `showStatusBar`, add "always" and "never" options.
2024-12-24 14:12:32 +00:00
Lukas Wirth
a63d166eeb
Merge pull request #18750 from Veykril/push-tyvtqpwrwvsr
Back out "internal: Disable rustc test metrics"
2024-12-24 09:52:37 +00:00
Lukas Wirth
9251d422b8 Back out "internal: Disable rustc test metrics"
This backs out commit d9a08624aa.
2024-12-24 10:37:24 +01:00
Lukas Wirth
91fb189652 Remove dangling outdated test module 2024-12-24 10:37:24 +01:00
Lukas Wirth
417dcc4143
Merge pull request #18749 from PrototypeNM1/windows-debugger-wait
minor: Break out of waiting for debugger on Windows using native debugger check API.
2024-12-24 08:40:56 +00:00
bors
f3343420c8 Auto merge of #134625 - compiler-errors:unsafe-binders-ty, r=oli-obk
Begin to implement type system layer of unsafe binders

Mostly TODOs, but there's a lot of match arms that are basically just noops so I wanted to split these out before I put up the MIR lowering/projection part of this logic.

r? oli-obk

Tracking:

- https://github.com/rust-lang/rust/issues/130516
2024-12-24 00:51:51 +00:00
Nicholas Rishel
5e7ce33966 minor: Break out of waiting for debugger on Windows using native debugger check API.
For Windows, this removes the need to add a breakpoint and modify a value to exit the debugger wait loop.

As a ridealong, this adds a 100ms sleep for all platforms such that waiting for the debugger doesn't hog the CPU thread.
2024-12-23 14:33:26 -08: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
Ralf Jung
fdfd064c62 use std::sync::Once instead of hand-rolling a bad version of it 2024-12-23 16:24:24 +01:00
Ralf Jung
411658566d many-seeds: add flag to keep going even after we found a failing seed 2024-12-23 14:50:26 +01:00
Ralf Jung
0f49f0ffdf stop using process-wide state, now that we are running multiple interpreters in the same thread 2024-12-23 14:50:26 +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
Ralf Jung
d04b972f72 remove --many-seeds from ./miri run 2024-12-23 13:58:35 +01:00
Ralf Jung
0bd76e1840 remove many-seeds mode from cargo-miri 2024-12-23 13:58:35 +01:00
Ralf Jung
d80f319121 add -Zmiri-many-seeds flag to the driver itself 2024-12-23 13:58:35 +01:00
许杰友 Jieyou Xu (Joe)
7ee520491e tests: migrate incr-add-rust-src-component to rmake.rs
The Makefile version seems to contain a bug. Over the years, the
directory structure of the `rust-src` component changed as the source
tree directory structure changed. `libstd` is no longer a thing directly
under `root/lib/rustlib/src/rust/src/`, it is moved to
`root/lib/rustlib/src/rust/library/std`.

Co-authored-by: Oneirical <manchot@videotron.ca>
2024-12-23 20:23:57 +08: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
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
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
Brian Bosak
0d5b480159 Treat ; as a terminator rather than something that can be glued together in an expression 2024-12-22 16:44:01 -06: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
Michael Goulet
9a1c5eb5b3 Begin to implement type system layer of unsafe binders 2024-12-22 21:57:57 +00:00
Ralf Jung
41f3edc2af CONTRIBUTING: explain how to do benchmarking with a baseline 2024-12-22 20:48:45 +01: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 (Joe)
3b388eb9b6 run_make_support: extract copy_symlink helper 2024-12-23 03:25:36 +08:00
Ralf Jung
40b3310280 miri-script: add option to compare with baseline results 2024-12-22 19:37:56 +01:00
Ralf Jung
38e3ebce9f miri-script: support saving bench results in a baseline JSON file 2024-12-22 18:21:55 +01: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