Skip to content

Rollup of 14 pull requests - #66366

Merged
bors merged 47 commits into
rust-lang:masterfrom
JohnTitor:rollup-xlc1bj2
Nov 13, 2019
Merged

Rollup of 14 pull requests#66366
bors merged 47 commits into
rust-lang:masterfrom
JohnTitor:rollup-xlc1bj2

Conversation

@JohnTitor

Copy link
Copy Markdown
Member

Successful merges:

Failed merges:

r? @ghost

ArturKovacsand others added 30 commits November 4, 2019 19:37
One of the links in the docs was being rendered as a literal
open-bracket followed by a single quote, instead of being transformed
into a link. Fix it to match the link earlier in the same paragraph.
This was essentially a "query" previously (with no key, just always run
once when resolving the crate dependencies), and remains so, just now in
a way that isn't on Session. This removes the need for the `Once` as
well.
Similarly to the previous commit, there's no need for this to be in
Session and have a Once around it.
In bootstrap, we set `RUSTC_INSTALL_BINDIR` to `config.bindir`, so
rustdoc can find rustc relative to the toolchain sysroot. However, if a
distro script like Fedora's `%configure` sets an absolute path, then
rustdoc's `sysroot.join(bin_path)` ignores that sysroot altogether.
That would be OK once the toolchain is actually installed, but it breaks
the in-tree doc tests during the build, since `/usr/bin/rustc` is still
the old version. So now we try to make `RUSTC_INSTALL_BINDIR` relative
to the sysroot prefix in the first place.
This makes it easier to add new non-standard constructors, and this also
ensures that we don't forget cases when adding a new constructor.
It counts as an extra constructor for types that are not allowed to be
matched exhaustively.
The single dependency on queries (QueryName) can be fairly easily
abstracted via a trait and this further decouples Session from librustc
(the primary goal).
This helps decouple the lint system from needing the implicit TLS TyCtxt
as well.
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
…c, r=QuietMisdreavus
rename cfg(rustdoc) into cfg(doc)
Needed by rust-lang#61351
r? @QuietMisdreavus
…-E0623, r=Dylan-DPC
Add long error explanation for E0623
Part of rust-lang#61137.
r? @Dylan-DPC
…sh-link, r=Dylan-DPC
docs: Fix link to BufWriter::flush
One of the links in the docs was being rendered as a literal
open-bracket followed by a single quote, instead of being transformed
into a link. Fix it to match the link earlier in the same paragraph.
…onSapin
add raw ptr variant of UnsafeCell::get
This has come up recently in rust-lang#66051 (Cc @Centril@pitdicker) as well as in discussion with @nikomatsakis and in unrelated discussion with @withoutboats.
add Result::map_or
This PR adds this API to make it consistent with `Option::map_or`.
```rust
impl<T, E> Result<T, E> {
pub fn map_or<U, F: FnOnce(T) -> U>(self, default: U, f: F) -> U {
match self {
Ok(t) => f(t),
Err(_) => default,
}
}
}
```
This API is very small. We already has a similar API for `Option::map_or`.
Add a callback that allows compiler consumers to override queries.
This pull request adds an additional callback that allows compiler consumers such as Prusti and MIRAI to override queries. My hope is that in this way it will be possible to get access to the internal compiler information (e.g. borrow checker) without major changes to the compiler.
This pull request is work in progress because I am still testing if I can get the information which I need.
cc @nikomatsakis
r? @oli-obk
…ulacrum
Use a relative bindir for rustdoc to find rustc
In bootstrap, we set `RUSTC_INSTALL_BINDIR` to `config.bindir`, so
rustdoc can find rustc relative to the toolchain sysroot. However, if a
distro script like Fedora's `%configure` sets an absolute path, then
rustdoc's `sysroot.join(bin_path)` ignores that sysroot altogether.
That would be OK once the toolchain is actually installed, but it breaks
the in-tree doc tests during the build, since `/usr/bin/rustc` is still
the old version. So now we try to make `RUSTC_INSTALL_BINDIR` relative
to the sysroot prefix in the first place.
r? @Mark-Simulacrum
…, r=varkor
Improve non-exhaustiveness handling in usefulness checking
The comments around code paths for the `non_exhaustive` feature mention stuff like "we act as if the type had an extra unmatcheable constructor". So I thought I'd make this explicit by defining a special constructor that does exactly this.
This makes those code paths a bit more legible and less prone to error.
Add some tests for fixed ICEs
Closesrust-lang#30904 (fixed between nightly-2019-07-14 and nightly-2019-07-31)
Closesrust-lang#40231 (example 1 is fixed in 1.32.0, example 2 is fixed in 1.38.0)
Closesrust-lang#52432 (fixed in rustc 1.40.0-beta.1 (76b4053 2019-11-05))
Closesrust-lang#63279 (fixed in rustc 1.40.0-nightly (246be7e 2019-10-25))
r? @Centril
…ochenkov
Move Session fields to CrateStore
`allocator_kind` and `injected_panic_runtime` are both query-like, this moves them out of Session and into CrateStore, avoiding the `Once` they previously had by clearing separating initialization and de-initialization.
…a, r=michaelwoerister
Move self-profile infrastructure to data structures
The single dependency on queries (QueryName) can be fairly easily
abstracted via a trait and this further decouples Session from librustc
(the primary goal).
This is intended as a precursor to moving Session out of librustc, but since that involves lots of smaller steps that move around code I'm splitting it up into separate PRs.
…r=Dylan-DPC
Remove dead code for encoding/decoding lint IDs
This helps decouple the lint system from needing the implicit TLS TyCtxt
as well.
@JohnTitor

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=14 rollup=never

@bors

bors commented Nov 13, 2019

Copy link
Copy Markdown
Collaborator

📌 Commit d52dafd has been approved by JohnTitor

@borsbors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Nov 13, 2019
@JohnTitorJohnTitor added the rollup A PR which is a rollup label Nov 13, 2019
@bors

bors commented Nov 13, 2019

Copy link
Copy Markdown
Collaborator

⌛ Testing commit d52dafd with merge 695fe96...

bors added a commit that referenced this pull request Nov 13, 2019
Rollup of 14 pull requests
Successful merges:
- #65932 (download .tar.xz if python3 is used)
- #66094 (Fix documentation for `Iterator::count()`.)
- #66166 (rename cfg(rustdoc) into cfg(doc))
- #66186 (Add long error explanation for E0623)
- #66227 (docs: Fix link to BufWriter::flush)
- #66248 (add raw ptr variant of UnsafeCell::get)
- #66292 (add Result::map_or)
- #66297 (Add a callback that allows compiler consumers to override queries.)
- #66317 (Use a relative bindir for rustdoc to find rustc)
- #66330 (Improve non-exhaustiveness handling in usefulness checking)
- #66331 (Add some tests for fixed ICEs)
- #66334 (Move Session fields to CrateStore)
- #66335 (Move self-profile infrastructure to data structures)
- #66337 (Remove dead code for encoding/decoding lint IDs)
Failed merges:
r? @ghost
@bors

bors commented Nov 13, 2019

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-azure
Approved by: JohnTitor
Pushing 695fe96 to master...

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

@JohnTitor@bors@ArturKovacs@GuillaumeGomez@bryanburgers@RalfJung@vakaras@Mark-Simulacrum@cuviper@tesuji@Nadrieril@Dylan-DPC