110687 Commits

Author SHA1 Message Date
Dylan DPC
7d8a3ad128
Rollup merge of #71235 - estebank:lt-sugg-2, r=ecstatic-morse
Tweak `'static` suggestion code

Fix #71196.
2020-04-24 13:14:19 +02:00
arlo
787eddc1ab Add BinaryHeap::retain as suggested in #42849 2020-04-24 04:44:20 -05:00
bors
0b958790b3 Auto merge of #70820 - spastorino:replace-fragile-erroneous-const-sys, r=oli-obk
Replace fragile erroneous const sys

Closes #67191

r? @oli-obk
2020-04-24 09:14:47 +00:00
Guillaume Gomez
03817ec789 Improve PanicInfo examples readability 2020-04-24 09:46:38 +02:00
bors
5a59527516 Auto merge of #71215 - marmeladema:issue70853/librustc_middle-local-def-id-2, r=eddyb
Simplify `local_def_id` and `as_local_hir_id`

See #70853
2020-04-24 04:14:20 +00:00
bors
45c7838089 Auto merge of #71496 - Dylan-DPC:rollup-gwxejmk, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #70845 (Make the `structural_match` error diagnostic for const generics clearer)
 - #71063 (Document unsafety in core::{option, hash})
 - #71068 (Stabilize UNICODE_VERSION (feature unicode_version))
 - #71426 (fix error code in E0751.md)
 - #71459 (Add leading 0x to offset in Debug fmt of Pointer)
 - #71492 (Document unsafety in core::{panicking, alloc::layout, hint, iter::adapters::zip})

Failed merges:

r? @ghost
2020-04-24 00:49:05 +00:00
Dylan DPC
8a0e88e653
Rollup merge of #71492 - LeSeulArtichaut:document-unsafe-2, r=Mark-Simulacrum
Document unsafety in core::{panicking, alloc::layout, hint, iter::adapters::zip}

Helps with #66219.
r? @Mark-Simulacrum do you want to continue reading safety comments? :D
2020-04-24 02:47:38 +02:00
Dylan DPC
ed25ca0efb
Rollup merge of #71459 - divergentdave:pointer-offset-0x, r=RalfJung
Add leading 0x to offset in Debug fmt of Pointer

Currently the `Debug` format for `Pointer` prints its offset in hexadecimal, for example, `alloc38657819+e2` or `alloc35122748+64`. This PR adds a leading `0x` to the offset, in order to make it apparent that it is indeed a hexadecimal number. This came up during discussion of rust-lang/miri#1354. r? @RalfJung
2020-04-24 02:47:37 +02:00
Dylan DPC
fa7fb932cc
Rollup merge of #71426 - contrun:fix-e0751-explanation, r=estebank
fix error code in E0751.md

reference: https://github.com/rust-lang/rust/issues/71304
2020-04-24 02:47:35 +02:00
Dylan DPC
c33deb9fda
Rollup merge of #71068 - pyfisch:unicode-version-stable, r=SimonSapin
Stabilize UNICODE_VERSION (feature unicode_version)

Tracking issue: #49726

r? @sfackler

#71020 changed the definition of `UNICODE_VERSION` just yesterday from a struct to a tuple. Maybe you want to wait some more before stabilizing this constant, on the other hand this is a very small and simple addition.

CC @behnam @SimonSapin @Serentty
2020-04-24 02:47:32 +02:00
Dylan DPC
9ff020e0dd
Rollup merge of #71063 - LeSeulArtichaut:document-unsafe, r=Mark-Simulacrum
Document unsafety in core::{option, hash}

Helps with #66219.
I think that the part that will need reviewing the most is the `hash/sip.rs` file.
r? @LukasKalbertodt (or someone else from the libs team)
2020-04-24 02:47:30 +02:00
Dylan DPC
45e04feb1d
Rollup merge of #70845 - varkor:const-generics-derive-eq-diagnostic, r=estebank
Make the `structural_match` error diagnostic for const generics clearer

