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

Closed
wants to merge 18 commits into from
Closed

Commits on Jun 12, 2022

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

Commits on Jun 19, 2022

  1. Remove Cursor::append.

    It's a weird function: it lets you modify the token stream in the middle
    of iteration. There is only one call site, and it is only used for the
    rare `ProceduralMasquerade` legacy case.
    nnethercote committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    ccd956a View commit details
    Browse the repository at this point in the history
  2. Remove Cursor::index.

    It's unused.
    nnethercote committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    178b746 View commit details
    Browse the repository at this point in the history
  3. Remove TokenStream::from_streams.

    By inlining it into the only non-test call site. The one test call site
    is changed to use `TokenStreamBuilder`.
    nnethercote committed Jun 19, 2022
    Configuration menu
    Copy the full SHA
    f6b5788 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2022

  1. Merge TokenStreamBuilder::push into TokenStreamBuilder::build.

    Both functions do some modifying of streams using `make_mut`:
    - `push` sometimes glues the first token of the next stream to the last
      token of the first stream.
    - `build` appends tokens to the first stream.
    
    By doing all of this in the one place, things are simpler. The first
    stream can be modified in both ways (if necessary) in the one place, and
    any next stream with the first token removed doesn't need to be stored.
    nnethercote committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    2a5487a View commit details
    Browse the repository at this point in the history
  2. Add blank lines between methods in proc_macro_server.rs.

    Because that's the standard way of doing it.
    nnethercote committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    69f45b7 View commit details
    Browse the repository at this point in the history
  3. try_fold_unevaluated for infallible folders

    rust-lang#97447 added folding of unevaluated constants, but did not include an override of the default (fallible) operation in the blanket impl of `FallibleTypeFolder` for infallible folders.  Here we provide that missing override.
    
    r? @nnethercote
    eggyal committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    bd60475 View commit details
    Browse the repository at this point in the history
  4. Improve loading of crates.js and sidebar-items.js

    Now that the "All Crates" dropdown is only rendered on the search results page,
    there is no need to load crates.js on most pages. Load it only on crate pages.
    Also, add the `defer` attribute so it does not block page rendering.
    
    For sidebar-items.js, move the script tag to `<head>`. Since it already has the
    defer attribute it won't block loading. The defer attribute does preserve
    ordering between scripts, so instead of the callback on load, it can set a
    global variable on load, which is slightly simpler. Also, since it is required
    to finish rendering the page, beginning its load earlier is better.
    
    Remove generation and handling of sidebar-vars. Everything there can be computed
    with information available in JS via other means.
    
    Remove the "other" wrapper in the sidebar. It was unnecessary.
    
    Remove excess script fields
    jsha committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    27dcebe View commit details
    Browse the repository at this point in the history
  5. Reverse folder hierarchy

    rust-lang#91318 introduced a trait for infallible folders distinct from the fallible version.  For some reason (completely unfathomable to me now that I look at it with fresh eyes), the infallible trait was a supertrait of the fallible one: that is, all fallible folders were required to also be infallible.  Moreover the `Error` associated type was defined on the infallible trait!  It's so absurd that it has me questioning whether I was entirely sane.
    
    This trait reverses the hierarchy, so that the fallible trait is a supertrait of the infallible one: all infallible folders are required to also be fallible (which is a trivial blanket implementation).  This of course makes much more sense!  It also enables the `Error` associated type to sit on the fallible trait, where it sensibly belongs.
    
    There is one downside however: folders expose a `tcx` accessor method.  Since the blanket fallible implementation for infallible folders only has access to a generic `F: TypeFolder`, we need that trait to expose such an accessor to which we can delegate.  Alternatively it's possible to extract that accessor into a separate `HasTcx` trait (or similar) that would then be a supertrait of both the fallible and infallible folder traits: this would ensure that there's only one unambiguous `tcx` method, at the cost of a little additional boilerplate.  If desired, I can submit that as a separate PR.
    
    r? @jackh726
    eggyal committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    2526b08 View commit details
    Browse the repository at this point in the history
  6. Remove lies in comments.

    m-ou-se committed Jun 20, 2022
    Configuration menu
    Copy the full SHA
    a171a6b View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2022

  1. ⬆️ rust-analyzer

    lnicola committed Jun 21, 2022
    Configuration menu
    Copy the full SHA
    db542e4 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#98022 - compiler-errors:erroneous-borrowck-…

    …span, r=oli-obk
    
    Fix erroneous span for borrowck error
    
    I am not confident that this is the correct fix, but it does the job. Open to suggestions for a real fix instead.
    
    Fixes rust-lang#97997
    
    The issue is that we pass a [dummy location](https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_middle/mir/visit.rs.html#302) when type-checking the ["required consts"](https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/mir/struct.Body.html#structfield.required_consts) that are needed by the MIR body during borrowck. This means that when we fail to evaluate the constant, we use the span of `bb0[0]`, instead of the actual span of the constant.
    
    There are quite a few other places that use `START_BLOCK.start_location()`, `Location::START`, etc. when calling for a random/unspecified `Location` value. This is because, unlike (for example) `Span`, we don't have a dummy/miscellaneous value to use instead. I would appreciate guidance (either in this PR, or a follow-up) on what needs to be done to clean this up in general.
    JohnTitor authored Jun 21, 2022
    Configuration menu
    Copy the full SHA
    895b50f View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#98124 - jsha:defer-crates, r=GuillaumeGomez

    Improve loading of crates.js and sidebar-items.js
    
    Now that the "All Crates" dropdown is only rendered on the search results page,
    there is no need to load crates.js on most pages. Load it only on crate pages.
    Also, add the `defer` attribute so it does not block HTML parsing.
    
    For sidebar-items.js, move the script tag to `<head>`. Since it already has the
    defer attribute it won't block loading. The defer attribute does preserve
    ordering between scripts, so instead of the callback on load, it can set a
    global variable on load, which is slightly simpler. Also, since it is required
    to finish rendering the page, beginning its load earlier is better.
    
    Remove generation and handling of sidebar-vars. Everything there can be computed
    with information available in JS via other means.
    
    Remove the extra_scripts fields of the `Page` template. They were only
    used by source-script.js and source-files.js, which are now linked by the template
    based on whether it is rendering a source page.
    
    Remove the "other" wrapper in the sidebar. It was unnecessary.
    
    r? ``@GuillaumeGomez``
    
    Demo: https://rustdoc.crud.net/jsha/defer-crates/std/index.html
    JohnTitor authored Jun 21, 2022
    Configuration menu
    Copy the full SHA
    cfed2ae View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#98278 - nnethercote:some-token-stream-clean…

    …ups, r=petrochenkov
    
    Some token stream cleanups
    
    Best reviewed one commit at a time.
    
    r? ``@petrochenkov``
    JohnTitor authored Jun 21, 2022
    Configuration menu
    Copy the full SHA
    0827359 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#98306 - eggyal:add-unevaluated-to-blanket-f…

    …allibletypefolder, r=nnethercote
    
    `try_fold_unevaluated` for infallible folders
    
    rust-lang#97447 added folding of unevaluated constants, but did not include an override of the default (fallible) operation in the blanket impl of `FallibleTypeFolder` for infallible folders.  Here we provide that missing override.
    
    r? ``@nnethercote``
    JohnTitor authored Jun 21, 2022
    Configuration menu
    Copy the full SHA
    7354c04 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#98311 - eggyal:reverse-folder-hierarchy, r=…

    …jackh726
    
    Reverse folder hierarchy
    
    rust-lang#91318 introduced a trait for infallible folders distinct from the fallible version.  For some reason (completely unfathomable to me now that I look at it with fresh eyes), the infallible trait was a supertrait of the fallible one: that is, all fallible folders were required to also be infallible.  Moreover the `Error` associated type was defined on the infallible trait!  It's so absurd that it has me questioning whether I was entirely sane.
    
    This trait reverses the hierarchy, so that the fallible trait is a supertrait of the infallible one: all infallible folders are required to also be fallible (which is a trivial blanket implementation).  This of course makes much more sense!  It also enables the `Error` associated type to sit on the fallible trait, where it sensibly belongs.
    
    There is one downside however: folders expose a `tcx` accessor method.  Since the blanket fallible implementation for infallible folders only has access to a generic `F: TypeFolder`, we need that trait to expose such an accessor to which we can delegate.  Alternatively it's possible to extract that accessor into a separate `HasTcx` trait (or similar) that would then be a supertrait of both the fallible and infallible folder traits: this would ensure that there's only one unambiguous `tcx` method, at the cost of a little additional boilerplate.  If desired, I can submit that as a separate PR.
    
    r? ``@jackh726``
    JohnTitor authored Jun 21, 2022
    Configuration menu
    Copy the full SHA
    2f225f5 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#98313 - m-ou-se:fix-comments, r=joshtriplett

    Remove lies in comments.
    
    > does not have a const constructor
    
    > pub const fn new() -> Self
    
    🤔
    JohnTitor authored Jun 21, 2022
    Configuration menu
    Copy the full SHA
    2bbbf6c View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#98323 - lnicola:rust-analyzer-2022-06-21, r…

    …=lnicola
    
    ⬆️ rust-analyzer
    
    r? `@ghost`
    JohnTitor authored Jun 21, 2022
    Configuration menu
    Copy the full SHA
    6fc15dd View commit details
    Browse the repository at this point in the history