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 15 pull requests #81537

Closed
wants to merge 37 commits into from
Closed

Rollup of 15 pull requests #81537

wants to merge 37 commits into from

Commits on Jan 13, 2021

  1. Stabilize unsigned_abs

    jhpratt committed Jan 13, 2021
    Configuration menu
    Copy the full SHA
    8539425 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    edf2e37 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2021

  1. Add core::stream::Stream

    This patch adds the `core::stream` submodule and implements `core::stream::Stream` in accordance with RFC2996.
    
    Add feedback from @camelid
    yoshuawuyts committed Jan 22, 2021
    Configuration menu
    Copy the full SHA
    0c8db16 View commit details
    Browse the repository at this point in the history

Commits on Jan 23, 2021

  1. Make functional record update/struct update syntax works inside closu…

    …res when feature capture_disjoint_fields is enabled
    null-sleep committed Jan 23, 2021
    Configuration menu
    Copy the full SHA
    e94cf57 View commit details
    Browse the repository at this point in the history
  2. Remove Stream::next

    This is a temporary change only, as we wait to resolve dynamic dispatch issues. The `Stream::next` method and corresponding documentation are expected to be fully restored once we have a path to proceed.
    
    Ref: rust-lang/rfcs#2996 (comment)
    
    update docs
    yoshuawuyts committed Jan 23, 2021
    Configuration menu
    Copy the full SHA
    a1b1132 View commit details
    Browse the repository at this point in the history

Commits on Jan 25, 2021

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

Commits on Jan 26, 2021

  1. Configuration menu
    Copy the full SHA
    328abfb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    425a70a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c07e558 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a623ea5 View commit details
    Browse the repository at this point in the history

Commits on Jan 28, 2021

  1. Clone entire TokenCursor when collecting tokens

    Reverts PR #80830
    Fixes taiki-e/pin-project#312
    
    We can have an arbitrary number of `None`-delimited group frames pushed
    on the stack due to proc-macro invocations, which can legally be exited.
    Attempting to account for this would add a lot of complexity for a tiny
    performance gain, so let's just use the original strategy.
    Aaron1011 committed Jan 28, 2021
    Configuration menu
    Copy the full SHA
    5d73918 View commit details
    Browse the repository at this point in the history
  2. Balance sidebar Deref cycle check with main content

    The `Deref` cycle checks added as part of #80653 were "unbalanced" in the sense
    that the main content code path checks for cycles _before_ descending, while the
    sidebar checks _after_. Checking _before_ is correct, so this changes the
    sidebar path to match the main content path.
    jryans committed Jan 28, 2021
    Configuration menu
    Copy the full SHA
    a6fa92c View commit details
    Browse the repository at this point in the history

