Skip to content

Rollup of 15 pull requests - #50968

Merged
bors merged 31 commits into
rust-lang:masterfrom
kennytm:rollup
May 22, 2018
Merged

Rollup of 15 pull requests#50968
bors merged 31 commits into
rust-lang:masterfrom
kennytm:rollup

Conversation

@kennytm

Copy link
Copy Markdown
Member

Successful merges:

Failed merges:

est31and others added 30 commits May 17, 2018 23:54
This turns an ICE on this code:
fn main() {
|_: [u8; break]| ();
}
from
'assertion failed: self.tcx.sess.err_count() > 0', librustc_typeck/check/mod.rs
to
librustc_mir/hair/cx/expr.rs:543: invalid loop id for break: not inside loop scope
which is at a later stage during compilation and most importantly
fixes of bug rust-lang#50576 will fix this as well.
This speeds up lots of rustc-perf benchmark runs. The maximum
improvement is 1%, but there are a lot in the 0.5--1.0% range.
This speeds up a few rustc-perf benchmark runs, most notably ones
involving 'coercions', the best by 2%.
This commit fixes an accidental regression from rust-lang#50473 where lifetime tokens
produced by procedural macros ended up getting lost in translation in the
compiler and not actually producing parseable code. The issue lies in the fact
that a lifetime's `Ident` is prefixed with `'`. The `glue` implementation for
gluing joint tokens together forgot to take this into account so the lifetime
inside of `Ident` was missing the leading tick!
The `glue` implementation here is updated to create a new `Symbol` in these
situations to manufacture a new `Ident` with a leading tick to ensure it parses
correctly.
Closesrust-lang#50942
The default capacity of a VecDeque is 8, which is excessive here. In a
"base incremental" check build of rustc-perf's tuple-stress benchmark,
this decreases total heap allocation by 26%. I couldn't see a clear
speedup, but it can't hurt.
…woerister
CheckLoopVisitor: also visit closure arguments
This turns the ICE rust-lang#50581 in this code:
```rust
fn main() {
|_: [u8; break]| ();
}
```
from
```
'assertion failed: self.tcx.sess.err_count() > 0', librustc_typeck/check/mod.rs
```
to
```
librustc_mir/hair/cx/expr.rs:543: invalid loop id for break: not inside loop scope
```
which is an ICE as well but at a later stage during compilation and most importantly
fixes of bug rust-lang#50576 will fix this as well.
As this "only" moves an ICE to a later stage, I didn't add any tests.
Now I have manually verified the default impls of the visitor trait to check whether we have missed any other opportunity to visit more stuff and coudln't find anything (except the missing `break` visit I've fixed in rust-lang#50829 but that one was already r+'d so I didn't want to push more commits).
…uillaumeGomez
rustdoc: use "short form" doc(cfg) printing even when combined with other conditionals
Fixesrust-lang#49334
The original "short form" printing was introduced when `target_feature` was added to the `doc(cfg)` handling. However, it didn't properly propagate the "short form" indicator if the cfg was a combination of multiple conditionals, so the linked issue happened. This changes the handling to use a bool in the original `Html` wrapper, rather than a separate wrapper struct that defers to the original one.
Issue rust-lang#50636: Improve error diagnostic with missing commas after struct fields.
Fixesrust-lang#50636
…elwoerister
Inline `try_get`.
This speeds up lots of rustc-perf benchmark runs. The maximum
improvement is 1%, but there are a lot in the 0.5--1.0% range.
Optimize seen Predicate filtering.
This speeds up a few rustc-perf benchmark runs, most notably ones
involving 'coercions', the best by 2%.
…nSapin
Stabilize feature from_ref
Function `from_ref_mut` is now renamed to `from_mut`, as discussed in rust-lang#45703.
Closesrust-lang#45703.
r? @SimonSapin
…petrochenkov
rustc: Fix procedural macros generating lifetime tokens
This commit fixes an accidental regression from rust-lang#50473 where lifetime tokens
produced by procedural macros ended up getting lost in translation in the
compiler and not actually producing parseable code. The issue lies in the fact
that a lifetime's `Ident` is prefixed with `'`. The `glue` implementation for
gluing joint tokens together forgot to take this into account so the lifetime
inside of `Ident` was missing the leading tick!
The `glue` implementation here is updated to create a new `Symbol` in these
situations to manufacture a new `Ident` with a leading tick to ensure it parses
correctly.
Closesrust-lang#50942
…umeGomez
rustdoc: set tab width in rust source blocks
cc rust-lang#49155 (fixes it?)
This sets the tab width ([in supported browsers](https://developer.mozilla.org/en-US/docs/Web/CSS/tab-size)) in Rust source blocks to 4 spaces wide (instead of the default 8), to correspond with the style guidelines.
Add the 2018 edition of the book to doc.rust-lang.org
The second edition of the book is on its way to the printers, and as such, is frozen. We've forked off the 2018 edition to add new stuff to; this PR now builds it so that people can read it on doc.rust-lang.org.
Micro-optimization on PR#50697
We should stop iterating through the indices in the `init_path_map` once we've already found a match for the local.
r? @nikomatsakis or @pnkfelix
…etrochenkov
Right-size the `VecDeque` in `coerce_unsized`.
The default capacity of a VecDeque is 8, which is excessive here. In a
"base incremental" check build of rustc-perf's tuple-stress benchmark,
this decreases total heap allocation by 26%. I couldn't see a clear
speedup, but it can't hurt.
@rust-highfive

Copy link
Copy Markdown
Contributor

Some changes occurred in HTML/CSS.

cc @GuillaumeGomez

@rust-highfive

Copy link
Copy Markdown
Contributor

r? @aturon

(rust_highfive has picked a reviewer for you, use r? to override)

@rust-highfive

Copy link
Copy Markdown
Contributor

warningWarningwarning

  • These commits modify submodules.

@rust-highfiverust-highfive added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label May 22, 2018
@kennytm

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=15

@bors

bors commented May 22, 2018

Copy link
Copy Markdown
Collaborator

📌 Commit 0c4d337 has been approved by kennytm

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels May 22, 2018
@bors

bors commented May 22, 2018

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 0c4d337 with merge e063518...

bors added a commit that referenced this pull request May 22, 2018
Rollup of 15 pull requests
Successful merges:
- #50846 (Add E0665)
- #50849 (CheckLoopVisitor: also visit closure arguments)
- #50863 (Make `[T]::len` and `str::len` const fn)
- #50875 (rustdoc: use "short form" doc(cfg) printing even when combined with other conditionals)
- #50913 (Fix typo in cell.rs)
- #50914 (Issue #50636: Improve error diagnostic with missing commas after struct fields.)
- #50931 (Inline `try_get`.)
- #50932 (Optimize seen Predicate filtering.)
- #50945 (Stabilize feature from_ref)
- #50946 (rustc: Fix procedural macros generating lifetime tokens)
- #50947 (rustdoc: set tab width in rust source blocks)
- #50952 (Add the 2018 edition of the book to doc.rust-lang.org)
- #50958 (Micro-optimization on PR#50697)
- #50961 (Fix FileCheck finding with MSVC)
- #50963 (Right-size the `VecDeque` in `coerce_unsized`.)
Failed merges:
@bors

bors commented May 22, 2018

Copy link
Copy Markdown
Collaborator

☀️ Test successful - status-appveyor, status-travis
Approved by: kennytm
Pushing e063518 to master...

@bors
bors merged commit 0c4d337 into rust-lang:masterMay 22, 2018
@CentrilCentril added the rollup A PR which is a rollup label Oct 2, 2019
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

16 participants

@kennytm@rust-highfive@bors@aturon@Centril@est31@QuietMisdreavus@d-e-s-o@simartin@nnethercote@GuillaumeGomez@alexcrichton@oli-obk@KiChjang@Zoxc@steveklabnik