Commit Graph

110516 Commits

Author SHA1 Message Date
Santiago Pastorino
230e40644b
Fix off by one error for delay_span_bug
delay_span_bug bumps error_count after checking treat_err_as_bug
2020-04-27 09:14:30 -03: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
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
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
Ralf Jung
9b11c60178 update Miri 2020-04-23 00:12:04 +02: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
863d2d92ba Make AllocErr copyable 2020-04-22 22:40:21 +02:00
David Tolnay
3bd742ff4e
Add tracking issue for proc_macro_is_available 2020-04-22 11:07:07 -07:00
bors
b2e36e6c2d Auto merge of #71431 - Dylan-DPC:rollup-rvm6tfy, r=Dylan-DPC
Rollup of 4 pull requests

Successful merges:

 - #71280 (Miri: mplace_access_checked: offer option to force different alignment on place)
 - #71336 (Exhaustively match on `{Statement,Terminator}Kind` during const checking)
 - #71370 (Added detailed error code explanation for issue E0696 in Rust compiler.)
 - #71401 (visit_place_base is just visit_local)

Failed merges:

r? @ghost
2020-04-22 17:52:21 +00:00
Dylan MacKenzie
4e7469eaea Replace multiple calls to predecessors_for
...with a single one to `predecessors`. `predecessors_for` requires
taking the lock/incrementing the `RefCell` once each call.
2020-04-22 09:57:43 -07:00
Dylan MacKenzie
2ff1fc9b81 Add #[inline] declarations 2020-04-22 09:57:43 -07:00
Dylan MacKenzie
8287842eb4 Use Body everywhere 2020-04-22 09:57:43 -07:00
Dylan MacKenzie
64db428967 Don't use * for deref-coercion 2020-04-22 09:57:43 -07:00
Dylan MacKenzie
884ba4f11f Use internal mutability for predecessor cache 2020-04-22 09:57:43 -07:00
Cameron Taggart
51b194f09a remove some extra } 2020-04-22 09:18:54 -06:00
Cameron Taggart
02241db720
suggested rearrangement of the cfg if statements
Co-Authored-By: ecstatic-morse <ecstaticmorse@gmail.com>
2020-04-22 09:12:44 -06:00
Dylan DPC
238e8228d4
Rollup merge of #71401 - spastorino:remove-visit-place-base, r=wesleywiser
visit_place_base is just visit_local

r? @wesleywiser
2020-04-22 16:41:14 +02:00
Dylan DPC
7939a4d728
Rollup merge of #71370 - PankajChaudhary5:ErrorCode-E0696, r=GuillaumeGomez
Added detailed error code explanation for issue E0696 in Rust compiler.

Added proper error explanation for issue E0696 in the Rust compiler.
Error Code E0696

Sub Part of Issue #61137

r? @GuillaumeGomez
2020-04-22 16:41:12 +02:00
Dylan DPC
221f677d70
Rollup merge of #71336 - ecstatic-morse:check-consts-asm, r=oli-obk
Exhaustively match on `{Statement,Terminator}Kind` during const checking

This adds a pre-monomorphization error for inline assembly in a const context as well.

r? @oli-obk
2020-04-22 16:41:11 +02:00
Dylan DPC
e69141a52f
Rollup merge of #71280 - RalfJung:mplace-check-align, r=oli-obk
Miri: mplace_access_checked: offer option to force different alignment on place

Required to solve https://github.com/rust-lang/miri/issues/1339 in https://github.com/rust-lang/miri/pull/1348.

r? @oli-obk
2020-04-22 16:41:09 +02:00
bors
82e90d6426 Auto merge of #71374 - nnethercote:alphabetize-C-and-Z-options, r=petrochenkov
Alphabetize `-C` and `-Z` options

Because it will make it much easier to find options that way.

r? @petrochenkov
2020-04-22 14:39:33 +00:00
Guillaume Gomez
5cdea2d605 Fix new tidy checks 2020-04-22 15:10:07 +02:00
Guillaume Gomez
5c8f50952b Add checks to ensure that explanations have code examples using the error code and also that 'compile_fail' isn't mispelled 2020-04-22 15:10:07 +02:00
Nicholas Nethercote
6e7ba26bbd Use macros for option tests. 2020-04-22 22:47:05 +10:00
Nicholas Nethercote
14ea491744 Add all the missing option tests. 2020-04-22 22:45:33 +10:00
Nicholas Nethercote
4348f31e3b Alphabetize the -C and -Z options.
In the code, test, and docs, because it makes it much easier to find
things.

Other than adding the comments about alphabetical order, this commit
only moves things around.
2020-04-22 22:44:37 +10:00
bors
00f677d897 Auto merge of #71424 - Dylan-DPC:rollup-iunh61a, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #70970 (Detect mistyped associated consts in `Instance::resolve`.)
 - #71203 (Correct await span for async-await error reporting)
 - #71214 (Add error code for inner doc error)
 - #71337 (Moving all rustdoc-ui tests to check-pass)
 - #71412 (Clarify unused_doc_comments note on macro invocations)
 - #71414 (More diagnostic items for Clippy usage)

Failed merges:

r? @ghost
2020-04-22 11:14:23 +00:00
Ralf Jung
5449e0f10f comment explaining force_align usage 2020-04-22 12:58:17 +02:00
Dylan DPC
01fdc885d6
Rollup merge of #71414 - phansch:more-diagnostic-items, r=Manishearth
More diagnostic items for Clippy usage

