Commit Graph

97489 Commits

Author SHA1 Message Date
bors 8b4d22cb25 Auto merge of #67598 - jumbatm:issue67557_simd_shuffle, r=oli-obk
Fix ICE / miscompilation when inlining simd shuffle intrinsic in MIR.

Closes #67557.

r? @oli-obk
2019-12-28 06:02:45 +00:00
Oliver Scherer 335c887721 Rollup merge of #67659 - SimonSapin:matches, r=rkruppe
Stabilize the `matches!` macro

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

FCP: https://github.com/rust-lang/rust/issues/65721#issuecomment-569118119
2019-12-28 00:36:17 +01:00
Oliver Scherer 9eb45e38dc Rollup merge of #67654 - rossmacarthur:fix-51770-add-regression-test, r=Centril
Add regression test for old NLL ICE

This fails on nightly-2018-06-24.

Resolves #51770
2019-12-28 00:36:16 +01:00
Oliver Scherer 9525e8e6b2 Rollup merge of #67635 - Mark-Simulacrum:path-doc-unsafe, r=dtolnay
Document safety of Path casting

I would personally feel more comfortable making the relevant (internal anyway) types repr(transparent) and then documenting that we can make these casts because of that, but I believe this is a more minimal PR, so posting it first.

Resolves #45910.
2019-12-28 00:36:14 +01:00
Oliver Scherer 48efc1e6c2 Rollup merge of #67632 - kraai:remove-collapsed-reference-links, r=steveklabnik
Convert collapsed to shortcut reference links
2019-12-28 00:36:11 +01:00
Oliver Scherer b371e0fa00 Rollup merge of #67629 - kraai:remove-redundant-link-texts, r=steveklabnik
Remove redundant link texts

Most of these links are followed by a parenthesized expression.  I think that the redundant link texts were added to prevent interpretation as an inline link.  This is unnecessary since the closing square bracket and opening parenthesis are separated by whitespace.
2019-12-28 00:36:09 +01:00
Oliver Scherer b88ce0ed4b Rollup merge of #67621 - matthewjasper:correct-static-type, r=oli-obk
Use the correct type for static qualifs

Closes #67609
2019-12-28 00:36:08 +01:00
Oliver Scherer 98de5042b0 Rollup merge of #67617 - kraai:remove-compiler_builtins_lib-docs, r=Dylan-DPC
Remove `compiler_builtins_lib` documentation

Fixes #67593
2019-12-28 00:36:07 +01:00
Oliver Scherer e9af9dba6f Rollup merge of #67604 - christianpoveda:scalar_to_(u|i)64, r=RalfJung
Add Scalar::to_(u|i)16 methods

r? @RalfJung
2019-12-28 00:36:05 +01:00
Oliver Scherer 4cf4fc6cb1 Rollup merge of #67602 - xfix:use-issue-none-instead-of-0-in-intrinsics, r=Centril
Use issue = "none" instead of "0" in intrinsics

`issue = "0"` was incorrectly used in https://github.com/rust-lang/rust/commit/9ee16e14c51668309f446636e8960b7fbbac066d, the project is moving away from issue 0
2019-12-28 00:36:04 +01:00
Oliver Scherer 4b91966501 Rollup merge of #67588 - Kixunil:nonnull-slice-iter, r=rkruppe
Use NonNull in slice::Iter and slice::IterMut.

`ptr` of `slice::Iter` and `slice::IterMut` can never be null, but this
fact wasn't exploited for layout optimizations. By changing `ptr` from
`*<mutability> T` to `NonNull<T>`, the compiler can now optimize layout
of `Option<Iter<'a, T>>`.

Closes #67228
2019-12-28 00:36:01 +01:00
Oliver Scherer a076464c4a Rollup merge of #67576 - king6cong:slice_repeat, r=Dylan-DPC
reuse `capacity` variable in slice::repeat

None
2019-12-28 00:35:59 +01:00
Oliver Scherer b1b005b8f0 Rollup merge of #65244 - seanmonstar:into-future, r=seanmonstar
add IntoFuture trait and support for await