Commits on Jan 29, 2021

  1. rustdoc: Remove unnecessary optional

    Previously, the HTML output format was represented by both
    `Some(OutputFormat::Html)` and `None` so there's no need to have an
    optional. Instead, `OutputFormat::Html` is explicitly the default and we
    no longer have a "tri-state enum".
    camelid committed Jan 29, 2021
    Configuration menu
    Copy the full SHA
    f620b5c View commit details
    Browse the repository at this point in the history
  2. Updated Vec::splice documentation

    Replacing with equal number of values does not increase the length of the vec.
    
    Reference: https://stackoverflow.com/a/62559271/3990767
    SOF3 authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    02094f9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5e983d7 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    63714af View commit details
    Browse the repository at this point in the history
  5. Treat nightlies for a version as complete

    This commit makes cfg(version) treat the nightlies
    for version 1.n.0 as 1.n.0, even though that nightly
    version might not have all stabilizations and features
    of the released 1.n.0. This is done for greater
    convenience for people who want to test a newly
    stabilized feature on nightly.
    
    For users who wish to pin nightlies, this commit adds
    a -Z assume-incomplete-release option that they can
    enable if there are any issues due to this change.
    est31 committed Jan 29, 2021
    Configuration menu
    Copy the full SHA
    d8b5745 View commit details
    Browse the repository at this point in the history
  6. Add tests

    est31 committed Jan 29, 2021
    Configuration menu
    Copy the full SHA
    dd18c48 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    08141a5 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    13ffa43 View commit details
    Browse the repository at this point in the history
  9. Fix typo in pat.rs

    parentesized -> parenthesized
    eltociear authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    718398c View commit details
    Browse the repository at this point in the history
  10. Don't print error output from rustup when detecting default build triple

    Before, it could print this error if no toolchain was configured:
    
    ```
    error: no default toolchain configured
    error: backtrace:
    error: stack backtrace:
       0: error_chain::backtrace::imp::InternalBacktrace::new
       1: rustup::config::Cfg::toolchain_for_dir
       2: rustup_init::run_rustup_inner
       3: rustup_init::main
       4: std::rt::lang_start::{{closure}}
       5: main
       6: __libc_start_main
       7: _start
    ```
    jyn514 committed Jan 29, 2021
    Configuration menu
    Copy the full SHA
    807b5f5 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of #79023 - yoshuawuyts:stream, r=KodrAus

    Add `core::stream::Stream`
    
    [[Tracking issue: #79024](#79024)]
    
    This patch adds the `core::stream` submodule and implements `core::stream::Stream` in accordance with [RFC2996](rust-lang/rfcs#2996). The RFC hasn't been merged yet, but as requested by the libs team in rust-lang/rfcs#2996 (comment) I'm filing this PR to get the ball rolling.
    
    ## Documentatation
    
    The docs in this PR have been adapted from [`std::iter`](https://doc.rust-lang.org/std/iter/index.html), [`async_std::stream`](https://docs.rs/async-std/1.7.0/async_std/stream/index.html), and [`futures::stream::Stream`](https://docs.rs/futures/0.3.8/futures/stream/trait.Stream.html). Once this PR lands my plan is to follow this up with PRs to add helper methods such as `stream::repeat` which can be used to document more of the concepts that are currently missing. That will allow us to cover concepts such as "infinite streams" and "laziness" in more depth.
    
    ## Feature gate
    
    The feature gate for `Stream` is `stream_trait`. This matches the `#[lang = "future_trait"]` attribute name. The intention is that only the APIs defined in RFC2996 will use this feature gate, with future additions such as `stream::repeat` using their own feature gates. This is so we can ensure a smooth path towards stabilizing the `Stream` trait without needing to stabilize all the APIs in `core::stream` at once. But also don't start expanding the API until _after_ stabilization, as was the case with `std::future`.
    
    __edit:__ the feature gate has been changed to `async_stream` to match the feature gate proposed in the RFC.
    
    ## Conclusion
    
    This PR introduces `core::stream::{Stream, Next}` and re-exports it from `std` as `std::stream::{Stream, Next}`. Landing `Stream` in the stdlib has been a mult-year process; and it's incredibly exciting for this to finally happen!
    
    ---
    
    r? ````@KodrAus````
    cc/ ````@rust-lang/wg-async-foundations```` ````@rust-lang/libs````
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    8ad987f View commit details
    Browse the repository at this point in the history
  12. Rollup merge of #80886 - RalfJung:stable-raw-ref-macros, r=m-ou-se

    Stabilize raw ref macros
    
    This stabilizes `raw_ref_macros` (#73394), which is possible now that #74355 is fixed.
    
    However, as I already said in #73394 (comment), I am not particularly happy with the current names of the macros. So I propose we also change them, which means I am proposing to stabilize the following in `core::ptr`:
    ```rust
    pub macro const_addr_of($e:expr) {
        &raw const $e
    }
    
    pub macro mut_addr_of($e:expr) {
        &raw mut $e
    }
    ```
    
    The macro name change means we need another round of FCP. Cc ````@rust-lang/libs````
    Fixes #73394
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    a8da20f View commit details
    Browse the repository at this point in the history
  13. Rollup merge of #80959 - jhpratt:unsigned_abs-stabilization, r=m-ou-se

    Stabilize `unsigned_abs`
    
    Resolves #74913.
    
    This PR stabilizes the `i*::unsigned_abs()` method, which returns the absolute value of an integer _as its unsigned equivalent_. This has the advantage that it does not overflow on `i*::MIN`.
    
    I have gone ahead and used this in a couple locations throughout the repository.
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    27faf0d View commit details
    Browse the repository at this point in the history
  14. Rollup merge of #81210 - ssomers:btree_fix_node_size_test, r=Mark-Sim…

    …ulacrum
    
    BTreeMap: correct node size test case for choices of B
    
    r? ````````@Mark-Simulacrum````````
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    79af86f View commit details
    Browse the repository at this point in the history
  15. Rollup merge of #81291 - sexxi-goose:fix-struct-update-functional-rec…

    …ord-update-syntax-error, r=nikomatsakis
    
    Support FRU pattern with `[feature(capture_disjoint_fields)]`
    
    In case of a functional record update syntax for creating a structure, `ExprUseVisitor` to only detect the precise use of some of the field in the `..x` part of the syntax. However, when we start building MIR, we
    1. First, build the place for `x`
    2. and then, add precise field projections so that only some parts of `x` end up getting read.
    
    When `capture_disjoint_fields` is enabled, and FRU is used within a closure `x` won't be completely captured, and therefore the first step will fail. This PR updates `mir_build` to create a place builder in the first step and then create place from the builder only after applying the field projection.
    
    Closes rust-lang/project-rfc-2229#32
    r? `````@nikomatsakis`````
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    dd73646 View commit details
    Browse the repository at this point in the history
  16. Rollup merge of #81409 - gilescope:chars_count, r=joshtriplett

    Slight simplification of chars().count()
    
    Slight simplification: No need to call len(), we can just count the number of non continuation bytes.
    
    I can't see any reason not to do this, can you?
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    e074edb View commit details
    Browse the repository at this point in the history
  17. Rollup merge of #81468 - est31:cfg_version, r=petrochenkov

    cfg(version): treat nightlies as complete
    
    This PR makes cfg(version) treat the nightlies
    for version 1.n.0 as 1.n.0, even though that nightly
    version might not have all stabilizations and features
    of the released 1.n.0. This is done for greater
    convenience for people who want to test a newly
    stabilized feature on nightly, or in other words,
    give newly stabilized features as many eyeballs
    as possible.
    
    For users who wish to pin nightlies, this commit adds
    a -Z assume-incomplete-release option that they can
    enable if they run into any issues due to this change.
    Implements the suggestion in #64796 (comment)
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    44bf48d View commit details
    Browse the repository at this point in the history
  18. Rollup merge of #81472 - Aaron1011:fix/revert-cursor-clone, r=petroch…

    …enkov
    
    Clone entire `TokenCursor` when collecting tokens
    
    Reverts PR #80830
    Fixes taiki-e/pin-project#312
    
    We can have an arbitrary number of `None`-delimited group frames pushed
    on the stack due to proc-macro invocations, which can legally be exited.
    Attempting to account for this would add a lot of complexity for a tiny
    performance gain, so let's just use the original strategy.
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    0072181 View commit details
    Browse the repository at this point in the history
  19. Rollup merge of #81491 - jryans:rustdoc-deref-ice-81395, r=GuillaumeG…

    …omez
    
    Balance sidebar `Deref` cycle check with main content
    
    The `Deref` cycle checks added as part of #80653 were "unbalanced" in the sense
    that the main content code path checks for cycles _before_ descending, while the
    sidebar checks _after_. Checking _before_ is correct, so this changes the
    sidebar path to match the main content path.
    
    Fixes #81395
    
    r? ````@GuillaumeGomez````
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    3c5786f View commit details
    Browse the repository at this point in the history
  20. Rollup merge of #81495 - camelid:rustdoc-output_format-optional, r=Gu…

    …illaumeGomez
    
    rustdoc: Remove unnecessary optional
    
    Previously, the HTML output format was represented by both
    `Some(OutputFormat::Html)` and `None` so there's no need to have an
    optional. Instead, `OutputFormat::Html` is explicitly the default and we
    no longer have a "tri-state enum".
    
    r? ````@GuillaumeGomez````
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    cb60a3d View commit details
    Browse the repository at this point in the history
  21. Rollup merge of #81499 - SOF3:patch-1, r=sanxiyn

    Updated Vec::splice documentation
    
    Replacing with equal number of values does not increase the length of the vec.
    
    Reference: https://stackoverflow.com/a/62559271/3990767
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    036b95a View commit details
    Browse the repository at this point in the history
  22. Rollup merge of #81501 - calebcartwright:update-rustfmt, r=sanxiyn

    update rustfmt to v1.4.34
    
    Short summary: Various formatting fixes (several const generic related) and introduction of `imports_granularity` config option
    
    Long summary copied from changelog:
    
    #### Changed
    - `merge_imports` configuration has been deprecated in favor of the new `imports_granularity` option. Any existing usage of `merge_imports` will be automatically mapped to the corresponding value on `imports_granularity` with a warning message printed to encourage users to update their config files.
    
    #### Added
    - New `imports_granularity` option has been added which succeeds `merge_imports`. This new option supports several additional variants which allow users to merge imports at different levels (crate or module), and even flatten imports to have a single use statement per item. ([PR rust-lang/rustfmt#4634](rust-lang/rustfmt#4634), [PR rust-lang/rustfmt#4639](rust-lang/rustfmt#4639))
    
    See the section on the configuration site for more information
    https://rust-lang.github.io/rustfmt/?version=v1.4.33&search=#imports_granularity
    
    #### Fixed
    - Fix erroneous removal of `const` keyword on const trait impl ([rust-lang/rustfmt#4084](rust-lang/rustfmt#4084))
    - Fix incorrect span usage wit const generics in supertraits ([rust-lang/rustfmt#4204](rust-lang/rustfmt#4204))
    - Use correct span for const generic params ([rust-lang/rustfmt#4263](rust-lang/rustfmt#4263))
    - Correct span on const generics to include type bounds ([rust-lang/rustfmt#4310](rust-lang/rustfmt#4310))
    - Idempotence issue on blocks containing only empty statements ([rust-lang/rustfmt#4627](rust-lang/rustfmt#4627) and [#3868](rust-lang/rustfmt#3868))
    - Fix issue with semicolon placement on required functions that have a trailing comment that ends in a line-style comment before the semicolon ([rust-lang/rustfmt#4646](rust-lang/rustfmt#4646))
    - Avoid shared interned cfg_if symbol since rustfmt can re-initialize the rustc_ast globals on multiple inputs ([rust-lang/rustfmt#4656](rust-lang/rustfmt#4656))
    - Don't insert trailing comma on (base-less) rest in struct literals within macros ([rust-lang/rustfmt#4675](rust-lang/rustfmt#4675))
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    c70fddf View commit details
    Browse the repository at this point in the history
  23. Rollup merge of #81512 - GuillaumeGomez:cleanup-fixme-rustdoc, r=buga…

    …dani
    
    Add missing variants in match binding
    
    cc ````@bugadani```` ````@CraftSpider````
    r? ````@camelid````
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    d8a8fa3 View commit details
    Browse the repository at this point in the history
  24. Rollup merge of #81515 - eltociear:patch-7, r=jonas-schievink

    Fix typo in pat.rs
    
    parentesized -> parenthesized
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    9cb43cf View commit details
    Browse the repository at this point in the history
  25. Rollup merge of #81519 - jyn514:rustup-toolchain, r=Mark-Simulacrum

    Don't print error output from rustup when detecting default build triple
    
    Before, it could print this error if no toolchain was configured:
    
    ```
    error: no default toolchain configured
    error: backtrace:
    error: stack backtrace:
       0: error_chain::backtrace::imp::InternalBacktrace::new
       1: rustup::config::Cfg::toolchain_for_dir
       2: rustup_init::run_rustup_inner
       3: rustup_init::main
       4: std::rt::lang_start::{{closure}}
       5: main
       6: __libc_start_main
       7: _start
    ```
    jonas-schievink authored Jan 29, 2021
    Configuration menu
    Copy the full SHA
    3e21b25 View commit details
    Browse the repository at this point in the history