The previous diagnostic caused confusion (https://github.com/rust-lang/rust/issues/70790), so this changes the message to be closer to the message for using non-`structural_match` constants in patterns, explicitly mentioning `#[derive(PartialEq, Eq)]`.

Fixes https://github.com/rust-lang/rust/issues/70790.

r? @estebank
2020-04-24 02:47:26 +02:00
LeSeulArtichaut
d515168f3b Document unsafety in core::{panicking, alloc::layout, hint, iter::adapters::zip} 2020-04-24 01:48:48 +02:00
marmeladema
b9ba521e95 Fix librustdoc error due to as_local_hir_id changes 2020-04-23 23:41:47 +01:00
flip1995
898cbf265a
update_tests 2020-04-24 00:22:50 +02:00
flip1995
602f206408
Use correct span on while (let) lowering 2020-04-24 00:22:34 +02:00
marmeladema
fe7531579d Address comments from review 2020-04-23 23:14:07 +01:00
marmeladema
bfce24aa67 Modify as_local_hir_id to return a bare HirId 2020-04-23 23:14:07 +01:00
marmeladema
6148db719f Modify as_local_hir_id to accept a LocalDefId instead of a DefId 2020-04-23 23:14:07 +01:00
marmeladema
92fb59d7f3 librustc_middle: return LocalDefId instead of DefId in local_def_id 2020-04-23 23:14:07 +01:00
Santiago Pastorino
7bc45f6baa
Import RequiredConstsVisitor 2020-04-23 18:07:37 -03:00
Santiago Pastorino
c1ed7cc95f
Rename uneval_consts to required_consts 2020-04-23 18:07:36 -03:00
Santiago Pastorino
da9aa2dd55
Adjust name of never typed const test 2020-04-23 18:07:36 -03:00
Santiago Pastorino
39be0b5b6c
Bless mir-opt tests 2020-04-23 18:07:27 -03:00
LeSeulArtichaut
a694315ed1 Add a note about fat pointers
Co-Authored-By: Mark-Simulacrum <mark.simulacrum@gmail.com>
2020-04-23 23:05:37 +02:00
Santiago Pastorino
25e0be736c
Clean up fragile checks of optimized away constants 2020-04-23 16:50:18 -03:00
Santiago Pastorino
f925a03ead
Make ConstPropagator only visit basic blocks when visiting body
Avoid exercising unevaluated constants and go straight to visit the
blocks.
2020-04-23 16:50:18 -03:00
Santiago Pastorino
0107cecc01
Visit unevaluated constants in super_body 2020-04-23 16:50:17 -03:00
Santiago Pastorino
5313e2e929
Make inlining carry over unevaluated consts 2020-04-23 16:50:17 -03:00
Santiago Pastorino
db18b42343
Evaluate unevaluated MIR constants in codegen_mir 2020-04-23 16:50:17 -03:00
Santiago Pastorino
f8976e377f
Add MirPass to collect Unevaluated consts in MIR body 2020-04-23 16:50:17 -03:00
Santiago Pastorino
6807bb7482
Make mir::Constant Copy 2020-04-23 16:50:16 -03:00
Ralf Jung
6b76b0e558 explain what we are testing in mutable_const 2020-04-23 21:25:27 +02:00
bors
14b15521c5 Auto merge of #71483 - Dylan-DPC:rollup-c2h9s8b, r=Dylan-DPC
Rollup of 7 pull requests

Successful merges:

 - #70633 (Confusing suggestion on incorrect closing `}`)
 - #71404 (Don't fuse Chain in its second iterator)
 - #71408 (Check code blocks tags)
 - #71442 (Add a "by reference" adaptor for `AllocRef`)
 - #71446 (Only use read_unaligned in transmute_copy if necessary)
 - #71470 (Fix doc links)
 - #71479 (add back Scalar::null_ptr)

Failed merges:

r? @ghost
2020-04-23 18:36:59 +00:00
Dylan MacKenzie
0658259325 Set RUSTDOCFLAGS in cargo invocation 2020-04-23 11:36:24 -07:00
Dylan DPC
b107eb5ea4
Rollup merge of #71479 - RalfJung:scalar-null-ptr, r=jonas-schievink
add back Scalar::null_ptr

We were a bit overeager with removing this in https://github.com/rust-lang/rust/pull/71005, Miri uses this function quite a bit.

The important part is that the `Place::null` methods are gone. :)
r? @jonas-schievink @oli-obk

