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 #131500

Closed
wants to merge 19 commits into from

Commits on Sep 28, 2024

  1. Configuration menu
    Copy the full SHA
    4af6137 View commit details
    Browse the repository at this point in the history

Commits on Oct 8, 2024

  1. Configuration menu
    Copy the full SHA
    7b3f161 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e4bf471 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f2659ef View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    960ba89 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2024

  1. Configuration menu
    Copy the full SHA
    becf664 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    62b24ea View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2e7a52b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    20cebae View commit details
    Browse the repository at this point in the history

Commits on Oct 10, 2024

  1. Auto merge of rust-lang#13464 - y21:issue13458, r=flip1995

    Don't warn on proc macro generated code in `needless_return`
    
    Fixes rust-lang#13458
    Fixes rust-lang#13457
    Fixes rust-lang#13467
    Fixes rust-lang#13479
    Fixes rust-lang#13481
    Fixes rust-lang#13526
    Fixes rust-lang#13486
    
    The fix is unfortunately a little more convoluted than just simply adding a `is_from_proc_macro`. That check *does*  fix the issue, however it also introduces a bunch of false negatives in the tests, specifically when the returned expression is in a different syntax context, e.g. `return format!(..)`.
    
    The proc macro check builds up a start and end pattern based on the HIR nodes and compares it to a snippet of the span, however that would currently fail for `return format!(..)` because we would have the patterns `("return", <something inside of the format macro>)`, which doesn't compare equal. So we now return an empty string pattern for when it's in a different syntax context.
    
    "Hide whitespace" helps a bit for reviewing the proc macro detection change
    
    changelog: none
    bors authored and flip1995 committed Oct 10, 2024
    Configuration menu
    Copy the full SHA
    a21a9fe View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b12dc20 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1edff46 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#130989 - compiler-errors:unsize-opaque, r=e…

    …stebank
    
    Don't check unsize goal in MIR validation when opaques remain
    
    Similarly to `mir_assign_valid_types`, let's just skip when there are opaques. Fixes rust-lang#130921.
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    1696043 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#131033 - compiler-errors:precise-capturing-…

    …in-traits, r=spastorino
    
    Precise capturing in traits
    
    This PR begins to implement `feature(precise_capturing_in_traits)`, which enables using the `impl Trait + use<..>` syntax for RPITITs. It implements this by giving the desugared GATs variance, and representing the uncaptured lifetimes as bivariant, like how opaque captures work.
    
    Right now, I've left out implementing a necessary extension to the `refining_impl_trait` lint, and also I've made it so that all RPITITs always capture the parameters that come from the trait, because I'm not totally yet convinced that it's sound to not capture these args. It's certainly required to capture the type and const parameters from the trait (e.g. Self), or else users could bivariantly relate two RPITIT args that come from different impls, but region parameters don't affect trait selection in the same way, so it *may* be possible to relax this in the future. Let's stay conservative for now, though.
    
    I'm not totally sure what tests could be added on top of the ones I already added, since we really don't need to exercise the `precise_capturing` feature but simply what makes it special for RPITITs.
    
    r? types
    
    Tracking issue:
    * rust-lang#130044
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    5d515e6 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#131442 - jieyouxu:mir-opt-rebuild, r=onur-o…

    …zkan
    
    Match std `RUSTFLAGS` for host and target for `mir-opt` test suite to fix double std build/rebuilds
    
    Previously the bootstrap compiletest `Step::run` flow had:
    
    ```rs
    // ensure that `libproc_macro` is available on the host.
    builder.ensure(compile::Std::new(compiler, compiler.host));
    
    // ...
    
    if suite == "mir-opt" {
        builder.ensure(compile::Std::new_for_mir_opt_tests(compiler, target));
    } else {
        builder.ensure(compile::Std::new(compiler, target));
    }
    ```
    
    This can cause unnecessary std rebuilds (even on the same invocation) because if host == target then `builder.ensure(compile::Std::new_for_mir_opt_tests(compiler, target))` will have different `RUSTFLAGS` than `builder.ensure(compile::Std::new(compiler, compiler.host))`.
    
    This PR fixes that by matching up std `RUSTFLAGS` if the test suite is `mir-opt`:
    
    ```rs
    if suite == "mir-opt" {
        builder.ensure(compile::Std::new_for_mir_opt_tests(compiler, compiler.host));
    } else {
        builder.ensure(compile::Std::new(compiler, compiler.host));
    }
    ```
    
    This is a short-term fix, the better fix is to enforce how `RUSTFLAGS` are handled as described in rust-lang#131437 (comment).
    
    Fixes rust-lang#131437.
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    07aab90 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#131470 - EnzymeAD:enzyme-testinfra2, r=jiey…

    …ouxu
    
    add test infra to explicitely test rustc with autodiff/enzyme disabled
    
    I assume this is not what you want for now, but I'll update the PR once I understand how the ignore- directives work.
    
    To summarize the situation, we want a feature gate test where we don't enable the autodiff feature using `#![feature(autodiff)]`. There are two situations.
    1) We have a rustc which was build without autodiff support (current default): It gives one error about the feature being needed and one error about this rustc version being build without autodiff support.
    2) We have a rustc which was build with autodiff support (i.e. for now a custom build): It gives one error about the feature being needed.
    
    We have a `//`@needs-enzyme`` directive which we can use in revisions for the second case.
    However, we have no way to specify that needs-enzyme implies that the second error should not be seen.
    This ads a way of passing the following test:
    ```
    //@ revisions: has_support no_support
    //`@[has_support]` needs-enzyme
    //`@[no_support]` needs-enzyme-disabled
    
    #![crate_type = "lib"]
    
    #[autodiff(dfoo, Reverse)]
    //[has_support]~^ ERROR use of unstable library feature 'autodiff' [E0658]
    //[no_support]~^^ ERROR use of unstable library feature 'autodiff' [E0658]
    //[no_support]~| ERROR this rustc version does not support autodiff
    fn foo() {}
    ```
    Cherry picking this PR to my frontend pr makes the test above pass in both configurations (enzyme=true/false in config.toml).
    I'm open to other changes that make this testcase pass.
    
    r? `@jieyouxu`
    
    Tracking:
    
    - rust-lang#124509
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    760650c View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#131475 - fmease:compiler-mv-obj-safe-dyn-co…

    …mpat-2, r=jieyouxu
    
    Compiler & its UI tests: Rename remaining occurrences of "object safe" to "dyn compatible"
    
    Follow-up to rust-lang#130826.
    Part of rust-lang#130852.
    
    1. 1st commit: Fix stupid oversights. Should've been part of rust-lang#130826.
    2. 2nd commit: Rename the unstable feature `object_safe_for_dispatch` to `dyn_compatible_for_dispatch`. Might not be worth the churn, you decide.
    3. 3rd commit: Apply the renaming to all UI tests (contents and paths).
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    d5624a2 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#131492 - flip1995:clippy-master-backport, r…

    …=matthiaskrgr
    
    Clippy: Backport `needless_return` fix
    
    r? `@Manishearth`
    
    This cherry-picks rust-lang/rust-clippy#13464, so that it gets into master and with that into `beta` tomorrow, so that the bug in this lint doesn't hit `beta`.
    
    Changes look quite big, but most of them are whitespace changes because of the introduction of an `_inner` function. In reality it only adds 2 checks.
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    04257c1 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#131493 - madsmtm:avoid-redundant-linker-pat…

    …h, r=jieyouxu
    
    Avoid redundant sysroot additions to `PATH` when linking
    
    Currently, `rustc` prepends `$HOME/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/bin` to the `PATH` three times before invoking the linker, which is unnecessary, once should be enough.
    
    Spotted this while trying to get `-Clinker-flavor=gcc` and `-Clinker-flavor=ld` closer together, not really important.
    
    `@rustbot` A-linkage
    matthiaskrgr authored Oct 10, 2024
    Configuration menu
    Copy the full SHA
    adb659f View commit details
    Browse the repository at this point in the history