bors
1ef1563518
Auto merge of #48945 - clarcharr:iter_exhaust, r=Kimundi
...
Replace manual iterator exhaust with for_each(drop)
This originally added a dedicated method, `Iterator::exhaust`, and has since been replaced with `for_each(drop)`, which is more idiomatic.
<del>This is just shorthand for `for _ in &mut self {}` or `while let Some(_) = self.next() {}`. This states the intent a lot more clearly than the identical code: run the iterator to completion.
<del>At least personally, my eyes tend to gloss over `for _ in &mut self {}` without fully paying attention to what it does; having a `Drop` implementation akin to:
<del>`for _ in &mut self {}; unsafe { free(self.ptr); }`</del>
<del>Is not as clear as:
<del>`self.exhaust(); unsafe { free(self.ptr); }`
<del>Additionally, I've seen debate over whether `while let Some(_) = self.next() {}` or `for _ in &mut self {}` is more clear, whereas `self.exhaust()` is clearer than both.
2018-04-16 13:21:56 +00:00
Clar Charr
5c58eec0bd
Replace manual iter exhaust with for_each(drop).
2018-04-04 19:10:38 -04:00
Simon Sapin
16d3ba1b23
Move RangeArguments to {core::std}::ops and rename to RangeBounds
...
These unstable items are deprecated:
* The `std::collections::range::RangeArgument` reexport
* The `std::collections::range` module.
2018-03-29 13:12:49 +02:00
Simon Sapin
c3a63970de
Move alloc::Bound to {core,std}::ops
...
The stable reexport `std::collections::Bound` is now deprecated.
Another deprecated reexport could be added in `alloc`,
but that crate is unstable.
2018-03-29 13:12:49 +02:00
Simon Sapin
f19baf0977
Rename std::ptr::Shared to NonNull
...
`Shared` is now a deprecated `type` alias.
CC https://github.com/rust-lang/rust/issues/27730#issuecomment-352800629
2018-01-20 10:55:16 +01:00
Christopher Durham
056370167a
Annotate raw pointer target types
...
cc https://github.com/rust-lang/rust/issues/46906
cc https://github.com/rust-lang/rust/pull/46914
2017-12-23 03:47:13 -05:00
Michael Hewson
1e2bd7021a
fix errors in rustc_data_structures
2017-12-22 18:16:19 -05:00
Martin Lindhe
ece9a57d1b
fix some typos
2017-11-21 15:33:45 +01:00
Zack M. Davis
1b6c9605e4
use field init shorthand EVERYWHERE
...
Like #43008 (f668999 ), but _much more aggressive_.
2017-08-15 15:29:17 -07:00
Isaac van Bakel
400075d9d9
Fixed all unnecessary muts in language core
2017-08-01 23:01:24 +01:00
Simon Sapin
a4edae95ad
Add conversions from references to NonZero pointers, Unique, and Shared
2017-07-22 20:38:40 +02:00
Simon Sapin
0a08ad0443
Rename {NonZero,Shared,Unique}::new to new_unchecked
2017-07-22 20:38:16 +02:00
Steven Fackler
0a9c13624d
Revert "Stabilize RangeArgument"
...
This reverts commit 143206d54d .
2017-06-30 08:34:53 -10:00
Steven Fackler
143206d54d
Stabilize RangeArgument
...
Move it and Bound to core::ops while we're at it.
Closes #30877
2017-06-24 19:20:57 -07:00
Alexis Beingessner
4ff583b116
fallout from NonZero/Unique/Shared changes
2017-05-04 23:54:54 -04:00
Michael Woerister
bc7af816f3
ICH: Hash everything that gets encoded into crate metadata.
2017-04-12 11:42:15 +02:00
Simonas Kazlauskas
38713126dd
Move away from the ad-hoc NoDrop unions
2017-04-09 18:55:47 +03:00
Aaron Turon
a8f4a1bd98
Stabilize rc_raw feature, closes #37197
2017-03-17 13:28:53 -07:00
est31
7ed78fcbdf
Remove dead recursive partial eq impl
...
Its nowhere used (if it had been used used, the rust stack would have overflown
due to the recursion). Its presence was confusing for mrustc.
2017-01-29 06:07:45 +01:00
Djzin
bd04c30df7
add required imports & feature
2017-01-14 17:40:52 +00:00
djzin
93e6c26dcf
update array_vec to use new rangeargument
2017-01-14 17:06:00 +00:00
Andrew Cann
9482492ab6
Add drain method to AccumulateVec/ArrayVec
...
You can now call .drain(..) on SmallVec, AccumulateVec and ArrayVec
2017-01-03 15:48:29 +08:00
Mark-Simulacrum
7bbebb1f54
Change implementation of syntax::util::SmallVector to use data_structures::SmallVec.
2016-11-11 07:38:48 -07:00
Mark-Simulacrum
a4f7ba376e
Add AccumulateVec, a potentially stack-allocated vector.
...
AccumulateVec is generic over the Array trait, which is currently only
implemented for [T; 8].
2016-10-25 20:06:17 -06:00