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 7 pull requests #122111

Merged
merged 17 commits into from
Mar 6, 2024
Merged

Rollup of 7 pull requests #122111

merged 17 commits into from
Mar 6, 2024

Commits on Mar 4, 2024

  1. Removing absolute path in proc-macro

    With rust 1.75 the absolute build path is embedding into '.rustc' section and which causes reproducibility issues. Detailed issue is here.
    rust-lang#120825 (comment)
    
    With this change the 'absolute path' changed back to '/rust/$hash' format.
    sundeep-kokkonda authored Mar 4, 2024
    Configuration menu
    Copy the full SHA
    a9a9798 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2024

  1. bootstrap: print test name on failure even with verbose-tests=false

    This makes it much easier to know which test failed without having to wait for compiletest to completely finish running. Before:
    ```
    Testing stage0 compiletest suite=ui mode=ui (x86_64-unknown-linux-gnu)
    
    running 15274 tests
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii    88/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   176/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   264/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   352/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   440/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   528/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiFFiiiiiii
    ...
    ```
    
    After:
    ```
    Testing stage0 compiletest suite=ui mode=ui (x86_64-unknown-linux-gnu)
    
    running 15274 tests
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii    88/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   176/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   264/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   352/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   440/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   528/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    [ui] tests/ui/associated-type-bounds/implied-in-supertrait.rs ... F
    
    [ui] tests/ui/associated-type-bounds/return-type-notation/basic.rs#next_with ... F
    iiiiiiiiiiiii
    ...
    ```
    
    This serves a similar use case to the existing RUSTC_TEST_FAIL_FAST, but is on by default and as a result much more discoverable.
    We should consider unifying RUSTC_TEST_FAIL_FAST with the `--no-fail-fast` flag in the future for consistency and discoverability.
    jyn514 committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    678e217 View commit details
    Browse the repository at this point in the history
  2. libtest: Print the names of failed tests eagerly

    Previously, libtest would wait until all tests finished running to print the progress, which made it
    annoying to run many tests at once (since you don't know which have failed). Change it to print the
    names as soon as they fail.
    
    This also adds a test for the terse output; previously it was untested.
    jyn514 committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    8bfe9db View commit details
    Browse the repository at this point in the history
  3. Change message type in bug functions.

    From `impl Into<DiagnosticMessage>` to `impl Into<Cow<'static, str>>`.
    
    Because these functions don't produce user-facing output and we don't
    want their strings to be translated.
    nnethercote committed Mar 5, 2024
    Configuration menu
    Copy the full SHA
    d602394 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6120de9 View commit details
    Browse the repository at this point in the history

Commits on Mar 6, 2024

  1. remove all-zero GEP

    This always produces zero offset, regardless of what the struct layout
    is.
    
    Originally, this may have been necessary in order to change the pointer type,
    but with opaque pointers, it is no longer necessary.
    erikdesjardins committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    efe5a40 View commit details
    Browse the repository at this point in the history
  2. Rewrite the untranslatable_diagnostic lint.

    Currently it only checks calls to functions marked with
    `#[rustc_lint_diagnostics]`. This commit changes it to check calls to
    any function with an `impl Into<{D,Subd}iagMessage>` parameter. This
    greatly improves its coverage and doesn't rely on people remembering to
    add `#[rustc_lint_diagnostics]`.
    
    The commit also adds `#[allow(rustc::untranslatable_diagnostic)`]
    attributes to places that need it that are caught by the improved lint.
    These places that might be easy to convert to translatable diagnostics.
    
    Finally, it also:
    - Expands and corrects some comments.
    - Does some minor formatting improvements.
    - Adds missing `DecorateLint` cases to
      `tests/ui-fulldeps/internal-lints/diagnostics.rs`.
    nnethercote committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    b7d58ee View commit details
    Browse the repository at this point in the history
  3. Add missing #[rustc_lint_diagnostics] attributes.

    Prior to the previous commit, `#[rust_lint_diagnostics]` attributes
    could only be used on methods with an `impl Into<{D,Subd}iagMessage>`
    parameter. But there are many other nearby diagnostic methods (e.g.
    `Diag::span`) that don't take such a parameter and should have the
    attribute.
    
    This commit adds the missing attribute to these `Diag` methods. This
    requires adding some missing
    `#[allow(rustc::diagnostic_outside_of_impl)]` markers at call sites to
    these methods.
    nnethercote committed Mar 6, 2024
    Configuration menu
    Copy the full SHA
    3591e77 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9f287dd View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7303014 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#113518 - jyn514:streaming-failures, r=cuviper

    bootstrap/libtest: print test name eagerly on failure even with `verbose-tests=false` / `--quiet`
    
    Previously, libtest would wait until all tests finished running to print the progress, which made it
    annoying to run many tests at once (since you don't know which have failed). Change it to print the
    names as soon as they fail.
    
    This makes it much easier to know which test failed without having to wait for compiletest to completely finish running. Before:
    ```
    Testing stage0 compiletest suite=ui mode=ui (x86_64-unknown-linux-gnu)
    
    running 15274 tests
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii    88/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   176/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   264/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   352/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   440/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   528/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiFFiiiiiii
    ...
    ```
    
    After:
    ```
    Testing stage0 compiletest suite=ui mode=ui (x86_64-unknown-linux-gnu)
    
    running 15274 tests
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii    88/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   176/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   264/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   352/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   440/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii   528/15274
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
    [ui] tests/ui/associated-type-bounds/implied-in-supertrait.rs ... F
    
    [ui] tests/ui/associated-type-bounds/return-type-notation/basic.rs#next_with ... F
    iiiiiiiiiiiii
    ...
    ```
    
    This serves a similar use case to the existing RUSTC_TEST_FAIL_FAST, but is on by default and as a result much more discoverable. We should consider unifying RUSTC_TEST_FAIL_FAST with the `--no-fail-fast` flag in the future for consistency and discoverability.
    matthiaskrgr authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    1b157a0 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#117199 - Zalathar:instrument-coverage-on, r…

    …=oli-obk,Nadrieril
    
    Change the documented implicit value of `-C instrument-coverage` to `=yes`
    
    The option-value parser for `-Cinstrument-coverage=` currently accepts the following stable values:
    
    - `all` (implicit value of plain `-Cinstrument-coverage`)
    - `yes`, `y`, `on`, `true` (undocumented aliases for `all`)
    - `off` (default; same as not specifying `-Cinstrument-coverage`)
    - `no`, `n`, `false`, `0` (undocumented aliases for `off`)
    
    I'd like to rearrange and re-document the stable values as follows:
    
    - `no` (default; same as not specifying `-Cinstrument-coverage`)
    - `n`, `off`, `false` (documented aliases for `no`)
    - `0` (undocumented alias for `no`)
    - `yes` (implicit value of plain `-Cinstrument-coverage`)
    - `y`, `on`, `true` (documented aliases for `yes`)
    - `all` (documented as *currently* an alias for `yes` that may change; discouraged but not deprecated)
    
    The main changes being:
    
    - Documented default value changes from `off` to `no`
    - Documented implicit value changes from `all` to `yes`
    - Other boolean aliases (`n`, `off`, `false`, `y`, `on`, `true`) are explicitly documented
    - `all` remains currently an alias for `yes`, but is explicitly documented as being able to change in the future
    - `0` remains an undocumented but stable alias for `no`
    - The actual behaviour of coverage instrumentation does not change
    
    # Why?
    
    The choice of `all` as the implicit value only really makes sense in the context of the unstable `except-unused-functions` and `except-unused-generics` values. That arrangement was fine for an unstable flag, but it's confusing for a stable flag whose only other stable value is `off`, and will only become more confusing if we eventually want to stabilize other fine-grained coverage option values.
    
    (Currently I'm not aware of any plans to stabilize other coverage option values, but that's why I think now is a fine time to make this change, well before anyone actually has to care about it.)
    
    For example, if we ever add support for opt-in instrumentation of things that are *not* instrumented by `-Cinstrument-coverage` by default, it will be very strange for the `all` value to not actually instrument all things that we know how to instrument.
    
    # Compatibility impact
    
    Because this is not a functional change, there is no immediate compatibility impact. However, changing the documented semantics of `all` opens up the possibility of future changes that could be considered retroactively breaking.
    
    I don't think this is going to be a big deal in practice, for a few reasons:
    
    - The exact behaviour of coverage instrumentation is allowed to change, so changing the behaviour of `all` is not a *stability-breaking* change, as long as it still exists and does something reasonable.
    - `-Cinstrument-coverage` is mainly used by tools or scripts that can be easily updated if necessary. It's unusual for users to pass the flag directly, because processing the profiler output is complicated enough that tools/scripts tend to be necessary anyway.
    - Most people who are using coverage are probably relying on `-Cinstrument-coverage` rather than explicitly passing `-Cinstrument-coverage=all`, so the number of users actually affected by this change is likely to be low, and plausibly zero.
    matthiaskrgr authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    4d9cdd6 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#121190 - bvanjoi:fix-114884, r=petrochenkov

    avoid overlapping privacy suggestion for single nested imports
    
    Fixes rust-lang#114884
    
    This PR aims to avoid confusion inside braces for import suggestions.
    
    r? ``@petrochenkov``
    matthiaskrgr authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    c7fca03 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#121382 - nnethercote:rework-untranslatable_…

    …diagnostic-lint, r=davidtwco
    
    Rework `untranslatable_diagnostic` lint
    
    Currently it only checks calls to functions marked with `#[rustc_lint_diagnostics]`. This PR changes it to check calls to any function with an `impl Into<{D,Subd}iagnosticMessage>` parameter. This greatly improves its coverage and doesn't rely on people remembering to add `#[rustc_lint_diagnostics]`. It also lets us add `#[rustc_lint_diagnostics]` to a number of functions that don't have an `impl Into<{D,Subd}iagnosticMessage>`, such as `Diag::span`.
    
    r? ``@davidtwco``
    matthiaskrgr authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    efe9dea View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#121959 - sundeep-kokkonda:patch-2, r=davidtwco

    Removing absolute path in proc-macro
    
    With rust 1.75 the absolute build path name is embedding into proc-macro (.rustc section) and which causes reproducibility issues.
    Detailed issue description is here - rust-lang#120825 (comment)
    
    With this change the 'absolute path' changed back to '/rust/$hash' format as in earlier revisions.
    matthiaskrgr authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    16d37fa View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#122038 - Alexendoo:unused-qualifications, r…

    …=petrochenkov
    
    Fix linting paths with qself in `unused_qualifications`
    
    Fixes rust-lang#121999
    
    `resolve_qpath` ends up being called again with `qself` set to `None` to check trait items from fully qualified paths. To avoid this the lint is moved to a place that accounts for this already
    
    https://github.com/rust-lang/rust/blob/96561a8fd134e8f2b205769a4fca03b392d9f484/compiler/rustc_resolve/src/late.rs#L4074-L4088
    
    r? `````@petrochenkov`````
    matthiaskrgr authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    e93a3d1 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#122051 - erikdesjardins:cleanup, r=nikic

    cleanup: remove zero-offset GEP
    
    This GEP would've been used to change the pointer type in the past, but after opaque pointers it's a no-op. I missed removing this in rust-lang#105545.
    
    Split out from rust-lang#121577.
    matthiaskrgr authored Mar 6, 2024
    Configuration menu
    Copy the full SHA
    1a85eb0 View commit details
    Browse the repository at this point in the history