Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 9 pull requests #125743

Closed
wants to merge 24 commits into from
Closed

Rollup of 9 pull requests #125743

wants to merge 24 commits into from

Commits on May 29, 2024

  1. Remove path choice from x fmt and add --all option.

    By default, `x fmt` formats/checks modified files. But it also lets you
    choose one or more paths instead.
    
    This adds significant complexity to `x fmt`. Explicit paths are
    specified via `WalkBuilder::add` rather than `OverrideBuilder::add`. The
    `ignore` library is not simple, and predicting the interactions between
    the two mechanisms is difficult.
    
    Here's a particularly interesting case.
    - You can request a path P that is excluded by the `ignore` list in the
      `rustfmt.toml`. E.g. `x fmt tests/ui/` or `x fmt tests/ui/bitwise.rs`.
    - `x fmt` will add P to the walker (via `WalkBuilder::add`), traverse it
      (paying no attention to the `ignore` list from the `rustfmt.toml`
      file, due to the different mechanism), and call `rustfmt` on every
      `.rs` file within it.
    - `rustfmt` will do nothing to those `.rs` files, because it *also*
      reads `rustfmt.toml` and sees that they match the `ignore` list!
    
    It took me *ages* to debug and understand this behaviour. Not good!
    
    `x fmt` even lets you name a path below the current directory. This was
    intended to let you do things like `x fmt std` that mirror things like
    `x test std`. This works by looking for `std` and finding `library/std`,
    and then formatting that. Unfortuantely, this motivating case now gives
    an error. When support was added in rust-lang#107944, `library/std` was the only
    directory named `std`. Since then, `tests/ui/std` was added, and so `x
    fmt std` now gives an error.
    
    In general, explicit paths don't seem particularly useful. The only two
    cases `x fmt` really needs are:
    - format/check the files I have modified (99% of uses)
    - format/check all files
    
    (While respecting the `ignore` list in `rustfmt.toml`, of course.)
    
    So this commit moves to that model. `x fmt` will now give an error if
    given an explicit path. `x fmt` now also supports a `--all` option. (And
    running with `GITHUB_ACTIONS=true` also causes everything to be
    formatted/checked, as before.) Much simpler!
    nnethercote committed May 29, 2024
    Configuration menu
    Copy the full SHA
    5cf198d View commit details
    Browse the repository at this point in the history
  2. Clarify x fmt messages.

    - Precede them all with `fmt` so it's clear where they are coming from.
    - Use `error:` and `warning:` when appropriate.
    - Print warnings to stderr instead of stdout
    nnethercote committed May 29, 2024
    Configuration menu
    Copy the full SHA
    e98740a View commit details
    Browse the repository at this point in the history
  3. Adjust x fmt printed output.

    Currently, `x fmt` can print two lists of files.
    - The untracked files that are skipped. Always done if within a git
      repo.
    - The modified files that are formatted.
    
    But if you run with `--all` (or with `GITHUB_ACTIONS=true`) it doesn't
    print anything about which files are formatted.
    
    This commit increases consistency.
    - The formatted/checked files are now always printed. And it makes it clear why
      a file was formatted, e.g. with "modified".
    - It uses the same code for both untracked files and formatted/checked
      files. This means that now if there are a lot of untracked files just
      the number will be printed, which is like the old behaviour for
      modified files.
    
    Example output:
    ```
    fmt: skipped 31 untracked files
    fmt: formatted modified file compiler/rustc_mir_transform/src/instsimplify.rs
    fmt: formatted modified file compiler/rustc_mir_transform/src/validate.rs
    fmt: formatted modified file library/core/src/ptr/metadata.rs
    fmt: formatted modified file src/bootstrap/src/core/build_steps/format.rs
    ```
    or (with `--all`):
    ```
    fmt: checked 3148 files
    ```
    nnethercote committed May 29, 2024
    Configuration menu
    Copy the full SHA
    3d5d6d2 View commit details
    Browse the repository at this point in the history
  4. Rename fmt_override.

    It's a weird name, the `fmt_` prefix seems unnecessary.
    nnethercote committed May 29, 2024
    Configuration menu
    Copy the full SHA
    a22cfcc View commit details
    Browse the repository at this point in the history
  5. Clarify the closure in rustfmt.

    - Avoid calling `try_wait` followed immediately by `wait`.
    - Make the match exhaustive.
    - Improve the comment.
    nnethercote committed May 29, 2024
    Configuration menu
    Copy the full SHA
    4dec0a0 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5b0e6cb View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    de1d0e0 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    22953b3 View commit details
    Browse the repository at this point in the history
  9. convert fpic to ui test

    Oneirical committed May 29, 2024
    Configuration menu
    Copy the full SHA
    0697884 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    8c8d0db View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    301d722 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    0d63e6b View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    7f11d6f View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    3c4066d View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    a9c7e02 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    a03ba7f View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    6e67eaa View commit details
    Browse the repository at this point in the history
  18. Rollup merge of rust-lang#125653 - GuillaumeGomez:migrate-const-prop-…

    …lint, r=jieyouxu
    
    Migrate `run-make/const-prop-lint` to `rmake.rs`
    
    Part of rust-lang#121876.
    
    r? `@jieyouxu`
    fmease committed May 29, 2024
    Configuration menu
    Copy the full SHA
    a2c36d9 View commit details
    Browse the repository at this point in the history
  19. Rollup merge of rust-lang#125662 - Oneirical:more-tests-again, r=jiey…

    …ouxu
    
    Rewrite `fpic`, `simple-dylib` and `issue-37893` `run-make` tests in `rmake.rs` or ui test format
    
    Part of rust-lang#121876 and the associated [Google Summer of Code project](https://blog.rust-lang.org/2024/05/01/gsoc-2024-selected-projects.html).
    fmease committed May 29, 2024
    Configuration menu
    Copy the full SHA
    7736722 View commit details
    Browse the repository at this point in the history
  20. Rollup merge of rust-lang#125699 - nnethercote:streamline-rustfmt, r=…

    …GuillaumeGomez
    
    Streamline `x fmt` and improve its output
    
    - Removes the ability to pass paths to `x fmt`, because it's complicated and not useful, and adds `--all`.
    - Improves `x fmt` output.
    - Improves `x fmt`'s internal code.
    
    r? `@GuillaumeGomez`
    fmease committed May 29, 2024
    Configuration menu
    Copy the full SHA
    e0d697a View commit details
    Browse the repository at this point in the history
  21. Rollup merge of rust-lang#125701 - scottmcm:generic-from-raw-parts, r…

    …=WaffleLapkin
    
    [ACP 362] genericize `ptr::from_raw_parts`
    
    This implements rust-lang/libs-team#362
    
    As such, it can partially undo rust-lang#124795 , letting `slice_from_raw_parts` just call `from_raw_parts` again without re-introducing the unnecessary cast to MIR.
    
    By doing this it also removes a spurious cast from `str::from_raw_parts`.  And I think it does a good job of showing the value of the ACP, since the only thing that needed new turbofishing because of this is inside `ptr::null(_mut)`, but only because `ptr::without_provenance(_mut)` doesn't support pointers to extern types, which it absolutely could (without even changing the implementation).
    fmease committed May 29, 2024
    Configuration menu
    Copy the full SHA
    d355ac2 View commit details
    Browse the repository at this point in the history
  22. Rollup merge of rust-lang#125723 - GuillaumeGomez:migrate-run-make-cr…

    …ate-data-smoke, r=jieyouxu
    
    Migrate `run-make/crate-data-smoke` to `rmake.rs`
    
    Part of rust-lang#121876.
    
    r? `@jieyouxu`
    fmease committed May 29, 2024
    Configuration menu
    Copy the full SHA
    5ab9868 View commit details
    Browse the repository at this point in the history
  23. Rollup merge of rust-lang#125733 - compiler-errors:async-fn-assoc-ite…

    …m, r=fmease
    
    Add lang items for `AsyncFn*`, `Future`, `AsyncFnKindHelper`'s associated types
    
    Adds lang items for `AsyncFnOnce::Output`, `AsyncFnOnce::CallOnceFuture`, `AsyncFnMut::CallRefFuture`, and uses them in the new solver. I'm mostly interested in doing this to help accelerate uplifting the new trait solver into a separate crate.
    
    The old solver is kind of spaghetti, so I haven't moved that to use these lang items (i.e. it still uses `item_name`-based comparisons).
    
    update: Also adds lang items for `Future::Output` and `AsyncFnKindHelper::Upvars`.
    
    cc `@lcnr`
    fmease committed May 29, 2024
    Configuration menu
    Copy the full SHA
    1b0b2b3 View commit details
    Browse the repository at this point in the history
  24. Rollup merge of rust-lang#125734 - petrochenkov:macinattr, r=wesleywiser

    ast: Revert a breaking attribute visiting order change
    
    Fixes rust-lang#124535
    Fixes rust-lang#125201
    fmease committed May 29, 2024
    Configuration menu
    Copy the full SHA
    ad8e162 View commit details
    Browse the repository at this point in the history