Commit Graph

95222 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
2e7e131b8e
Rollup merge of #60772 - timvermeulen:slice_iter_nth_back, r=scottmcm
Implement nth_back for slice::{Iter, IterMut}

Part of #54054.

I implemented `nth_back` as straightforwardly as I could, and then slightly changed `nth` to match `nth_back`. I believe I did so correctly, but please double-check 🙂

I also added the helper methods `zst_shrink`, `next_unchecked`, and `next_back_unchecked` to get rid of some duplicated code. These changes hopefully make this code easier to understand for new contributors like me.

I noticed the `is_empty!` and `len!` macros which sole purpose seems to be inlining, according to the comment right above them, but the `is_empty` and `len` methods are already marked with `#[inline(always)]`. Does that mean we could replace these macros with method calls, without affecting anything? I'd love to get rid of them.
2019-06-20 08:36:00 +02:00
Mazdak Farrokhzad
3e08f1b57e
Rollup merge of #60454 - acrrd:issues/54054_skip, r=scottmcm
Add custom nth_back to Skip

Implementation of nth_back for Skip.
Part of #54054
2019-06-20 08:35:58 +02:00
Jake Goulding
b0dd7fc9f5
Closures implement Copy and Clone, generators don't 2019-06-19 23:03:33 -04:00
bors
3c805ce183 Auto merge of #60341 - mtak-:macos-tlv-workaround, r=alexcrichton
macos tlv workaround

fixes: #60141

Includes:
* remove dead code: `requires_move_before_drop`. This hasn't been needed for a while now (oops I should have removed it in #57655)
* redox had a copy of `fast::Key` (not sure why?). That has been removed.
* Perform a `read_volatile` on OSX to reduce `tlv_get_addr` calls per `__getit` from (4-2 depending on context) to 1.

`tlv_get_addr` is relatively expensive (~1.5ns on my machine).

Previously, in contexts where `__getit` was inlined, 4 calls to `tlv_get_addr` were performed per lookup. For some reason when `__getit` is not inlined this is reduced to 2x - and performance improves to match.

After this PR, I have only ever seen 1x call to `tlv_get_addr` per `__getit`, and macos now benefits from situations where `__getit` is inlined.

I'm not sure if the `read_volatile(&&__KEY)` trick is working around an LLVM bug, or a rustc bug, or neither.

r? @alexcrichton
2019-06-20 02:36:49 +00:00
bors
7d10761349 Auto merge of #61947 - estebank:ice-ice-revolution, r=matthewjasper
Fix ICE involving mut references

Fix #61623, fix #61944, fix #61751.
2019-06-19 22:23:45 +00:00
bors
2fe7b3383c Auto merge of #61967 - lzutao:clippy-update, r=oli-obk
submodules: Update clippy from 868f168c to 149a988

r? @oli-obk
2019-06-19 19:28:28 +00:00
tyler
b148c25cac fix compile-fail test for targets without thread locals 2019-06-19 11:50:23 -07:00
Oliver Scherer
3dfe017dc3 Pacify tidy 2019-06-19 20:17:09 +02:00
Eduard-Mihai Burtescu
673c3fc23a rustc: disallow cloning HIR nodes. 2019-06-19 21:16:08 +03:00
Eduard-Mihai Burtescu
887feeeaf7 rustc: replace GenericArgs::with_generic_args hack with a plain getter. 2019-06-19 21:16:04 +03:00
Oliver Scherer
cdf5596502 Rename regression test to link it to the corresponding issue 2019-06-19 19:48:03 +02:00
Cedric
b72b1ac062 fix indentation 2019-06-19 19:47:52 +02:00
Oliver Scherer
811b996e58 Change ByRef to a struct variant to clarify its fields via names 2019-06-19 19:43:13 +02:00
Lzu Tao
405f655942 Update clippy from 868f168c to 149a988 2019-06-19 17:30:55 +00:00
bors
5e0c6a69e0 Auto merge of #61962 - Centril:rollup-y6sg1zw, r=Centril
Rollup of 4 pull requests

Successful merges:

 - #60667 ( Add functions for building raw slices to libcore )
 - #61547 (Support `cfg` and `cfg_attr` on generic parameters)
 - #61861 (Update rustfmt and rls)
 - #61940 (Make Place::ty iterate)

Failed merges:

r? @ghost
2019-06-19 16:37:58 +00:00
Esteban Küber
8a415d145a review comment 2019-06-19 09:25:48 -07:00
Mazdak Farrokhzad
bf6c505c23
Rollup merge of #61940 - spastorino:place-ty-iterate, r=oli-obk
Make Place::ty iterate

r? @oli-obk

Related to Place 2.0
2019-06-19 17:34:39 +02:00
Mazdak Farrokhzad
d88b7b2136
Rollup merge of #61861 - topecongiro:rustfmt-1.3.0, r=topecongiro
Update rustfmt and rls

This PR bumps the version of rustfmt to 1.3.0.
2019-06-19 17:34:38 +02:00
Mazdak Farrokhzad
7b3984b21b
Rollup merge of #61547 - petrochenkov:cfgen, r=Centril
Support `cfg` and `cfg_attr` on generic parameters

