Skip to content

Rollup of 15 pull requests - #64160

Merged
bors merged 51 commits into
rust-lang:masterfrom
Centril:rollup-vrfj1pt
Sep 5, 2019
Merged

Rollup of 15 pull requests#64160
bors merged 51 commits into
rust-lang:masterfrom
Centril:rollup-vrfj1pt

Conversation

@Centril

Copy link
Copy Markdown
Contributor

Successful merges:

Failed merges:

r? @ghost

ghedoand others added 30 commits August 28, 2019 23:59
This returns whether a `Place` references the same region of memory
as its base, or equivalently whether it contains a `Deref` projection.
This is helpful for analyses that must track state for locals, since an
assignment to `x` or `x.field` is fundamentally different than one to
`*x`, which may mutate any memory region.
Because of a compiler bug that adding `Self: ExactSizeIterator` makes
the compiler forget `Self::Item` is `<I as Iterator>::Item`, we remove
this specialization for now.
* Make it clear that type erasure is required, not just pointer
indirection.
* Don't make the message specific to direct recursion.
This prevents mutual `async fn` recursion
It's a hot enough path that moving it slightly earlier gives a tiny but
easy speedup.
This is not a compelling change in isolation, but it is a necessary
step.
It has a single use, which is easily changed to something better.
Add a `Place::is_indirect` method to determine whether a `Place` contains a `Deref` projection
Working on rust-lang#63860 requires tracking some property about each local. This requires differentiating `Place`s like `x` and `x.field[index]` from ones like `*x` and `*x.field`, since the first two will always access the same region of memory as `x` while the latter two may access any region of memory. This functionality is duplicated in various places across the compiler. This PR adds a helper method to `Place` which determines whether that `Place` has a `Deref` projection at any point and changes some existing code to use the new method.
I've not converted `qualify_consts.rs` to use the new method, since it's not a trivial conversion and it will get replaced anyway by rust-lang#63860. There may be other potential uses besides the two I change in this PR.
r? @oli-obk
… r=nikomatsakis
Harden `param_attrs` test wrt. usage of a proc macro `#[attr]`
The `param-attrs-builtin-attrs.rs` test file uses the `#[test]` attribute which should cover this but `#[test]` isn't a proc macro attribute so we add another test to be on the safe side. This intends to address rust-lang#64010 (comment).
r? @nikomatsakis
cc @c410-f3r@petrochenkov
cc rust-lang#60406
…t-recursion, r=varkor
Check impl trait substs when checking for recursive types
closesrust-lang#64004
…ts, r=alexcrichton
Add some more tests for underscore imports
…rustc-book-1.37, r=alexcrichton
Update xLTO compatibility table in rustc book.
This is a combination known to work reliable when building Firefox on all the major platforms.
r? @alexcrichton
Refer to "`self` type" instead of "receiver type"
Fixrust-lang#42603.
…er, r=petrochenkov
Move path parsing earlier
It's a hot enough path that moving it slightly earlier gives a tiny but easy speedup.
r? @petrochenkov
…ut_uninit_integers, r=Centril
Added warning around code with reference to uninit bytes
Officially, uninitialized integers, and therefore, Rust references to them are _invalid_ (note that this may evolve into official defined behavior (_c.f._, rust-lang/unsafe-code-guidelines#71)).
However, `::std` uses references to uninitialized integers when working with the `Read::initializer` feature (rust-lang#42788), since it relies on this unstably having defined behavior with the current implementation of the compiler (IIUC).
Hence the comment to disincentivize people from using this pattern outside the standard library.
…tring, r=petrochenkov
Minimize uses of `LocalInternedString`
`LocalInternedString` is described as "An alternative to `Symbol` and `InternedString`, useful when the chars within the symbol need to be accessed. It is best used for temporary values."
This PR makes the code match that comment, by removing all non-local uses of `LocalInternedString`. This allows the removal of a number of operations on `LocalInternedString` and a couple of uses of `unsafe`.
@Centril

Copy link
Copy Markdown
ContributorAuthor

@bors r+ p=15 rollup=never

@bors

bors commented Sep 5, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit 51ae5d0 has been approved by Centril

@borsbors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Sep 5, 2019
@bors

bors commented Sep 5, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 51ae5d0 with merge a24f636...

bors added a commit that referenced this pull request Sep 5, 2019
Rollup of 15 pull requests
Successful merges:
- #62860 (Stabilize checked_duration_since for 1.38.0)
- #63549 (Rev::rposition counts from the wrong end)
- #63985 (Stabilize pin_into_inner in 1.39.0)
- #64005 (Add a `Place::is_indirect` method to determine whether a `Place` contains a `Deref` projection)
- #64031 (Harden `param_attrs` test wrt. usage of a proc macro `#[attr]`)
- #64038 (Check impl trait substs when checking for recursive types)
- #64043 (Add some more tests for underscore imports)
- #64092 (Update xLTO compatibility table in rustc book.)
- #64110 (Refer to "`self` type" instead of "receiver type")
- #64120 (Move path parsing earlier)
- #64123 (Added warning around code with reference to uninit bytes)
- #64128 (unused_parens: account for or-patterns and `&(mut x)`)
- #64141 (Minimize uses of `LocalInternedString`)
- #64142 (Fix doc links in `std::cmp` module)
- #64148 (fix a few typos in comments)
Failed merges:
r? @ghost
@bors

bors commented Sep 5, 2019

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-azure
Approved by: Centril
Pushing a24f636 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 5, 2019
@bors
bors merged commit 51ae5d0 into rust-lang:masterSep 5, 2019
@Centril
Centril deleted the rollup-vrfj1pt branch September 5, 2019 06:04
@rust-highfive

Copy link
Copy Markdown
Contributor

📣 Toolstate changed by #64160!

Tested on commit a24f636.
Direct link to PR: #64160

💔 clippy-driver on windows: test-pass → build-fail (cc @Manishearth@llogiq@mcarton@oli-obk@phansch@flip1995, @rust-lang/infra).
💔 clippy-driver on linux: test-pass → build-fail (cc @Manishearth@llogiq@mcarton@oli-obk@phansch@flip1995, @rust-lang/infra).

rust-highfive added a commit to rust-lang-nursery/rust-toolstate that referenced this pull request Sep 5, 2019
Tested on commit rust-lang/rust@a24f636.
Direct link to PR: <rust-lang/rust#64160>
💔 clippy-driver on windows: test-pass → build-fail (cc @Manishearth@llogiq@mcarton@oli-obk@phansch@flip1995, @rust-lang/infra).
💔 clippy-driver on linux: test-pass → build-fail (cc @Manishearth@llogiq@mcarton@oli-obk@phansch@flip1995, @rust-lang/infra).
@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

merged-by-borsThis PR was explicitly merged by bors.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.

12 participants

@Centril@bors@rust-highfive@ghedo@ecstatic-morse@sfanxiang@matthewjasper@michaelwoerister@estebank@nnethercote@tesuji@vi