110851 Commits

Author SHA1 Message Date
Guillaume Gomez
977603cd1f Update LangString::parse usage in markdown tests 2020-04-23 17:02:37 +02:00
Tyler Ruckinger
28847e5c37 Merge branch 'master' into fix-doc-links 2020-04-23 10:47:30 -04:00
Tyler Ruckinger
547219c7e4 Fix doc link errors 2020-04-23 10:40:28 -04:00
bors
413a12909f Auto merge of #71467 - Dylan-DPC:rollup-d1os8ug, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #71005 (Reading from the return place is fine)
 - #71198 (Const check/promotion cleanup and sanity assertion)
 - #71396 (Improve E0308 error message wording again)
 - #71452 (Remove outdated reference to interpreter snapshotting)
 - #71454 (Inline some function docs in `core::ptr`)
 - #71461 (Improve E0567 explanation)

Failed merges:

r? @ghost
2020-04-23 14:40:20 +00:00
Guillaume Gomez
96a352ebd3 Add UI tests for new rustdoc lint 2020-04-23 16:18:50 +02:00
Dylan DPC
47e2687a4e
Rollup merge of #71461 - GuillaumeGomez:improve-e0567, r=Dylan-DPC
Improve E0567 explanation

r? @Dylan-DPC
2020-04-23 15:57:19 +02:00
Dylan DPC
98cadb28ac
Rollup merge of #71454 - ecstatic-morse:inline-core-ptr-docs, r=RalfJung
Inline some function docs in `core::ptr`

Resolves #64539.
2020-04-23 15:57:18 +02:00
Dylan DPC
414355b42e
Rollup merge of #71452 - ecstatic-morse:no-more-snapshot, r=RalfJung
Remove outdated reference to interpreter snapshotting

This should have been a part of #70087.

r? @RalfJung
2020-04-23 15:57:16 +02:00
Dylan DPC
4ae7037582
Rollup merge of #71396 - DeeDeeG:improve-e0308-again, r=estebank
Improve E0308 error message wording again

Hello again,

I recently did this PR: #70242

