1. 23 8月, 2021 12 次提交
  2. 22 8月, 2021 24 次提交
    • M
      Stop tracking namespce in used_imports. · abab99e0
      Mara Bos 提交于
      The information was tracked, but unused.
      abab99e0
    • S
      10b3325d
    • B
      Auto merge of #88163 - camsteffen:collapsible-match-fix, r=Manishearth · 7481e6d1
      bors 提交于
      Fix clippy::collapsible_match with let expressions
      
      This fixes rust-lang/rust-clippy#7575 which is a regression from #80357. I am fixing the bug here instead of in the clippy repo (if that's okay) because a) the regression has not been synced yet and b) I would like to land the fix on nightly asap.
      
      The fix is basically to re-generalize `match` and `if let` for the lint implementation (they were split because `if let` no longer desugars to `match` in the HIR).
      
      Also fixes rust-lang/rust-clippy#7586 and fixes rust-lang/rust-clippy#7591
      cc `@rust-lang/clippy`
      `@xFrednet` do you want to review this?
      7481e6d1
    • M
      Suggest importing the right kind of macro. · bcc5ecb9
      Mara Bos 提交于
      bcc5ecb9
    • B
      Auto merge of #88139 - lcnr:marker-trait-attr, r=nikomatsakis · 1eb187c1
      bors 提交于
      marker_traits: require `EvaluatedToOk` during winnowing
      
      closes #84955, while it doesn't really fix it in a way that makes me happy it should prevent the issue for now and this
      test can't be reproduced anyways, so it doesn't make much sense to keep it open.
      
      fixes #84917 as only one of the impls depends on regions, so we now drop the ambiguous one instead of the correct one.
      
      cc https://rust-lang.zulipchat.com/#narrow/stream/144729-wg-traits/topic/winnowing.20soundly/near/247899832
      
      r? `@nikomatsakis`
      1eb187c1
    • B
      Auto merge of #88122 - Seppel3210:master, r=dtolnay · 80dad647
      bors 提交于
      Fix example in `Extend<(A, B)>` impl
      
      After looking over the examples in my last PR (#85835) on doc.rust-lang.org/nightly I realized that the example didn't actually show what I wanted it to show 😅
      So here's the better example
      80dad647
    • B
      Auto merge of #85166 - mbhall88:file-prefix, r=dtolnay · 2ad56d5c
      bors 提交于
      add file_prefix method to std::path
      
      This is an initial implementation of `std::path::Path::file_prefix`. It is effectively a "left" variant of the existing [`file_stem`](https://doc.rust-lang.org/std/path/struct.Path.html#method.file_stem) method. An illustration of the difference is
      
      ```rust
      use std::path::Path;
      
      let path = Path::new("foo.tar.gz");
      assert_eq!(path.file_stem(), Some("foo.tar"));
      assert_eq!(path.file_prefix(), Some("foo"));
      ```
      
      In my own development, I generally find I almost always want the prefix, rather than the stem, so I thought it might be best to suggest it's addition to libstd.
      
      Of course, as this is my first contribution, I expect there is probably more work that needs to be done. Additionally, if the libstd team feel this isn't appropriate then so be it.
      
      There has been some [discussion about this on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/file_lstem/near/238076313) and a user there suggested I open a PR to see whether someone in the libstd team thinks it is worth pursuing.
      2ad56d5c
    • B
      Auto merge of #88217 - jackh726:rollup-3k74o2m, r=jackh726 · 50731df2
      bors 提交于
      Rollup of 13 pull requests
      
      Successful merges:
      
       - #87604 (CI: Verify commits in beta & stable are in upstream branches.)
       - #88057 (Update RELEASES to clarify attribute macro values.)
       - #88072 (Allow the iOS toolchain to be built on Linux)
       - #88170 (Update release note for 1.55.0.)
       - #88172 (Test that type alias impl trait happens in a submodule)
       - #88179 (Mailmap entry for myself)
       - #88182 (We meant to use a trait instead of lifetime here)
       - #88183 (test TAIT in different positions)
       - #88189 (Add TAIT struct test)
       - #88192 (Use of impl trait in an impl as the value for an associated type in a dyn)
       - #88194 (Test use of impl Trait in an impl as the value for an associated type in an impl trait)
       - #88197 (Test tait use in a fn type)
       - #88201 (Test that incomplete inference for TAITs fail)
      
      Failed merges:
      
      r? `@ghost`
      `@rustbot` modify labels: rollup
      50731df2
    • J
      Rollup merge of #88201 - spastorino:tait-incomplete-inference-test, r=oli-obk · b9b53c8e
      Jack Huey 提交于
      Test that incomplete inference for TAITs fail
      
      r? `@oli-obk`
      
      Related to #86727
      b9b53c8e
    • J
      Rollup merge of #88197 - spastorino:tait-test-fn-type, r=oli-obk · 1d0d7c34
      Jack Huey 提交于
      Test tait use in a fn type
      
      r? `@oli-obk`
      
      I thought this was going to work but doesn't, quickly checked with Niko and he told me that we ruled this out for now. I'm not exactly sure why and how but here we have a test with a FIXME :)
      
      Related to #86727
      1d0d7c34
    • J
      Rollup merge of #88194 - spastorino:test-tait-assoc-impl-trait, r=oli-obk · 66b04c65
      Jack Huey 提交于
      Test use of impl Trait in an impl as the value for an associated type in an impl trait
      
      r? `@oli-obk`
      
      Related to #86727
      66b04c65
    • J
      Rollup merge of #88192 - spastorino:add-tait-test-for-assoc-dyn, r=oli-obk · d6492b13
      Jack Huey 提交于
      Use of impl trait in an impl as the value for an associated type in a dyn
      
      r? `@oli-obk`
      
      Related to #86727
      d6492b13
    • J
      Rollup merge of #88189 - spastorino:add-tait-struct-test, r=oli-obk · 73d97586
      Jack Huey 提交于
      Add TAIT struct test
      
      r? `@oli-obk`
      
      Related to #86727
      73d97586
    • J
      Rollup merge of #88183 - spastorino:add-tait-in-different-tuple-position, r=oli-obk · ae58c51f
      Jack Huey 提交于
      test TAIT in different positions
      
      r? `@oli-obk`
      
      Related to #86727
      ae58c51f
    • J
      Rollup merge of #88182 - spastorino:use-trait-in-tait-tests, r=oli-obk · 5be51f27
      Jack Huey 提交于
      We meant to use a trait instead of lifetime here
      
      r? `@oli-obk`
      
      Related to #86727
      5be51f27
    • J
      Rollup merge of #88179 - steffahn:mailmap, r=Mark-Simulacrum · 1a48b566
      Jack Huey 提交于
      Mailmap entry for myself
      1a48b566
    • J
      Rollup merge of #88172 - spastorino:tait-defining-use-submodule-test, r=oli-obk · 0689152b
      Jack Huey 提交于
      Test that type alias impl trait happens in a submodule
      
      r? `@oli-obk`
      
      Related to #86727
      0689152b
    • J
      Rollup merge of #88170 - nebkor:release-note-1.55, r=Mark-Simulacrum · 908b2ead
      Jack Huey 提交于
      Update release note for 1.55.0.
      
      Added a line about new formatting option, `{lib}`, for `cargo
      tree` (https://github.com/rust-lang/cargo/pull/9663).
      908b2ead
    • J
      Rollup merge of #88072 - kit-981:feature/build-ios-toolchain-on-linux, r=Mark-Simulacrum · 5ffff5cc
      Jack Huey 提交于
      Allow the iOS toolchain to be built on Linux
      
      The iOS toolchain can be built on Linux with minor changes. The compilation will invoke `xcrun` to find the path to the iPhone SDK but a fake `xcrun` executable can be used.
      
      ```
      #!/bin/sh
      echo "/path/to/sdk"
      ```
      
      The iOS toolchain can then be built and linked with rustup.
      
      ```
      $ ./x.py build --stage 2 --host x86_64-unknown-linux-gnu \
        	 --target aarch64-apple-ios
      $ rustup toolchain link stage1 build/x86_64-unknown-linux-gnu/stage1
      ```
      
      It's possible to take this toolchain and compile an iOS executable with it. This requires the ld64 linker and an iOS SDK. The ld64 linker can be taken from [cctools](https://github.com/tpoechtrager/cctools-port). A project's .cargo/config can then be edited to use the linker for this target.
      
      ```
      [target.aarch64-apple-ios]
      linker = "/path/to/cctools/bin/arm-apple-darwin-ld"
      rustflags = [
          "-C",
          """
      link-args=
          -F/path/to/sdk/System/Library/Frameworks
          -L/path/to/sdk/usr/lib
          -L/path/to/sdk/usr/lib/system/
          -adhoc_codesign
          """,
      ]
      ```
      5ffff5cc
    • J
      Rollup merge of #88057 - ehuss:releases-doc-macros, r=Mark-Simulacrum · 9e8b143e
      Jack Huey 提交于
      Update RELEASES to clarify attribute macro values.
      
      As noted in #87681, macros do not work with the `#[path]` attribute.  Since the places where macros *can* be used is very limited, I have changed this to just focus on `#[doc]` which is the only attribute where this is really useful.
      9e8b143e
    • J
      Rollup merge of #87604 - yaymukund:verify-backported-commits, r=Mark-Simulacrum · 8660e3d1
      Jack Huey 提交于
      CI: Verify commits in beta & stable are in upstream branches.
      
      Closes #74721
      
      I think this does the trick. https://github.com/rust-lang/rust/pull/87597 is an example of it failing as it should.
      8660e3d1
    • B
      Auto merge of #88075 - Xuanwo:vec_deque_retain, r=dtolnay · 9faa7141
      bors 提交于
      Optimize unnecessary check in VecDeque::retain
      
      This pr is highly inspired by https://github.com/rust-lang/rust/pull/88060 which shared the same idea: we can split the `for` loop into stages so that we can remove unnecessary checks like `del > 0`.
      
      ## Benchmarks
      
      Before
      
      ```rust
      test collections::vec_deque::tests::bench_retain_half_10000  ... bench:     290,125 ns/iter (+/- 8,717)
      test collections::vec_deque::tests::bench_retain_odd_10000   ... bench:     291,588 ns/iter (+/- 9,621)
      test collections::vec_deque::tests::bench_retain_whole_10000 ... bench:     287,426 ns/iter (+/- 9,009)
      ```
      
      After
      
      ```rust
      test collections::vec_deque::tests::bench_retain_half_10000  ... bench:     243,940 ns/iter (+/- 8,563)
      test collections::vec_deque::tests::bench_retain_odd_10000   ... bench:     242,768 ns/iter (+/- 3,903)
      test collections::vec_deque::tests::bench_retain_whole_10000 ... bench:     202,926 ns/iter (+/- 6,332)
      ```
      
      Based on the current benchmark, this PR will improve the perf of `VecDeque::retain` by around 16%. For special cases, the improvement will be up to 30%.
      Signed-off-by: NXuanwo <github@xuanwo.io>
      9faa7141
    • B
      Auto merge of #88135 - crlf0710:trait_upcasting_part_3, r=nikomatsakis · d3e2578c
      bors 提交于
      Trait upcasting coercion (part 3)
      
      By using separate candidates for each possible choice, this fixes type-checking issues in previous commits.
      
      r? `@nikomatsakis`
      d3e2578c
    • B
      Auto merge of #82776 - jyn514:extern-url-fallback, r=GuillaumeGomez · b1928aa3
      bors 提交于
      Give precedence to `html_root_url` over `--extern-html-root-url` by default, but add a way to opt-in to the previous behavior
      
      ## What is an HTML root url?
      
      It tells rustdoc where it should link when documentation for a crate is
      not available locally; for example, when a crate is a dependency of a
      crate documented with `cargo doc --no-deps`.
      
       ## What is the difference between `html_root_url` and `--extern-html-root-url`?
      
      Both of these tell rustdoc what the HTML root should be set to.
      `doc(html_root_url)` is set by the crate author, while
      `--extern-html-root-url` is set by the person documenting the crate.
      These are often different. For example, docs.rs uses
      `--extern-html-root-url https://docs.rs/crate-name/version` to ensure
      all crates have documentation, even if `html_root_url` is not set.
      Conversely, crates such as Rocket set `doc(html_root_url =
      "https://api.rocket.rs")`, because they prefer users to view the
      documentation on their own site.
      
      Crates also set `html_root_url` to ensure they have
      documentation when building locally when offline. This is unfortunate to
      require, because it's more work from the library author. It also makes
      it impossible to distinguish between crates that want to be viewed on a
      different site (e.g. Rocket) and crates that just want documentation to
      be visible offline at all (e.g. Tokio). I have authored a separate
      change to the API guidelines to no longer recommend doing this:
      rust-lang/api-guidelines#230.
      
       ## Why change the default?
      
      In the past, docs.rs has been the main user of `--extern-html-root-url`.
      However, it's useful for other projects as well. In particular, Cargo
      wants to pass it by default when running `--no-deps`
      (rust-lang/cargo#8296).
      
      Unfortunately, for these other use cases, the priority order is
      inverted. They want to give *precedence* to the URL the crate picks, and
      only fall back to the `--extern-html-root` if no `html_root_url` is
      present. That allows passing `--extern-html-root` unconditionally,
      without having to parse the source code to see what attributes are
      present.
      
      For docs.rs, however, we still want to keep the old behavior, so that
      all links on docs.rs stay on the site.
      b1928aa3
  3. 21 8月, 2021 4 次提交