Commit Graph

110605 Commits

Author SHA1 Message Date
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
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
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
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 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
LeSeulArtichaut 3029e9e9e4 Add note about padding
Co-authored-by: Mark-Simulacrum <mark.simulacrum@gmail.com>
2020-04-23 18:32:41 +02:00
Tyler Ruckinger 0ad9a4d26e Make VaList::arg link actually work 2020-04-23 11:06:46 -04:00
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
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