Fixes https://github.com/rust-lang/rust/issues/71474
2020-04-23 20:35:07 +02:00
Dylan DPC
5f9ffb9c02
Rollup merge of #71470 - TyPR124:fix-doc-links, r=jonas-schievink
Fix doc links

This fixes a few doc links which were causing `cargo doc` to fail when using `--document-private-items --document-hidden-items` on libstd. Most of the fixes are just escaping '[' and ']' characters in doc comments, and one change actually fixes a doc link.
2020-04-23 20:35:06 +02:00
Dylan DPC
199f4deef0
Rollup merge of #71446 - Amanieu:transmute_copy, r=sfackler
Only use read_unaligned in transmute_copy if necessary

I've noticed that this causes LLVM to generate poor code on targets that don't support unaligned memory accesses.
2020-04-23 20:35:04 +02:00
Dylan DPC
1363a4b352
Rollup merge of #71442 - TimDiekmann:allocref-mut-ref, r=Amanieu
Add a "by reference" adaptor for `AllocRef`

Fixes rust-lang/wg-allocators#53

r? @Amanieu
2020-04-23 20:35:02 +02:00
Dylan DPC
0959802a57
Rollup merge of #71408 - GuillaumeGomez:check-code-blocks-tags, r=kinnison
Check code blocks tags

Fixes #71347.

Explanations here: I realized recently that it was a common issue to confuse/misspell tags on code blocks. This is actually quite a big issue since it generally ends up in a code blocks being ignored since it's not being considered as a rust one. With this new warning, users will at least be notified about it.

PS: some improvements can be done on the error rendering but considering how big the PR already is, I think it's better to do it afterwards.

r? @ollie27

cc @rust-lang/rustdoc
2020-04-23 20:35:01 +02:00
Dylan DPC
2a1cd440f2
Rollup merge of #71404 - cuviper:chain-unfused, r=scottmcm
Don't fuse Chain in its second iterator

Only the "first" iterator is actually set `None` when exhausted,
depending on whether you iterate forward or backward. This restores
behavior similar to the former `ChainState`, where it would transition
from `Both` to `Front`/`Back` and only continue from that side.

However, if you mix directions, then this may still set both sides to
`None`, totally fusing the iterator.

Fixes #71375
r? @scottmcm
2020-04-23 20:34:59 +02:00
Dylan DPC
1d3d80f773
Rollup merge of #70633 - kper:master, r=estebank
Confusing suggestion on incorrect closing `}`

Compiler returns
```
error: unexpected closing delimiter: `}`
  --> main.rs:20:1
   |
9  |             ErrorHandled::Reported => {}
   |                                       -- this block is empty, you might have not meant to close it temp
...
20 | }
   | ^ unexpected closing delimiter

error: aborting due to previous error
```
2020-04-23 20:34:57 +02:00
Ralf Jung
5bb1afc7e7 add back Scalar::null_ptr 2020-04-23 20:13:53 +02:00
Ralf Jung
6463ecfe76 miri-unleash tests: ensure they fire even with 'allow(const_err)' 2020-04-23 20:08:41 +02:00
Ralf Jung
eb1de2ff39 liballoc: more compact way to adjust test sizes for Miri 2020-04-23 20:05:01 +02:00
Dylan MacKenzie
15f95b145e Cycle errors now occur during const-eval, not checking 2020-04-23 11:01:56 -07:00
Dylan MacKenzie
1343797859 Lazily run dataflow for const qualification 2020-04-23 11:01:56 -07:00
Dylan MacKenzie
274c85f5c8 Don't cache result of in_any_value_of_ty for locals
This was needed by an early version of dataflow-based const
qualification where `QualifCursor` needed to return a full `BitSet` with
the current state.
2020-04-23 11:01:55 -07:00
Dylan MacKenzie
a75c792888 Make type alias private 2020-04-23 10:57:05 -07:00
Ralf Jung
f1c30519f3 libcore: more compact way to adjust test sizes for Miri 2020-04-23 19:50:24 +02:00