This adds a couple of more diagnostic items to be used in Clippy.
I chose these particular ones because they were the types which we seem
to check for the most in Clippy. I'm not sure if the `cfg_attr(not(test))`
is needed, but it was also used for `Vec` and a few other types.

cc https://github.com/rust-lang/rust-clippy/issues/5393

r? @Manishearth
2020-04-22 12:18:39 +02:00
Dylan DPC
91ef66374b
Rollup merge of #71412 - dtolnay:uselessdoc, r=Manishearth
Clarify unused_doc_comments note on macro invocations

The previous error message used to say:

<pre>
/// doc
^^^^^^^ rustdoc does not generate documentation for <b>macros</b>
</pre>

Obviously we do generate documentation for macros, such as https://docs.rs/bitflags/1.2.1/bitflags/macro.bitflags.html. It's only macro invocations that don't get their own docs. This PR updates the message to say "rustdoc does not generate documentation for <b>macro invocations</b>".

I observe that prior to #69084 this used to say "rustdoc does not generate documentation for **macro expansions**", as implemented originally in #57882. I don't have a preference between those but I made the commit before looking up the history.

r? @Manishearth
attn: @yaahc @euclio
2020-04-22 12:18:38 +02:00
Dylan DPC
e7c5334a88
Rollup merge of #71337 - Valloric:rustdoc-check-pass, r=GuillaumeGomez
Moving all rustdoc-ui tests to check-pass

These were all build-pass before and don't seem to need it.

Helps with #62277

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/rust-lang/rust/71337)
<!-- Reviewable:end -->
2020-04-22 12:18:36 +02:00
Dylan DPC
372d37b106
Rollup merge of #71214 - GuillaumeGomez:add-error-code-inner-doc-error, r=Dylan-DPC
Add error code for inner doc error

r? @Dylan-DPC

cc @oli-obk
2020-04-22 12:18:34 +02:00
Dylan DPC
7b1ce6e98d
Rollup merge of #71203 - csmoe:issue-71137, r=csmoe
Correct await span for async-await error reporting

Closes #71137
r? @tmandry
2020-04-22 12:18:33 +02:00
Dylan DPC
707004c552
Rollup merge of #70970 - eddyb:trait-vs-impl-mismatch, r=oli-obk
Detect mistyped associated consts in `Instance::resolve`.

*Based on #71049 to prevent redundant/misleading downstream errors.*

Fixes #70942 by refusing to resolve an associated `const` if it doesn't have the same type in the `impl` that it does in the `trait` (which we assume had errored, and `delay_span_bug` guards against bugs).
2020-04-22 12:18:31 +02:00
Guillaume Gomez
038f5b7433 Update UI tests 2020-04-22 11:09:57 +02:00
Guillaume Gomez
3390ff97b2 Add error code to inner doc comment attribute error 2020-04-22 11:08:50 +02:00
bors
4bfd62acb1 Auto merge of #71323 - nnethercote:bitcode-in-rlib, r=alexcrichton
Add `-Cbitcode-in-rlib`.

This is a cut-down version of #70458 that gets the compile-time wins.

r? @alexcrichton
2020-04-22 07:52:42 +00:00
Philipp Hansch
23b9f46fff
More diagnostic items for Clippy usage
This adds a couple of more diagnostic items to be used in Clippy.
I chose these particular ones because they were the types which we seem
to check for the most in Clippy. I'm not sure if the
`cfg_attr(not(test))` is needed, but it was also used for `Vec` and a
few other types.
2020-04-22 07:57:56 +02:00
Nicholas Nethercote
a105c5c2c0 Build libstd with -Cbitcode-in-rlib=yes.
So that the rlibs will work with both LTO and non-LTO builds.
2020-04-22 15:22:18 +10:00
Nicholas Nethercote
2984799881 Add a simple test. 2020-04-22 15:22:18 +10:00
Nicholas Nethercote
ae322ff651 Add a new option -Cbitcode-in-rlib.
It defaults to true, but Cargo will set this to false whenever it can to
reduce compile times.
2020-04-22 15:22:18 +10:00
Nicholas Nethercote
b9f6dfef0b Remove an old in-progress comment from a previous PR.
This comment wasn't supposed to have landed.
2020-04-22 15:22:18 +10:00
David Tolnay
3a8097f2b4
Clarify unused_doc_comments note on macro invocations 2020-04-21 21:16:50 -07:00
bors
2dc5b602ee Auto merge of #71410 - JohnTitor:rollup-vh6dut5, r=JohnTitor
Rollup of 7 pull requests

Successful merges:

 - #70998 (Suggest `-> impl Trait` and `-> Box<dyn Trait>` on fn that doesn't return)
 - #71236 (Remove unused rustc_serialize::hex module)
 - #71366 (Use assoc int consts3)
 - #71372 (Fix #! (shebang) stripping account space issue)
 - #71384 (Fix stage0.txt version number comment)
 - #71390 (Fix incorrect description of E0690)
 - #71399 (Clean up E0554 explanation)

Failed merges:

r? @ghost
2020-04-22 03:50:02 +00:00
csmoe
00d12ef901 add test for correct await span 2020-04-22 09:51:56 +08:00