-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Rollup of 7 pull requests #98327
Commits on Jun 12, 2022
-
Configuration menu - View commit details
-
Copy full SHA for ccf6124 - Browse repository at this point
Copy the full SHA ccf6124View commit details
Commits on Jun 19, 2022
-
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.
Configuration menu - View commit details
-
Copy full SHA for ccd956a - Browse repository at this point
Copy the full SHA ccd956aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 178b746 - Browse repository at this point
Copy the full SHA 178b746View commit details -
Remove
TokenStream::from_streams
.By inlining it into the only non-test call site. The one test call site is changed to use `TokenStreamBuilder`.
Configuration menu - View commit details
-
Copy full SHA for f6b5788 - Browse repository at this point
Copy the full SHA f6b5788View commit details
Commits on Jun 20, 2022
-
Merge
TokenStreamBuilder::push
intoTokenStreamBuilder::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.
Configuration menu - View commit details
-
Copy full SHA for 2a5487a - Browse repository at this point
Copy the full SHA 2a5487aView commit details -
Add blank lines between methods in
proc_macro_server.rs
.Because that's the standard way of doing it.
Configuration menu - View commit details
-
Copy full SHA for 69f45b7 - Browse repository at this point
Copy the full SHA 69f45b7View commit details -
try_fold_unevaluated
for infallible foldersrust-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
Configuration menu - View commit details
-
Copy full SHA for bd60475 - Browse repository at this point
Copy the full SHA bd60475View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 27dcebe - Browse repository at this point
Copy the full SHA 27dcebeView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 2526b08 - Browse repository at this point
Copy the full SHA 2526b08View commit details -
Configuration menu - View commit details
-
Copy full SHA for a171a6b - Browse repository at this point
Copy the full SHA a171a6bView commit details
Commits on Jun 21, 2022
-
Configuration menu - View commit details
-
Copy full SHA for db542e4 - Browse repository at this point
Copy the full SHA db542e4View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 895b50f - Browse repository at this point
Copy the full SHA 895b50fView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for cfed2ae - Browse repository at this point
Copy the full SHA cfed2aeView commit details -
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``
Configuration menu - View commit details
-
Copy full SHA for 0827359 - Browse repository at this point
Copy the full SHA 0827359View commit details -
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``
Configuration menu - View commit details
-
Copy full SHA for 7354c04 - Browse repository at this point
Copy the full SHA 7354c04View commit details -
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``
Configuration menu - View commit details
-
Copy full SHA for 2f225f5 - Browse repository at this point
Copy the full SHA 2f225f5View commit details -
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 🤔
Configuration menu - View commit details
-
Copy full SHA for 2bbbf6c - Browse repository at this point
Copy the full SHA 2bbbf6cView commit details -
Rollup merge of rust-lang#98323 - lnicola:rust-analyzer-2022-06-21, r…
…=lnicola ⬆️ rust-analyzer r? `@ghost`
Configuration menu - View commit details
-
Copy full SHA for 6fc15dd - Browse repository at this point
Copy the full SHA 6fc15ddView commit details