The [async-await RFC](https://rust-lang.github.io/rfcs/2394-async_await.html#the-await-compiler-built-in) mentions being able to `await` anything implementing `IntoFuture`. Somewhere along the way, it was left out.
2019-12-28 00:35:58 +01:00
Sean McArthur f35517ee86 core: add IntoFuture trait and support for await 2019-12-27 11:56:11 -08:00
bors 74c4e6a981 Auto merge of #67035 - Goirad:implement-ipadd-padding, r=dtolnay
Implement padding for IpAddr without heap alloc

Implements padding for `IpAddr`s without heap allocations.
This fixes issue #66810 .

cc @jethrogb @mzohreva
2019-12-27 18:40:50 +00:00
Simon Sapin 1c572a2d6e Stabilize the matches! macro
Fixes https://github.com/rust-lang/rust/issues/65721

FCP: https://github.com/rust-lang/rust/issues/65721#issuecomment-569118119
2019-12-27 14:07:16 +01:00
Ross MacArthur 749295cfbf Add regression test for old NLL ICE 2019-12-27 13:36:41 +02:00
bors 41501a6b03 Auto merge of #67437 - matthew-healy:skip-llvm-rebuild, r=Mark-Simulacrum
Add LLVM `skip-rebuild` option to `x.py`

This PR reimplements parts of @Walther's work from #65848, and closes #65612.

I decided not to implement the [arguments to override this setting](https://github.com/rust-lang/rust/issues/65612#issuecomment-544247546) in this PR. If there's strong feeling that this change shouldn't be merged without the overrides then I'm happy to close this until I've had a chance to add them in. Otherwise I'll aim to submit a second PR with those this weekend.

I'd have liked to have tested the change in `native.rs`, but there didn't seem to be any existing test infrastructure. I ran this a few times manually and it _worked on my machine_ though... 😬
2019-12-27 10:58:57 +00:00
bors 8f5f8f916f Auto merge of #67192 - oli-obk:const_zst_addr, r=RalfJung,varkor
Various const eval and pattern matching ICE fixes

r? @RalfJung
cc @spastorino

This PR does not change existing behaviour anymore and just fixes a bunch of ICEs reachable from user code (sometimes even on stable via obscure union transmutes).
2019-12-27 07:38:52 +00:00
Camille GILLOT fb100e5ddc Move arena_vec inside lowering. 2019-12-26 23:40:50 +01:00
Camille GILLOT 75632c5ffe Remove some type information. 2019-12-26 23:40:13 +01:00
Camille GILLOT 1984ec5d20 Fewer calls to arena.alloc. 2019-12-26 23:39:14 +01:00
Camille GILLOT 8284035372 Fallout in other crates. 2019-12-26 23:38:46 +01:00
Camille GILLOT 58b908d09c Lowering for hir::Expr. 2019-12-26 23:36:12 +01:00
Camille GILLOT 52e9825ba8 Visit for hir::Expr. 2019-12-26 23:36:12 +01:00
Camille GILLOT 2b1cfe5b5b Syntax for hir::Expr. 2019-12-26 23:36:12 +01:00
Matthew Healy e44fc4577f Skip LLVM rebuild when skip-rebuild is true 2019-12-26 22:19:18 +00:00
Matthew Healy 2297a8b199 Parse llvm_skip_rebuild into Config 2019-12-26 22:16:42 +00:00
Oliver Scherer f65a91eb47 Make ui test bitwidth independent 2019-12-26 22:50:18 +01:00
Oliver Scherer 12a4c2ca18 Fix rebase fallout 2019-12-26 22:50:18 +01:00
Oliver Scherer aaffe12453 Use the targetted const eval functions 2019-12-26 22:50:18 +01:00
Oliver Scherer b476344ccc Reintroduce the recursion comment 2019-12-26 22:50:18 +01:00
Oliver Scherer 1531c3937b Documentation nit 2019-12-26 22:50:18 +01:00
Oliver Scherer 20c1b3fb49 Add a const_eval helper to InterpCx 2019-12-26 22:50:18 +01:00
Oliver Scherer 1acbf4b802 Early abort instead of building up zero sized values 2019-12-26 22:50:18 +01:00
Oliver Scherer 95205518dd Explain why const_eval is ok here 2019-12-26 22:50:17 +01:00
Oliver Scherer 0e3fafaea7 Typo 2019-12-26 22:50:17 +01:00
Oliver Scherer 72ebce0e1b Remove unintended noisy log statement 2019-12-26 22:50:17 +01:00
Oliver Scherer 6937ca2c90 Explain the currently necessary existance of TransmuteSizeDiff 2019-12-26 22:50:17 +01:00
Oliver Scherer cb8d1c3c65 Explain what we are doing with parameter environments for statics 2019-12-26 22:50:17 +01:00
Oliver Scherer 8a88ff1006 Comments should start capitalized and end in a period 2019-12-26 22:50:17 +01:00
Oliver Scherer 41d58185dd Explain ParamEnv::reveal_all usage 2019-12-26 22:50:17 +01:00
Oliver Scherer 6b651b1a88 Add regression test for ZST statics being allowed to "read" from themselves 2019-12-26 22:50:17 +01:00
Oliver Scherer a7a011d2fa Immediately evaluate and validate constants when we want them as operands 2019-12-26 22:50:17 +01:00
Oliver Scherer 0e969b73f6 Interning even happens when validation of a constant fails 2019-12-26 22:50:17 +01:00
Oliver Scherer a0bd1a695d Prevent an ICE on invalid transmutes 2019-12-26 22:50:16 +01:00
Oliver Scherer 13694de4a2 Comment on a few odd things that we should look at 2019-12-26 22:50:16 +01:00
Oliver Scherer bb1ecee5b6 Simplify force_allocation_maybe_sized 2019-12-26 22:50:16 +01:00
Oliver Scherer b5b5258d74 Retire to_ptr which should already have no users but still kept getting new ones 2019-12-26 22:50:14 +01:00
Oliver Scherer 1e40681f50 Don't ICE on the use of integer addresses for ZST constants in pattern matching 2019-12-26 22:46:22 +01:00