Niko Matsakis
aaf4176f0f
Fallout: Port slice to use PhantomData
instead of ContravariantLifetime
2015-02-18 10:25:28 -05:00
Alex Crichton
47f91a9484
Register new snapshots
2015-02-17 22:04:31 -08:00
Alex Crichton
cc687869ab
std: Stabilize the IntoIterator trait
...
Now that the necessary associated types exist for the `IntoIterator` trait this
commit stabilizes the trait as-is as well as all existing implementations.
2015-02-17 10:06:24 -08:00
Manish Goregaokar
d264ef2b11
Rollup merge of #22313 - japaric:iter, r=aturon
...
`IntoIterator` now has an extra associated item:
``` rust
trait IntoIterator {
type Item;
type IntoIter: Iterator<Self=Self::Item>;
}
```
This lets you bind the iterator \"`Item`\" directly when writing generic functions:
``` rust
// hypothetical change, not included in this PR
impl Extend<T> for Vec<T> {
// you can now write
fn extend<I>(&mut self, it: I) where I: IntoIterator<Item=T> { .. }
// instead of
fn extend<I: IntoIterator>(&mut self, it: I) where I::IntoIter: Iterator<Item=T> { .. }
}
```
The downside is that now you have to write an extra associated type in your `IntoIterator` implementations:
``` diff
impl<T> IntoIterator for Vec<T> {
+ type Item = T;
type IntoIter = IntoIter<T>;
fn into_iter(self) -> IntoIter<T> { .. }
}
```
Because this breaks all downstream implementations of `IntoIterator`, this is a [breaking-change]
---
r? @aturon
2015-02-17 06:23:40 +05:30
Brian Anderson
e72fb354dc
core::slice: uint -> usize, int -> isize
2015-02-14 21:14:46 -08:00
Jorge Aparicio
e7273784c7
add an associated Item
type to IntoIterator
2015-02-13 19:02:02 -05:00
Alex Crichton
d2f990f2b0
More test fixes and rebase conflicts
2015-02-11 15:45:15 -08:00
David Creswick
cf475e6b10
implement missing iterator traits for slice::Windows
...
- DoubleEndedIterator
- ExactSizeIterator
- RandomAccessIterator
2015-02-11 17:03:48 -06:00
Alex Crichton
605225a366
std: Rename IntoIterator::Iter to IntoIter
...
This is in preparation for stabilization of the `IntoIterator` trait. All
implementations and references to `Iter` need to be renamed to `IntoIter`.
[breaking-change]
2015-02-09 15:58:13 -08:00
Jorge Aparicio
724bf7bce2
make IndexMut
a super trait over Index
...
closes #21630
2015-02-06 21:11:59 -05:00
Mikhail Zabaluev
3ac862816f
Replace usage of slice::from_raw_buf with slice::from_raw_parts
...
New functions, slice::from_raw_parts and slice::from_raw_parts_mut,
are added to implement the lifetime convention as agreed in RFC PR #556 .
The functions slice::from_raw_buf and slice::from_raw_mut_buf are
left deprecated for the time being.
2015-02-05 13:54:26 +02:00
Jorge Aparicio
134cf707df
register snapshots
2015-02-02 13:38:32 -05:00
Jorge Aparicio
ed82b5a70e
remove Copy impls from iterators
2015-01-30 10:37:44 -05:00
Jorge Aparicio
a65d3f5b98
core: add the IntoIterator
trait
2015-01-30 10:36:31 -05:00
Nick Cameron
bf2b473816
Rename FullRange to RangeFull
2015-01-30 12:01:08 +13:00
Jorge Aparicio
7d661af9c8
for x in range(a, b)
-> for x in a..b
...
sed -i 's/in range(\([^,]*\), *\([^()]*\))/in \1\.\.\2/g' **/*.rs
2015-01-29 07:47:37 -05:00
Brian Anderson
d179ba3b8e
Merge remote-tracking branch 'rust-lang/master'
...
Conflicts:
src/libcore/cmp.rs
src/libcore/fmt/mod.rs
src/libcore/iter.rs
src/libcore/marker.rs
src/libcore/num/f32.rs
src/libcore/num/f64.rs
src/libcore/result.rs
src/libcore/str/mod.rs
src/librustc/lint/builtin.rs
src/librustc/lint/context.rs
src/libstd/sync/mpsc/mod.rs
src/libstd/sync/poison.rs
2015-01-25 22:14:06 -08:00
Brian Anderson
63fcbcf3ce
Merge remote-tracking branch 'rust-lang/master'
...
Conflicts:
mk/tests.mk
src/liballoc/arc.rs
src/liballoc/boxed.rs
src/liballoc/rc.rs
src/libcollections/bit.rs
src/libcollections/btree/map.rs
src/libcollections/btree/set.rs
src/libcollections/dlist.rs
src/libcollections/ring_buf.rs
src/libcollections/slice.rs
src/libcollections/str.rs
src/libcollections/string.rs
src/libcollections/vec.rs
src/libcollections/vec_map.rs
src/libcore/any.rs
src/libcore/array.rs
src/libcore/borrow.rs
src/libcore/error.rs
src/libcore/fmt/mod.rs
src/libcore/iter.rs
src/libcore/marker.rs
src/libcore/ops.rs
src/libcore/result.rs
src/libcore/slice.rs
src/libcore/str/mod.rs
src/libregex/lib.rs
src/libregex/re.rs
src/librustc/lint/builtin.rs
src/libstd/collections/hash/map.rs
src/libstd/collections/hash/set.rs
src/libstd/sync/mpsc/mod.rs
src/libstd/sync/mutex.rs
src/libstd/sync/poison.rs
src/libstd/sync/rwlock.rs
src/libsyntax/feature_gate.rs
src/libsyntax/test.rs
2015-01-25 01:20:55 -08:00
Alfie John
f67e7470b3
Moving away from deprecated i/u suffixes in libcore
2015-01-25 00:17:41 +00:00
Brian Anderson
b44ee371b8
grandfathered -> rust1
2015-01-23 21:48:20 -08:00
Brian Anderson
cd6d9eab5d
Set unstable feature names appropriately
...
* `core` - for the core crate
* `hash` - hashing
* `io` - io
* `path` - path
* `alloc` - alloc crate
* `rand` - rand crate
* `collections` - collections crate
* `std_misc` - other parts of std
* `test` - test crate
* `rustc_private` - everything else
2015-01-23 13:28:40 -08:00
Brian Anderson
41278c5441
Remove 'since' from unstable attributes
2015-01-21 19:25:55 -08:00
Brian Anderson
7b73ec4698
Tie stability attributes to feature gates
2015-01-21 16:16:21 -08:00
Brian Anderson
94ca8a3610
Add 'feature' and 'since' to stability attributes
2015-01-21 16:16:18 -08:00
Alex Crichton
886c6f3534
rollup merge of #21258 : aturon/stab-3-index
...
Conflicts:
src/libcore/ops.rs
src/librustc_typeck/astconv.rs
src/libstd/io/mem.rs
src/libsyntax/parse/lexer/mod.rs
2015-01-21 11:53:49 -08:00
Alex Crichton
1646707c6e
rollup merge of #21396 : japaric/no-parens-in-range
...
Conflicts:
src/libsyntax/parse/lexer/comments.rs
2015-01-21 09:15:15 -08:00
Alex Crichton
2e9adab528
rollup merge of #21053 : apasel422/exact
2015-01-21 09:13:38 -08:00
Aaron Turon
092ba6a856
Deprecate slicing methods in favor of notation
...
This commit deprecates `slice`, `slice_from`, `slice_to` and their
mutable variants in favor of slice notation.
The `as_slice` methods are left intact, for now.
[breaking-change]
2015-01-21 07:45:45 -08:00
Andrew Paseltiner
2cc7feb4f6
implement ExactSizeIterator
for slice::{Chunks,ChunksMut}
2015-01-20 22:44:22 -05:00
Jorge Aparicio
49684850be
remove unnecessary parentheses from range notation
2015-01-19 12:24:43 -05:00
we
812ce6c190
Remove unnecessary explicit conversions to *const T
2015-01-17 07:34:10 +03:00
Jorge Aparicio
c1d48a8508
cleanup: &foo[0..a]
-> &foo[..a]
2015-01-12 17:59:37 -05:00
Brian Anderson
1f70acbf4c
Improvements to feature staging
...
This gets rid of the 'experimental' level, removes the non-staged_api
case (i.e. stability levels for out-of-tree crates), and lets the
staged_api attributes use 'unstable' and 'deprecated' lints.
This makes the transition period to the full feature staging design
a bit nicer.
2015-01-08 03:07:23 -08:00
Jorge Aparicio
517f1cc63c
use slicing sugar
2015-01-07 17:35:56 -05:00
Alex Crichton
56a9e2fcd5
Test fixes and rebase conflicts
2015-01-06 16:10:37 -08:00
Alex Crichton
34a63d3364
rollup merge of #20656 : japaric/at-clean
2015-01-06 15:41:13 -08:00
Alex Crichton
771fe9026a
rollup merge of #20607 : nrc/kinds
...
Conflicts:
src/libcore/array.rs
src/libcore/cell.rs
src/libcore/prelude.rs
src/libstd/path/posix.rs
src/libstd/prelude/v1.rs
src/test/compile-fail/dst-sized-trait-param.rs
2015-01-06 15:34:10 -08:00
Nick Cameron
9f07d055f7
markers -> marker
2015-01-07 12:10:31 +13:00
Nick Cameron
0c7f7a5fb8
fallout
2015-01-07 12:02:52 +13:00
Nick Cameron
f7ff37e4c5
Replace full slice notation with index calls
2015-01-07 10:46:33 +13:00
Nick Cameron
918255ef8c
Impls using the new scheme for slicing
2015-01-07 10:24:19 +13:00
Nick Cameron
503709708c
Change std::kinds
to std::markers
; flatten std::kinds::marker
...
[breaking-change]
2015-01-07 09:45:28 +13:00
Jorge Aparicio
ec133fed40
cleanup: use short AT notation (Ty::Item
instead of <Ty as Trait>::Item
)
2015-01-06 11:23:18 -05:00
Alex Crichton
384e218789
Merge remote-tracking branch 'nrc/sized-2' into rollup
...
Conflicts:
src/liballoc/boxed.rs
src/libcollections/btree/map.rs
src/libcollections/slice.rs
src/libcore/borrow.rs
src/libcore/cmp.rs
src/libcore/ops.rs
src/libstd/c_str.rs
src/libstd/collections/hash/map.rs
src/libsyntax/parse/obsolete.rs
src/test/compile-fail/unboxed-closure-sugar-default.rs
src/test/compile-fail/unboxed-closure-sugar-equiv.rs
src/test/compile-fail/unboxed-closure-sugar-lifetime-elision.rs
src/test/compile-fail/unboxed-closure-sugar-region.rs
src/test/compile-fail/unsized3.rs
src/test/run-pass/associated-types-conditional-dispatch.rs
2015-01-05 18:55:41 -08:00
Alex Crichton
afbce050ca
rollup merge of #20556 : japaric/no-for-sized
...
Conflicts:
src/libcollections/slice.rs
src/libcollections/str.rs
src/libcore/borrow.rs
src/libcore/cmp.rs
src/libcore/ops.rs
src/libstd/c_str.rs
src/test/compile-fail/issue-19009.rs
2015-01-05 18:47:45 -08:00
Alex Crichton
2e883a5f53
rollup merge of #20560 : aturon/stab-2-iter-ops-slice
...
Conflicts:
src/libcollections/slice.rs
src/libcore/iter.rs
src/libstd/sync/mpsc/mod.rs
src/libstd/sync/rwlock.rs
2015-01-05 18:41:20 -08:00
Nick Cameron
e0684e8769
Fallout
2015-01-06 14:20:48 +13:00
Aaron Turon
c6f4a03d12
Stabilization of impls and fallout from stabilization
2015-01-05 14:26:04 -08:00
Jorge Aparicio
a291a80fbe
register snapshot
2015-01-05 17:22:11 -05:00
Aaron Turon
121f6c6673
Final alpha stabilization of std::slice
...
Marks as `#[stable]`:
* Various iterator structs for stable methods, e.g. `Chunks` and
`Windows`.
* The `SliceExt` trait itself.
2015-01-05 14:08:21 -08:00