Commit Graph

146 Commits

Author SHA1 Message Date
Manish Goregaokar
c709ed2faf Merge remote-tracking branch 'origin/master' into rollup
Conflicts:
	src/libcollections/slice.rs
	src/libcore/nonzero.rs
	src/libcore/ops.rs
2015-01-28 23:31:03 +05:30
Niko Matsakis
07cdb85331 Move return type an associated type of the Fn* traits. Mostly this involves tweaking things in
the compiler that assumed two input types to assume two ouputs; we also have to teach `project.rs`
to project `Output` from the unboxed closure and fn traits.
2015-01-28 05:15:23 -05:00
Manish Goregaokar
28b0271f89 Rollup merge of #21658 - Manishearth:index_on_unimplemented, r=Gankro
Helps issues like [these](http://www.reddit.com/r/rust/comments/2tpefm/unable_to_access_array_elements/)

r? @Gankro

rollup-worthy
2015-01-28 04:32:20 +05:30
Manish Goregaokar
6a90eca8fc Add on_unimplemented note to Index 2015-01-27 02:19:52 +05:30
Jorge Aparicio
bff462302b cleanup: s/impl Copy/#[derive(Copy)]/g 2015-01-25 11:20:38 -05: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
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
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
87c3ee861e rollup merge of #21457: alexcrichton/issue-21436
Conflicts:
	src/liballoc/boxed.rs
	src/librustc/middle/traits/error_reporting.rs
	src/libstd/sync/mpsc/mod.rs
2015-01-21 09:20:35 -08:00
Alex Crichton
ecc9dccc15 rollup merge of #21367: steveklabnik/remove_gate
This gate was `Accepted`, so we shouldn't need these.
2015-01-21 09:13:57 -08: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
bors
8abcbaba1d Auto merge of #21227 - sellibitze:core-ops-for-references, r=aturon
As discussed with @aturon I added implementations of various op traits for references to built-in types which was already suggested by the ops reform RFC.

The 2nd commit updates the module documentation of core::ops to fully reflect the recent change from pass-by-reference to pass-by-value and expands on the implications for generic code.
2015-01-21 09:02:44 +00:00
Alex Crichton
3cb9fa26ef std: Rename Show/String to Debug/Display
This commit is an implementation of [RFC 565][rfc] which is a stabilization of
the `std::fmt` module and the implementations of various formatting traits.
Specifically, the following changes were performed:

[rfc]: https://github.com/rust-lang/rfcs/blob/master/text/0565-show-string-guidelines.md

* The `Show` trait is now deprecated, it was renamed to `Debug`
* The `String` trait is now deprecated, it was renamed to `Display`
* Many `Debug` and `Display` implementations were audited in accordance with the
  RFC and audited implementations now have the `#[stable]` attribute
  * Integers and floats no longer print a suffix
  * Smart pointers no longer print details that they are a smart pointer
  * Paths with `Debug` are now quoted and escape characters
* The `unwrap` methods on `Result` now require `Display` instead of `Debug`
* The `Error` trait no longer has a `detail` method and now requires that
  `Display` must be implemented. With the loss of `String`, this has moved into
  libcore.
* `impl<E: Error> FromError<E> for Box<Error>` now exists
* `derive(Show)` has been renamed to `derive(Debug)`. This is not currently
  warned about due to warnings being emitted on stage1+

While backwards compatibility is attempted to be maintained with a blanket
implementation of `Display` for the old `String` trait (and the same for
`Show`/`Debug`) this is still a breaking change due to primitives no longer
implementing `String` as well as modifications such as `unwrap` and the `Error`
trait. Most code is fairly straightforward to update with a rename or tweaks of
method calls.

[breaking-change]
Closes #21436
2015-01-20 22:36:13 -08:00
Sebastian Gesemann
970fd747b9 add stability text like suggested in discussion 2015-01-20 22:35:42 +01:00
Diggory Blake
a674f852db Ranges implement Clone where possible 2015-01-19 05:43:15 +00:00
Steve Klabnik
f7fe249bbc Remove associated_types gate from std::ops docs 2015-01-18 11:28:17 -05:00
Eduard Burtescu
89b80faa8e Register new snapshots. 2015-01-17 16:37:34 -08:00
Volker Mische
f12e60a5c8 Make Index trait example clearer
The example of the `Index` and `IndexMut` trait contained too much `Foo`.
It now contains a bit more `Bar` to make things clearer which parts are
defining the type of the index.
2015-01-17 10:51:07 -05:00
Sebastian Gesemann
c6c14b928f inline forward_xxx_xxx_binop macros as per suggestion 2015-01-16 11:22:46 +01:00
Sebastian Gesemann
39676c8bf0 Fix/update core::ops module documentation w.r.t. operator traits
* Not all traits are part of the prelude anymore
* We switched from pass-by-reference to pass-by-value for most traits
* Add some explanations around pass-by-value traits in the context of
  generic code and additional implementations for reference types.
2015-01-16 08:31:01 +01:00
Sebastian Gesemann
5eb254b1cc libcore: implement many operators for references as well 2015-01-16 05:44:19 +01:00
Simonas Kazlauskas
348d833187 Allow any integral to be used as Shr and Shl RHS
This is only relevant to the code that uses generics such as

    fn magic<T: Shl>(a: T) { a << 10u8; }

Fixes #20288
2015-01-11 15:34:53 +02:00
Nick Cameron
68a783a89f Remove String impls and fix for make tidy 2015-01-08 14:35:53 +13:00
Nick Cameron
e15f043248 Show, String, Eq impls for Ranges 2015-01-08 11:21:04 +13:00
Alex Crichton
a64000820f More test fixes 2015-01-06 21:26:48 -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
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
e921afddd8 Stabilize core::ops
This commit marks as stable those parts of `core::ops` that are in their
final planned form: `Drop`, all of the mathematical operators (`Add`,
`Sub`, etc), `Deref`/`DerefMut`. It leaves the `Index*`, `Slice*` and
`Fn*` traits unstable, as they are still undergoing active changes.
2015-01-05 14:01:05 -08:00
Jorge Aparicio
774588fd9d sed -i -s 's/ for Sized?//g' **/*.rs 2015-01-05 14:56:49 -05:00
bors
612be77c1f Merge pull request #20500 from globin/fix/range-sugar
Fix range sugar

Reviewed-by: nick29581
2015-01-04 21:36:39 +00:00
Robin Gloster
5cc17382d1 fix range sugar 2015-01-04 12:13:21 +01:00
Jorge Aparicio
351409a622 sed -i -s 's/#\[deriving(/#\[derive(/g' **/*.rs 2015-01-03 22:54:18 -05:00
Jorge Aparicio
56dcbd17fd sed -i -s 's/\bmod,/self,/g' **/*.rs 2015-01-03 22:42:21 -05:00
Jorge Aparicio
234dc4d4dd core: use assoc types in Index[Mut] 2015-01-03 16:30:48 -05:00
Jorge Aparicio
7d3c5f020e use assoc types in unop traits 2015-01-03 16:29:22 -05:00
Jorge Aparicio
99017f82b6 use assoc types in binop traits 2015-01-03 16:29:19 -05:00
Jorge Aparicio
41df05dd0e core: use assoc types in Iterator et al 2015-01-03 09:34:04 -05:00