Jorge Aparicio
d5f61b4332
for x in xs.iter_mut()
-> for x in &mut xs
...
Also `for x in option.iter_mut()` -> `if let Some(ref mut x) = option`
2015-02-02 13:40:18 -05:00
bors
c2bda2a5bb
Auto merge of #21806 - edwardw:new-range-impl, r=alexcrichton
...
The new `::ops::Range` has separated implementations for each of the
numeric types, while the old `::iter::Range` has one for type `Int`.
However, we do not take output bindings into account when selecting
traits. So it confuses `typeck` and makes the new range does not work as
good as the old one when it comes to type inference.
This patch implements `Iterator` for the new range for one type `Int`.
This limitation could be lifted, however, if we ever reconsider the
output types' role in type inference.
Closes #21595
Closes #21649
Closes #21672
2015-02-01 19:07:11 +00:00
Edward Wang
cd977ee217
Make sure type inference with a..b
as good as range(a,b)
...
The new `::ops::Range` has separated implementations for each of the
numeric types, while the old `::iter::Range` has one for type `Int`.
However, we do not take output bindings into account when selecting
traits. So it confuses `typeck` and makes the new range does not work as
good as the old one when it comes to type inference.
This patch implements `Iterator` for the new range for one type `Int`.
This limitation could be lifted, however, if we ever reconsider the
output types' role in type inference.
Closes #21595
Closes #21649
Closes #21672
2015-02-01 14:08:14 +08:00
Jorge Aparicio
c3841b9c9f
remove Copy impls from remaining iterators
2015-01-31 09:09:22 -05:00
Jorge Aparicio
60abb3bef2
fixes after rebase
2015-01-30 10:37:45 -05:00
Jorge Aparicio
ed82b5a70e
remove Copy impls from iterators
2015-01-30 10:37:44 -05:00
Jorge Aparicio
f9865eac18
fix fallout
2015-01-30 10:37:44 -05:00
Jorge Aparicio
a65d3f5b98
core: add the IntoIterator
trait
2015-01-30 10:36:31 -05:00
Jorge Aparicio
788181d405
s/Show/Debug/g
2015-01-29 07:49:02 -05:00
Jorge Aparicio
09ba9f5c87
remove #[old_impl_check] now that #21363 has been fixed
2015-01-29 07:49:02 -05:00
Jorge Aparicio
16a2503a1c
undo some conversions
2015-01-29 07:49:02 -05: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
Jorge Aparicio
c300d681bd
range(a, b).foo()
-> (a..b).foo()
...
sed -i 's/ range(\([^,]*\), *\([^()]*\))\./ (\1\.\.\2)\./g' **/*.rs
2015-01-29 07:46:44 -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
bors
102ab57d80
Auto merge of #21582 - FlaPer87:rollup, r=brson
...
- Successful merges: #21108 , #21445 , #21498 , #21504 , #21532 , #21535 , #21539 , #21540 , #21541 , #21550 , #21560 , #21573 , #21579
- Failed merges:
2015-01-25 13:33:18 +00: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
Flavio Percoco Premoli
6a9ee09a99
Rollup merge of #21445 - P1start:no-implemented, r=nikomatsakis
2015-01-24 10:42:40 +01: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
bors
86fbdbfbcd
Auto merge of #21453 - Stebalien:exactsize, r=alexcrichton
...
Specifically:
* Peekable
* ByRef
* Skip
* Take
* Fuse
Fixes #20547
2015-01-23 12:02:27 +00:00
Tshepang Lekhonkhobe
9091e047e3
iter: miscellaneous improvements
...
There are doc improvements as well as these conversions:
- int/uint -> isize/usize
- u/i -> us/is
2015-01-23 01:40:18 +02:00
P1start
be138ed2bd
Add #[rustc_on_unimplemented]
annotations to more traits
2015-01-22 22:22:04 +13:00
Brian Anderson
41278c5441
Remove 'since' from unstable attributes
2015-01-21 19:25:55 -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
Steven Allen
a13e721202
Use the default len
implementation in ExactSizeIterator impls
2015-01-21 11:29:40 -05:00
Aaron Turon
fba0bf63a9
Stabilize Index traits and most range notation
...
This commit marks as `#[stable]`:
* The `Index` and `IndexMut` traits. These are stabilized as taking the
index itself *by reference*; after extensive discussion it was
determined that this is a better match with our choices
elsewhere (e.g. making comparison operators auto-reference), and that
the use cases for by-value indices are better handled through
`IndexSet`.
* The `Range`, `RangeFrom` and `RangeTo` structs, introduced for range
notation.
* Various impls of `Index` and `IndexMut`.
The `FullRange` struct is left unstable as we may wish to rename it to
`RangeFull` in the future.
This commit also *removes* the `Step` trait in favor of direct
implementation of iterator traits on ranges for integers. The `Step`
trait was not a terribly useful factoring internally, and it is likely
that external integer types are best off implementing range iterators
directly. It was removed to simplify the API surface. We can always
reintroduce `Step` later if it turns out to be useful.
Due to this removal, this is a:
[breaking-change]
2015-01-21 07:45:45 -08:00
Steven Allen
8ea6f78cf6
Implement ExactSizeIterator for remaining core Iterators where applicable.
...
Specifically:
* Peekable
* ByRef
* Skip
* Take
* Fuse
2015-01-20 21:57:20 -05:00
Jorge Aparicio
00cddb068c
also forward Iterator::size_hint()
2015-01-20 18:15:28 -05:00
Jorge Aparicio
74e111caf6
impl Iterator for &mut Iterator and Box<Iterator>
...
closes #20953
closes #21361
2015-01-19 10:41:07 -05:00
Eduard Burtescu
89b80faa8e
Register new snapshots.
2015-01-17 16:37:34 -08:00
bors
0aec4db1c0
auto merge of #20889 : Manishearth/rust/trait-error, r=nikomatsakis
...
fixes #20783
r? @nikomatsakis
2015-01-12 04:45:18 +00:00
Manish Goregaokar
dd074ab4ee
Rename #[on_unimplemented] -> #[rustc_on_unimplemented]
2015-01-11 20:52:43 +05:30
Manish Goregaokar
4d17fbaf37
Add ability to attach custom #[on_unimplemented] error messages for unimplemented traits ( fixes #20783 )
2015-01-11 09:49:02 +05:30
Alex Crichton
ccb1e460dc
std: Mark two missing functions as #[stable]
...
Both `Extend::extend` and `DoubleEndedIterator::next_back` were intended to be
stable, but they mistakenly didn't have the `#[stable]` tag.
2015-01-09 15:49:09 -08: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
Alex Crichton
0dc48b47a8
Test fixes and rebase conflicts
2015-01-07 19:27:27 -08:00
Alex Crichton
6e806bdefd
rollup merge of #20721 : japaric/snap
...
Conflicts:
src/libcollections/vec.rs
src/libcore/fmt/mod.rs
src/librustc/lint/builtin.rs
src/librustc/session/config.rs
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/context.rs
src/librustc_trans/trans/type_.rs
src/librustc_typeck/check/_match.rs
src/librustdoc/html/format.rs
src/libsyntax/std_inject.rs
src/libsyntax/util/interner.rs
src/test/compile-fail/mut-pattern-mismatched.rs
2015-01-07 17:26:58 -08:00
Jorge Aparicio
7d72719efc
fix the &mut _
patterns
2015-01-07 19:26:36 -05:00
Nick Cameron
dd3e89aaf2
Rename target_word_size
to target_pointer_width
...
Closes #20421
[breaking-change]
2015-01-08 09:07:55 +13:00
Alex Crichton
34a63d3364
rollup merge of #20656 : japaric/at-clean
2015-01-06 15:41:13 -08:00
Nick Cameron
9f07d055f7
markers -> marker
2015-01-07 12:10:31 +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
4b359e3aee
More test fixes!
2015-01-05 22:58:37 -08:00
Alex Crichton
ee9921aaed
Revert "Remove i suffix in docs"
...
This reverts commit f031671c6ea79391eeb3e1ad8f06fe0e436103fb.
Conflicts:
src/libcollections/slice.rs
src/libcore/iter.rs
src/libstd/sync/mpsc/mod.rs
src/libstd/sync/rwlock.rs
2015-01-05 19:08:37 -08:00
Alex Crichton
f331c56869
Test fixes
2015-01-05 19:07:07 -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
Steve Klabnik
f031671c6e
Remove i suffix in docs
2015-01-05 17:35:16 -05:00