1. 06 6月, 2021 12 次提交
  2. 05 6月, 2021 28 次提交
    • G
      Add a map method to Bound · 223c0d2a
      Griffin Smith 提交于
      Add a map method to std::ops::range::Bound, patterned off of the method
      of the same name on Option
      223c0d2a
    • B
      Auto merge of #85869 - tmiasko:box-free, r=nagisa · 9104c898
      bors 提交于
      Remove special handling of `box_free` from `LocalAnalyzer`
      
      The special casing of `box_free` predates the use of dominators in
      analyzer. It is no longer necessary now that analyzer verifies that
      the first assignment dominates all uses.
      9104c898
    • B
      Auto merge of #86001 - richkadel:revert-85617-rustin-patch-fix, r=Mark-Simulacrum · 5ea19239
      bors 提交于
      Revert "shrinking the deprecated method span"
      
      Reverts rust-lang/rust#85617
      
      Fixes: #86000
      
      r? `@Mark-Simulacrum`
      5ea19239
    • B
      Auto merge of #85990 - jyn514:channel-replace-rustdoc, r=Manishearth · 34b9932f
      bors 提交于
      rustdoc: link consistently to stable/beta in diagnostic messages
      
      Builds on https://github.com/rust-lang/rust/pull/84942. This makes the diagnostics consistent with the links.
      34b9932f
    • B
      Auto merge of #85919 - workingjubilee:simd-ptrs-are-valid, r=petrochenkov · 4e207546
      bors 提交于
      Allow raw pointers in SIMD types
      
      Closes #85915 by loosening the strictness in typechecking and adding a test to guarantee it passes.
      
      This still might be too strict, as references currently do pass monomorphization, but my understanding is that they are not guaranteed to be "scalar" in the same way.
      4e207546
    • B
      Auto merge of #85457 - jyn514:remove-doc-include, r=GuillaumeGomez · 2c106885
      bors 提交于
      Remove `doc(include)`
      
      This nightly feature is redundant now that `extended_key_value_attributes` is stable (https://github.com/rust-lang/rust/pull/83366). `@rust-lang/rustdoc` not sure if you think this needs FCP; there was already an FCP in #82539, but technically it was for deprecating, not removing the feature altogether.
      
      This should not be merged before #83366.
      
      cc `@petrochenkov`
      2c106885
    • B
      Auto merge of #84234 - jyn514:blanket-hash, r=Aaron1011 · 9e6f0e87
      bors 提交于
      Implement DepTrackingHash for `Option` through blanket impls instead of macros
      
      This avoids having to add a new macro call for both the `Option` and the type itself.
      
      Noticed this while working on https://github.com/rust-lang/rust/pull/84233.
      r? `@Aaron1011`
      9e6f0e87
    • W
    • B
      Auto merge of #86006 - JohnTitor:rollup-97iuoi3, r=JohnTitor · 704934d0
      bors 提交于
      Rollup of 10 pull requests
      
      Successful merges:
      
       - #83653 (Remove unused code from `rustc_data_structures::sync`)
       - #84466 (rustdoc: Remove `PrimitiveType::{to_url_str, as_str}`)
       - #84880 (Make match in `register_res` easier to read)
       - #84942 (rustdoc: link to stable/beta docs consistently in documentation)
       - #85853 (Warn against boxed DST in `improper_ctypes_definitions` lint)
       - #85939 (Fix suggestion for removing &mut from &mut macro!().)
       - #85966 (wasm: Make simd types passed via indirection again)
       - #85979 (don't suggest unsized indirection in where-clauses)
       - #85983 (Update to semver 1.0.3)
       - #85988 (Note that `ninja = false` goes under `[llvm]`)
      
      Failed merges:
      
      r? `@ghost`
      `@rustbot` modify labels: rollup
      704934d0
    • R
      Added a new test demonstrating the issue requiring revert · 1384200b
      Rich Kadel 提交于
      Note, the `Debug` impl is required.
      1384200b
    • Y
      Rollup merge of #85988 - jyn514:ninja-error, r=joshtriplett · 062e789a
      Yuki Okushi 提交于
      Note that `ninja = false` goes under `[llvm]`
      
      Addresses https://github.com/rust-lang/rust/issues/84938#issuecomment-852448332 - `@kornelski` does this look good?
      
      r? `@Mark-Simulacrum` cc `@joshtriplett`
      062e789a
    • Y
    • Y
      Rollup merge of #85979 - tlyu:where-no-unsized-indirection, r=estebank · 2da42950
      Yuki Okushi 提交于
      don't suggest unsized indirection in where-clauses
      
      Skip where-clauses when suggesting using indirection in combination with
      `?Sized` bounds on type parameters.
      
      Fixes #85943.
      
      `@estebank` I think this doesn't conflict with your work in #85947; please let me know if you'd like me to cherry pick it to a new branch based on yours instead.
      2da42950
    • Y
      Rollup merge of #85966 - alexcrichton:wasm-simd-indirect, r=workingjubilee · 5d30ab85
      Yuki Okushi 提交于
      wasm: Make simd types passed via indirection again
      
      This commit updates wasm target specs to use `simd_types_indirect: true`
      again. Long ago this was added since wasm simd types were always
      translated to `v128` under-the-hood in LLVM, meaning that it didn't
      matter whether that target feature was enabled or not. Now, however,
      `v128` is conditionally used in codegen depending on target features
      enabled, meaning that it's possible to get linker errors about different
      signatures in code that correctly uses simd types. The fix is the same
      as for all other platforms, which is to pass the type indirectly.
      5d30ab85
    • Y
      Rollup merge of #85939 - m-ou-se:fix-remove-ref-macro-invocation, r=estebank · 5ebc4d36
      Yuki Okushi 提交于
      Fix suggestion for removing &mut from &mut macro!().
      
      Fixes #85933
      
      Before: (Note the suggestions.)
      ```
      error[E0308]: mismatched types
       --> src/main.rs:2:21
        |
      2 |     let _: String = &mut format!("");
        |            ------   ^^^^^^^^^^^^^^^^
        |            |        |
        |            |        expected struct `String`, found `&mut String`
        |            |        help: consider removing the borrow: `mut format!("")`
        |            expected due to this
      
      error[E0308]: mismatched types
       --> src/main.rs:3:21
        |
      3 |     let _: String = &mut (format!(""));
        |            ------   ^^^^^^^^^^^^^^^^^^
        |            |        |
        |            |        expected struct `String`, found `&mut String`
        |            |        help: consider removing the borrow: `mut (format!(""))`
        |            expected due to this
      ```
      
      After:
      ```
      error[E0308]: mismatched types
       --> src/main.rs:2:21
        |
      2 |     let _: String = &mut format!("");
        |            ------   ^^^^^^^^^^^^^^^^
        |            |        |
        |            |        expected struct `String`, found `&mut String`
        |            |        help: consider removing the borrow: `format!("")`
        |            expected due to this
      
      error[E0308]: mismatched types
       --> src/main.rs:3:21
        |
      3 |     let _: String = &mut (format!(""));
        |            ------   ^^^^^^^^^^^^^^^^^^
        |            |        |
        |            |        expected struct `String`, found `&mut String`
        |            |        help: consider removing the borrow: `format!("")`
        |            expected due to this
      ```
      5ebc4d36
    • Y
      Rollup merge of #85853 - marmeladema:improper-ctypes-definitions-boxed-dst, r=petrochenkov · ec9e7d5d
      Yuki Okushi 提交于
      Warn against boxed DST in `improper_ctypes_definitions` lint
      
      Fixes #85714
      ec9e7d5d
    • Y
      Rollup merge of #84942 - jyn514:channel-replace, r=Manishearth · 01b0e6e6
      Yuki Okushi 提交于
      rustdoc: link to stable/beta docs consistently in documentation
      
      This is an alternative to https://github.com/rust-lang/rust/pull/84941 which fixes the problem consistently by linking to stable/beta for *all* items, not just for primitives.
      
       ## User-facing changes
      
      - Intra-doc links to primitives that currently go to rust-lang.org/nightly/std/primitive.x.html will start going to channel that rustdoc was built with. Nightly will continue going to /nightly; Beta will link to /beta; stable compilers will link to /1.52.1 (or whatever version they were built as).
      - Cross-crate links from std to core currently go to /nightly unconditionally. They will start going to /1.52.0 on stable channels (but remain the same on nightly channels).
      - Intra-crate links from std to std (or core to core) currently go to the same URL they are hosted at; they will continue to do so. Notably, this is different from everything else because it can preserve the distinction between /stable and /1.52.0 by using relative links.
      
      Note that "links" includes both intra-doc links and rustdoc's own
      automatically generated hyperlinks.
      
       ## Implementation changes
      
      - Update the testsuite to allow linking to /beta and /1.52.1 in docs
      - Use an html_root_url for the standard library that's dependent on the channel
      
        This avoids linking to nightly docs on stable.
      
      - Update rustdoc to use channel-dependent links for primitives from an
        unknown crate
      
      - Set DOC_RUST_LANG_ORG_CHANNEL from bootstrap to ensure it's in sync
      - Include doc.rust-lang.org in the channel
      
      cc Mark-Simulacrum - I know [you were dubious about this in the past](https://rust-lang.zulipchat.com/#narrow/stream/122651-general/topic/Rustdoc.20unconditionally.20links.20to.20nightly.20libstd.20docs/near/231223124), but I'm not quite sure why? I see this as "just a bugfix", I don't know why rustdoc should unconditionally link to nightly.
      cc dtolnay who commented in https://github.com/rust-lang/rust/issues/30693:
      
      >  I would welcome a PR to solve this permanently if anyone has ideas for how. I don't believe we need an RFC.
      
      Fixes https://github.com/rust-lang/rust/issues/30693 (note that issue is marked as feature-accepted, although I don't see where it was discussed).
      01b0e6e6
    • Y
      Rollup merge of #84880 - jyn514:cleanup-itemkind, r=GuillaumeGomez · 3a8bb381
      Yuki Okushi 提交于
      Make match in `register_res` easier to read
      
      - Don't duplicate DefKind -> ItemType handling; that's a good way to get bugs
      - Use exhaustive match
      - Add comments
      
      This found that register_res is very wrong in at least one way: if it
      registers a Res for `Variant`, it should also register one for `Field`.
      But I don't know whether the one for Variant should be removed or Field
      added. Maybe someone has ideas?
      
      Found while reviewing https://github.com/rust-lang/rust/pull/84176.
      3a8bb381
    • Y
      Rollup merge of #84466 - jyn514:prim-str, r=GuillaumeGomez · 74c744e5
      Yuki Okushi 提交于
      rustdoc: Remove `PrimitiveType::{to_url_str, as_str}`
      
      These can easily be rewritten in terms of `as_sym`, and this avoids bugs where the two get out of sync.
      
      I don't expect this to have a perf impact, but I'll start a perf run just in case.
      74c744e5
    • Y
      Rollup merge of #83653 - jyn514:unused-sync-code, r=wesleywiser · 75643121
      Yuki Okushi 提交于
      Remove unused code from `rustc_data_structures::sync`
      
      Found using https://github.com/est31/warnalyzer. Follow-up to https://github.com/rust-lang/rust/pull/83185.
      
      r? `@Zoxc` cc `@oli-obk`
      75643121
    • C
      Always go through the expn_that_defined query. · 507a1fdf
      Camille GILLOT 提交于
      507a1fdf
    • B
      Auto merge of #84449 - alexcrichton:metadata-in-object, r=nagisa · c79419af
      bors 提交于
      rustc: Store metadata-in-rlibs in object files
      
      This commit updates how rustc compiler metadata is stored in rlibs.
      Previously metadata was stored as a raw file that has the same format as
      `--emit metadata`. After this commit, however, the metadata is encoded
      into a small object file which has one section which is the contents of
      the metadata.
      
      The motivation for this commit is to fix a common case where #83730
      arises. The problem is that when rustc crates a `dylib` crate type it
      needs to include entire rlib files into the dylib, so it passes
      `--whole-archive` (or the equivalent) to the linker. The problem with
      this, though, is that the linker will attempt to read all files in the
      archive. If the metadata file were left as-is (today) then the linker
      would generate an error saying it can't read the file. The previous
      solution was to alter the rlib just before linking, creating a new
      archive in a temporary directory which has the metadata file removed.
      
      This problem from before this commit is now removed if the metadata file
      is stored in an object file that the linker can read. The only caveat we
      have to take care of is to ensure that the linker never actually
      includes the contents of the object file into the final output. We apply
      similar tricks as the `.llvmbc` bytecode sections to do this.
      
      This involved changing the metadata loading code a bit, namely updating
      some of the LLVM C APIs used to use non-deprecated ones and fiddling
      with the lifetimes a bit to get everything to work out. Otherwise though
      this isn't intended to be a functional change really, only that metadata
      is stored differently in archives now.
      
      This should end up fixing #83730 because by default dylibs will no
      longer have their rlib dependencies "altered" meaning that
      split-debuginfo will continue to have valid paths pointing at the
      original rlibs. (note that we still "alter" rlibs if LTO is enabled to
      remove Rust object files and we also "alter" for the #[link(cfg)]
      feature, but that's rarely used).
      
      Closes #83730
      c79419af
    • R
      Revert "shrinking the deprecated method span" · 2a6dd252
      Rich Kadel 提交于
      2a6dd252
    • J
      Unify parallel and non-parallel APIs · 3412957e
      Joshua Nelson 提交于
      It's confusing for these to be different, even if some of the methods
      are unused.
      3412957e
    • J
    • J
      Fix `deny(invalid_doc_attributes)` · 261f6435
      Joshua Nelson 提交于
      261f6435
    • J
      4c71610e
    • J
      rustdoc: link to stable/beta docs consistently in documentation · 7411a9e7
      Joshua Nelson 提交于
       ## User-facing changes
      
      - Intra-doc links to primitives that currently go to rust-lang.org/nightly/std/primitive.x.html will start going to channel that rustdoc was built with. Nightly will continue going to /nightly; Beta will link to /beta; stable compilers will link to /1.52.1 (or whatever version they were built as).
      - Cross-crate links from std to core currently go to /nightly unconditionally. They will start going to /1.52.0 on stable channels (but remain the same on nightly channels).
      - Intra-crate links from std to std (or core to core) currently go to the same URL they are hosted at; they will continue to do so. Notably, this is different from everything else because it can preserve the distinction between /stable and /1.52.0 by using relative links.
      
      Note that "links" includes both intra-doc links and rustdoc's own
      automatically generated hyperlinks.
      
       ## Implementation changes
      
      - Update the testsuite to allow linking to /beta and /1.52.1 in docs
      - Use an html_root_url for the standard library that's dependent on the channel
      
        This avoids linking to nightly docs on stable.
      
      - Update rustdoc to use channel-dependent links for primitives from an
        unknown crate
      
      - Set DOC_RUST_LANG_ORG_CHANNEL from bootstrap to ensure it's in sync
      - Include doc.rust-lang.org in the channel
      7411a9e7