`cfg` attributes are supported in all other positions where attributes are accepted at all.

They were previously prohibited in https://github.com/rust-lang/rust/pull/51283 because they weren't implemented correctly before that and were simply ignored.
2019-06-19 17:34:36 +02:00
Mazdak Farrokhzad
564326a626
Rollup merge of #60667 - oli-obk:raw_from_raw_parts, r=sfackler
Add functions for building raw slices to libcore

implement https://github.com/rust-lang/rust/issues/36925
2019-06-19 17:34:35 +02:00
topecongiro
5a411a65d0
Update rustfmt and rls
Update rustfmt to 1.3.0.
2019-06-19 23:54:31 +09:00
Oliver Scherer
23a1ebb3fc Remove the AllocId from ByRef values
`ByRef` const values have no identity beyond their value, we should not treat them as having identity. The `AllocId` often differed between equal constants, because of the way that the miri-engine evaluates constants.
2019-06-19 15:58:51 +02:00
Oliver Scherer
e951d8ec0b Make Allocation stable hash robust 2019-06-19 15:16:09 +02:00
Oliver Scherer
4399299edc mark_definedness cannot fail 2019-06-19 15:16:09 +02:00
bors
e79b2a18a2 Auto merge of #61172 - matthewjasper:cleanup-implied-bounds-lint, r=varkor
Improve the explicit_outlives_requirements lint

* Don't use Strings to compare parameters
* Extend the lint to lifetime bounds
* Extend the lint to enums and unions
* Use the correct span for where clauses in tuple structs
* Try to early-out where possible
* Remove unnecessary bounds in rustc crates
2019-06-19 12:41:38 +00:00
bors
9cb052acfb Auto merge of #58351 - oli-obk:double_check_const_eval, r=RalfJung
Refactor interning to properly mark memory as mutable or immutable

r? @RalfJung

This implementation is incomplete out of multiple reasons

* [ ] add `-Zunleash_the_miri_inside_of_you` tests
* [ ] report an error if there's an `UnsafeCell` behind a reference in a constant
* [ ] make validity checks actually test whether the mutability of their allocations match what they see in the type
2019-06-19 09:43:58 +00:00
Oliver Scherer
cd290c7ee9 packed -> repr(packed) 2019-06-19 11:20:38 +02:00
Oliver Scherer
ce39fff66b Fix comment about alignments 2019-06-19 11:18:03 +02:00
Cedric
70e52f8418 provide variant definition on tuple struct unknow field error 2019-06-19 11:09:17 +02:00
Oliver Scherer
3977cc2b37 Remove now-unnecessary lifetime 2019-06-19 10:34:32 +02:00
Cedric
c917ba325f adt hint pointing to adt span 2019-06-19 10:07:07 +02:00
Oliver Scherer
62af19b614 More FIXMEs 2019-06-19 10:03:53 +02:00
Vadim Petrochenkov
0b58bb32f6 Support cfg and cfg_attr on generic parameters 2019-06-19 10:59:15 +03:00
Oliver Scherer
fd426a6ae9 Explain existance of Align field 2019-06-19 09:57:07 +02:00
Oliver Scherer
fb37bf0037 Weave the alignment through ByRef 2019-06-19 09:53:32 +02:00
Oliver Scherer
921f0d9ca9 Outright ignore any alignment in const_field 2019-06-19 09:52:36 +02:00
Oliver Scherer
667f94cb24 Update ui test output 2019-06-19 09:52:36 +02:00
Oliver Scherer
6229a8f1f6 Elaborate some more on what mutability field means what 2019-06-19 09:52:36 +02:00
Oliver Scherer
521d38adb5 Update to TyCtxt lifetime changes 2019-06-19 09:52:36 +02:00
Oliver Scherer
a18d99abaa Fix typo 2019-06-19 09:52:35 +02:00
Oliver Scherer
5734558881 The future is now 2019-06-19 09:52:35 +02:00
Oliver Scherer
98bf737614 s/intern/intern_shallow/ 2019-06-19 09:52:35 +02:00
Oliver Scherer
104b108406 Add and update more tests 2019-06-19 09:52:35 +02:00
Oliver Scherer
13f35de19d Elaborate on a comment 2019-06-19 09:52:35 +02:00
Oliver Scherer
9e3fbcfd57 Merge StaticMut and Static logic 2019-06-19 09:52:35 +02:00
Oliver Scherer
d6fa4070be Fix rebase fallout 2019-06-19 09:52:35 +02:00
Oliver Scherer
b52f6f4ca8 Elaborate on why we don't look at frozenness 2019-06-19 09:52:35 +02:00
Oliver Scherer
870a6dc230 Don't ICE when pattern matching packed structs 2019-06-19 09:52:35 +02:00
Oliver Scherer
21b1bd69b0 Prevent cyclic locks of alloc_map 2019-06-19 09:52:35 +02:00
Oliver Scherer
4b6f3868b3 Make interning explicitly care about types and the mutability of memory 2019-06-19 09:52:35 +02:00