I felt the error message could be further improved, so I made [a post on the Rust community forum](https://users.rust-lang.org/t/looking-for-feedback-on-an-improved-error-message-for-e0308/40004) to ask for feedback.

(Also, there were some comments on my original PR that I took into consideration as well.)

This PR is my attempt to take all the feedback into account and propose a better and simplified error message that should still be accurate. Its main benefit is having simpler grammar, and hopefully being easier to read and understand.

Thanks to everyone who commented and gave feedback, and thank you for taking a look at this PR.
2020-04-23 15:57:14 +02:00
Dylan DPC
629a613faa
Rollup merge of #71198 - oli-obk:const_check_cleanup, r=RalfJung
Const check/promotion cleanup and sanity assertion

r? @RalfJung

This is just the part of https://github.com/rust-lang/rust/pull/70042#issuecomment-614592765 that does not change behaviour
2020-04-23 15:57:13 +02:00
Dylan DPC
61fbc6a394
Rollup merge of #71005 - jonas-schievink:no-place-like-return, r=oli-obk
Reading from the return place is fine

Const eval thinks that reading from local `_0` is UB, but it isn't. `_0` is just a normal local like any other, and codegen handles it that way too. The only special thing is that the `Return` terminator will read from it.

I've hit these errors while working on an NRVO pass that can merge other locals with `_0` in https://github.com/rust-lang/rust/pull/71003.

r? @oli-obk
2020-04-23 15:57:11 +02:00
Oliver Scherer
e4ab4ee020 Update src/librustc_mir/interpret/memory.rs
Co-Authored-By: Ralf Jung <post@ralfj.de>
2020-04-23 15:56:26 +02:00
Oliver Scherer
af44cdf04f Disallow statics initializing themselves 2020-04-23 15:55:08 +02:00
Pyfisch
aa0175c98d Stabilize UNICODE_VERSION (feature unicode_version)
The feature will become stable in Rust 1.45.
Noted that the value of UNICODE_VERSION is expected to change.
2020-04-23 14:36:30 +02:00
Guillaume Gomez
c687d0490e Create new rustdoc lint to check for code blocks tags 2020-04-23 14:30:30 +02:00
Oliver Scherer
4cdc31b965 Document our sanity assertion around explicit promotion 2020-04-23 13:21:25 +02:00
Oliver Scherer
119c6365e4 Catch and fix explicit promotions that fail to actually promote 2020-04-23 13:21:25 +02:00
Oliver Scherer
22a53790ed Use ConstCx for validate_candidates 2020-04-23 13:21:25 +02:00
Guillaume Gomez
cffd4b699e Improve E0567 explanation 2020-04-23 13:17:00 +02:00
Oliver Scherer
0bc743ed12 Use ConstCx in the promoted collector 2020-04-23 13:09:58 +02:00
Oliver Scherer
f0f7a59eaa Use ConstCx in more places 2020-04-23 13:07:21 +02:00
Oliver Scherer
6a3fb269ed Rename Item to ConstCx.
This renaming was already done in some modules via import renaming. It's strictly used as a context, and it contains a `TyCtxt`.
2020-04-23 13:06:16 +02:00
Oliver Scherer
a135ced5ce Fix ui test blessing when a test has an empty stderr file after having had content there before the current changes 2020-04-23 13:00:23 +02:00
YI
baac961fb5 fix error code for E0751 2020-04-23 15:46:05 +08:00
bors
66f7a5d92f Auto merge of #71343 - RalfJung:miri, r=RalfJung
update Miri

Fixes https://github.com/rust-lang/rust/issues/71241
r? @ghost Cc @rust-lang/miri
2020-04-23 06:53:19 +00:00
David Cook
c16b6e0faa Add leading 0x to offset in Debug fmt of Pointer 2020-04-23 00:43:27 -05:00
bors
8af87b1126 Auto merge of #71312 - wesleywiser:const_prop_bitset, r=Mark-Simulacrum
[ConstProp] Use a `BitSet<Local>` instead of `IndexVec<Local, bool>`
2020-04-23 03:44:28 +00:00
Dylan MacKenzie
34dfbc3fef Add module docs and restrict visibility 2020-04-22 18:56:23 -07:00
Dylan MacKenzie
59c746030a Use a ref-counted pointer for ownership of the predecessor cache
...instead of a `LockGuard` which means the lock is held for longer than
necessary.
2020-04-22 18:24:20 -07:00
Dylan MacKenzie
740f228b5b Remove predecessors_for
There is no `Arc::map` equivalent to `LockGuard::map`
2020-04-22 18:24:20 -07:00
Mohsen Zohrevandi
7f1372347a Use lib crate type for SGX in fn build_auxiliary 2020-04-22 18:23:40 -07:00
Dylan MacKenzie
b3c26de25e Inline some function docs re-exported in std::ptr 2020-04-22 18:01:26 -07:00
bors
fc145e19d0 Auto merge of #71445 - Dylan-DPC:rollup-31givp1, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #71256 (Lint must_use on mem::replace)
 - #71350 (Error code explanation extra check)
 - #71369 (allow wasm32 compilation of librustc_data_structures/profiling.rs)
 - #71400 (proc_macro::is_available())
 - #71440 (Implement `Copy` for `AllocErr`)

Failed merges:

r? @ghost
2020-04-23 00:28:05 +00:00
Esteban Küber
25f8966b5a Sort MultiSpans on creation 2020-04-22 17:15:34 -07:00
Dylan MacKenzie
e97c227dbc Remove outdated reference to interpreter snapshotting 2020-04-22 16:31:14 -07:00
Ralf Jung
9b11c60178 update Miri 2020-04-23 00:12:04 +02:00
Ralf Jung
9ea5eed32b smoke-test for async fn with mir-opt-level=0 2020-04-22 23:34:13 +02:00
Amanieu d'Antras
99de3728f9 Only use read_unaligned in transmute_copy if necessary 2020-04-22 22:22:48 +01:00
Dylan DPC
bb13aab8e5
Rollup merge of #71440 - TimDiekmann:copy-allocerr, r=Amanieu
Implement `Copy` for `AllocErr`

r? @Amanieu
2020-04-22 23:19:25 +02:00
Dylan DPC
0f806534c0
Rollup merge of #71400 - dtolnay:isavailable, r=petrochenkov
proc_macro::is_available()

This PR adds `proc_macro::is_available() -> bool` to determine whether proc_macro has been made accessible to the currently running program.

The proc_macro crate is only intended for use inside the implementation of procedural macros. All the functions in the crate panic if invoked from outside of a procedural macro, such as from a build script or unit test or ordinary Rust binary.

Unfortunately those panics made it impossible for libraries that are designed to support both macro and non-macro use cases (e.g. Syn) to be used from binaries that are compiled with panic=abort. In panic=unwind mode we're able to attempt a proc macro call inside catch_unwind and use libproc_macro's result if it succeeds, otherwise fall back to a non-macro alternative implementation. But in panic=abort there was no way to determine which implementation needs to be used.

r? @eddyb
attn: @petrochenkov @adetaylor
ref: https://github.com/dtolnay/cxx/issues/130
2020-04-22 23:19:24 +02:00
Dylan DPC
16be619c6a
Rollup merge of #71369 - ctaggart:wasm32_profiling, r=ecstatic-morse
allow wasm32 compilation of librustc_data_structures/profiling.rs

I'm trying to use rustfmt from a wasm app. I ran into this compilation problem https://github.com/rust-lang/rustfmt/issues/4132 and after investigating, it looked like just adjusting a few cfg's. I based it on how measureme added support in https://github.com/rust-lang/measureme/pull/43.

My testing on my macbook was just that librustc_data_structures builds now with both:
- cargo build
- cargo build --target wasm32-unknown-unknown
2020-04-22 23:19:22 +02:00
Dylan DPC
d3e24bd457
Rollup merge of #71350 - GuillaumeGomez:error-code-explanation-extra-check, r=oli-obk
Error code explanation extra check

r? @Mark-Simulacrum
2020-04-22 23:19:20 +02:00
Dylan DPC
10e47f5b7b
Rollup merge of #71256 - cuviper:must_use_replace, r=estebank
Lint must_use on mem::replace

This adds a hint on `mem::replace`, "if you don't need the old value,
you can just assign the new value directly". This is in similar spirit
to the `must_use` on `ManuallyDrop::take`.
2020-04-22 23:19:19 +02:00
bors
db9b05aeb5 Auto merge of #71044 - ecstatic-morse:body-predecessor-cache, r=oli-obk
Remove `BodyAndCache`

...returning to the original approach using interior mutability within `Body`. This simplifies the API at the cost of some uncontended mutex locks when the parallel compiler is enabled.

The current API requires you to either have a mutable reference to `Body` (`&mut BodyAndCache`), or to compute the predecessor graph ahead of time by creating a `ReadOnlyBodyAndCache`. This is not a good fit for, e.g., the dataflow framework, which
1. does not mutate the MIR
2. only sometimes needs the predecessor graph (for backward dataflow problems)
2020-04-22 21:08:28 +00:00
Tim Diekmann
e60268076f Add a "by reference" adaptor for AllocRef 2020-04-22 22:51:11 +02:00
Tim Diekmann
863d2d92ba Make AllocErr copyable 2020-04-22 22:40:21 +02:00
Esteban Küber
59c816d58b fix test 2020-04-22 12:42:02 -07:00
Esteban Küber
ad379cd7a6 review comment 2020-04-22 12:12:33 -07:00
Esteban Küber
322b2045f2 Revert old span change 2020-04-22 12:12:33 -07:00
Esteban Küber
1f43fc0209 Tweak wording 2020-04-22 12:12:33 -07:00