1742 Commits

Author SHA1 Message Date
bors
0dbbab9049 Auto merge of #28156 - nagisa:binaryheap-debug, r=Gankro
r? @Gankro
2015-09-02 06:37:32 +00:00
bors
dfe9326941 Auto merge of #28148 - eefriedman:binary_heap, r=alexcrichton 2015-09-02 01:33:20 +00:00
bors
40c00e9c06 Auto merge of #28146 - eefriedman:deque_extras, r=alexcrichton 2015-09-01 22:07:59 +00:00
Simonas Kazlauskas
8db906c752 Implement Debug for BinaryHeap
Fixes #28154
2015-09-01 20:27:48 +03:00
Eli Friedman
b82c42c153 Add missing stability markings to BinaryHeap. 2015-09-01 01:22:57 -07:00
Eli Friedman
b637a86c4a Add missing stability attributes to VecDeque. 2015-08-31 23:43:12 -07:00
Andrew Paseltiner
15322adf3e hide docs for private collections::btree::Recover trait
closes #28093
2015-08-31 07:01:07 -04:00
bors
d50352419e Auto merge of #28043 - apasel422:rfc-1194, r=alexcrichton 2015-08-29 00:06:04 +00:00
Andrew Paseltiner
f6cfad6848 re-export debug builders in std::fmt 2015-08-28 13:39:25 -04:00
Andrew Paseltiner
f9b63d3973 implement RFC 1194 2015-08-28 12:41:54 -04:00
bors
3a80411415 Auto merge of #28038 - durka:grep-unstable-issue-refs, r=alexcrichton
After submitting #28031, I ran a [script](https://gist.github.com/durka/a5243440697c780f669b) on the rest of src/ and found some anomalies. In this PR are the fixes that I thought were obvious (but I might be wrong!). The others I've submitted in issue #28037.
2015-08-28 02:49:45 +00:00
bors
20a8412e09 Auto merge of #27956 - withoutboats:extend_string, r=alexcrichton
If you have an `Iterator<Item=String>` (say because those items were generated using `.to_string()` or similarly), borrow semantics do not permit you map that to an `Iterator<&'a str>`. These two implementations close a small gap in the `String` API.

At the same time I've also made the names of the parameters to `String`'s `Extend` and `FromIterator` implementations consistent.
2015-08-28 01:06:51 +00:00
Alex Burka
595fda0de7 fix some more unstable issue annotations 2015-08-27 12:48:35 -04:00
Without Boats
8af543af5d Implemented Extend<String> and FromIterator<String> for String. 2015-08-27 08:47:08 -07:00
bors
d6a65cd3fe Auto merge of #27975 - sfackler:iter-order-methods, r=aturon
This does cause some breakage due to deficiencies in resolve -
`path::Components` is both an `Iterator` and implements `Eq`, `Ord`,
etc. If one calls e.g. `partial_cmp` on a `Components` and passes a
`&Components` intending to target the `PartialOrd` impl, the compiler
will select the `partial_cmp` from `Iterator` and then error out. I
doubt anyone will run into breakage from `Components` specifically, but
we should see if there are third party types that will run into issues.

`iter::order::equals` wasn't moved to `Iterator` since it's exactly the
same as `iter::order::eq` but with an `Eq` instead of `PartialEq` bound,
which doensn't seem very useful.

I also updated `le`, `gt`, etc to use `partial_cmp` which lets us drop
the extra `PartialEq` bound.

cc #27737 

r? @alexcrichton
2015-08-27 07:13:02 +00:00
Steven Fackler
651c42f11f Make iter::order functions into methods on Iterator
This does cause some breakage due to deficiencies in resolve -
`path::Components` is both an `Iterator` and implements `Eq`, `Ord`,
etc. If one calls e.g. `partial_cmp` on a `Components` and passes a
`&Components` intending to target the `PartialOrd` impl, the compiler
will select the `partial_cmp` from `Iterator` and then error out. I
doubt anyone will run into breakage from `Components` specifically, but
we should see if there are third party types that will run into issues.

`iter::order::equals` wasn't moved to `Iterator` since it's exactly the
same as `iter::order::eq` but with an `Eq` instead of `PartialEq` bound,
which doensn't seem very useful.

I also updated `le`, `gt`, etc to use `partial_cmp` which lets us drop
the extra `PartialEq` bound.

cc #27737
2015-08-26 23:23:57 -07:00
bors
fd302a95e1 Auto merge of #27808 - SimonSapin:utf16decoder, r=alexcrichton
* Rename `Utf16Items` to `Utf16Decoder`. "Items" is meaningless.
* Generalize it to any `u16` iterator, not just `[u16].iter()`
* Make it yield `Result` instead of a custom `Utf16Item` enum that was isomorphic to `Result`. This enable using the `FromIterator for Result` impl.
* Replace `Utf16Item::to_char_lossy` with a `Utf16Decoder::lossy` iterator adaptor.

This is a [breaking change], but only for users of the unstable `rustc_unicode` crate.

I’d like this functionality to be stabilized and re-exported in `std` eventually, as the "low-level equivalent" of `String::from_utf16` and `String::from_utf16_lossy` like #27784 is the low-level equivalent of #27714.

CC @aturon, @alexcrichton
2015-08-27 00:41:13 +00:00
Chris Morgan
81c1d142d3 Simplify String’s Extend<&str> implementation
Reserving lower_bound bytes was just silly. It’d be perfectly reasonable
to have empty strings in the iterator, which could cause superfluous
reallocation of the string, or to have more than one byte per string,
which could cause additional reallocation (in practice it’ll balance
out). The added complexity of this logic is simply pointless, adding
a little bloat with no demonstrable advantage and slight disadvantage.
2015-08-25 07:47:42 +10:00
Simon Sapin
6174b8d726 Refactor low-level UTF-16 decoding.
* Rename `utf16_items` to `decode_utf16`. "Items" is meaningless.
* Move it to `rustc_unicode::char`, exposed in `std::char`.
* Generalize it to any `u16` iterable, not just `&[u16]`.
* Make it yield `Result` instead of a custom `Utf16Item` enum that was isomorphic to `Result`. This enable using the `FromIterator for Result` impl.
* Add a `REPLACEMENT_CHARACTER` constant.
* Document how `result.unwrap_or(REPLACEMENT_CHARACTER)` replaces `Utf16Item::to_char_lossy`.
2015-08-23 00:28:56 +02:00
Simon Sapin
c408b78633 Move the Borrow and BorrowMut traits to libcore. 2015-08-22 13:58:39 +02:00
bors
e9b74a9017 Auto merge of #27860 - m4rw3r:rustdoc_unstable_feature_issue, r=alexcrichton
Implemented #27759 

Example:

![screen shot 2015-08-16 at 21 45 17](https://cloud.githubusercontent.com/assets/108100/9295040/1fb24d50-4460-11e5-8ab8-81ac5330974a.png)
2015-08-22 08:16:53 +00:00
bors
1d72d31448 Auto merge of #27891 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #27881, #27882, #27883, #27884, #27888
- Failed merges:
2015-08-18 20:13:44 +00:00
bors
6c11e4a48e Auto merge of #27624 - apasel422:issue-27620, r=Gankro
Closes #27620.
2015-08-18 18:41:17 +00:00
jotomicron
6f6ea4687e Fixed example in documentation
Added the cost of the edge 3 -> 4 on the example in the module documentation
2015-08-18 15:58:05 +01:00
Martin Wernstål
7fdbe69996 rustdoc: Added issue_tracker_base_url annotations to crates 2015-08-16 22:15:26 +02:00
Alex Crichton
377c11aa83 collections: Add issues for unstable features 2015-08-15 18:09:17 -07:00
bors
e2bebf32fa Auto merge of #27696 - bluss:into-boxed-str, r=alexcrichton
Rename String::into_boxed_slice -> into_boxed_str

This is the name that was decided in rust-lang/rfcs#1152, and it's
better if we say “boxed str” for `Box<str>`.

The old name `String::into_boxed_slice` is deprecated.
2015-08-14 01:06:37 +00:00
Ulrik Sverdrup
bec64090a7 Rename String::into_boxed_slice -> into_boxed_str
This is the name that was decided in rust-lang/rfcs#1152, and it's
better if we say “boxed str” for `Box<str>`.

The old name `String::into_boxed_slice` is deprecated.
2015-08-13 14:02:00 +02:00
Alex Crichton
8d90d3f368 Remove all unstable deprecated functionality
This commit removes all unstable and deprecated functions in the standard
library. A release was recently cut (1.3) which makes this a good time for some
spring cleaning of the deprecated functions.
2015-08-12 14:55:17 -07:00
Alex Crichton
837ae4f3d4 rollup merge of #27678: alexcrichton/snapshots
* Lots of core prelude imports removed
* Makefile support for MSVC env vars and Rust crates removed
* Makefile support for morestack removed
2015-08-11 22:42:22 -07:00
Alex Crichton
737397c584 rollup merge of #27622: eefriedman/https-url
Also fixes a few outdated links.
2015-08-11 22:11:25 -07:00
Alex Crichton
938099a7eb Register new snapshots
* Lots of core prelude imports removed
* Makefile support for MSVC env vars and Rust crates removed
* Makefile support for morestack removed
2015-08-11 15:11:13 -07:00
Andrew Paseltiner
28d5d2fad0 Remove transmute from btree::node::Node::as_slices_internal_mut
Closes #27620.
2015-08-10 17:30:35 -04:00
Eli Friedman
bbbfed2f93 Use https URLs to refer to rust-lang.org where appropriate.
Also fixes a few outdated links.
2015-08-09 14:28:46 -07:00
Tobias Bucher
587a32b61b Change TODO to FIXME 2015-08-09 22:05:23 +02:00
Tobias Bucher
5309fbb6c9 Make str::as_bytes_mut private 2015-08-09 22:05:22 +02:00
Tobias Bucher
47041fe289 Make slice::transmute* private 2015-08-09 22:05:22 +02:00
Tobias Bucher
22ec5f4af7 Replace many uses of mem::transmute with more specific functions
The replacements are functions that usually use a single `mem::transmute` in
their body and restrict input and output via more concrete types than `T` and
`U`. Worth noting are the `transmute` functions for slices and the `from_utf8*`
family for mutable slices. Additionally, `mem::transmute` was often used for
casting raw pointers, when you can already cast raw pointers just fine with
`as`.
2015-08-09 22:05:22 +02:00
bors
4278b5f03b Auto merge of #27545 - apasel422:btree-range, r=Gankro
This permits collections with `String` keys to be ranged over with
`&str` bounds. The `K` defaults for `Min` and `Max` permit the default
type parameter fallback to work with things like

```rust
use std::collections::{BTreeSet, Bound};
let set = BTreeSet::<String>::new();
set.range(Bound::Included("a"), Bound::Unbounded);
```

Without the defaults, the type of the maximum bound would be
unconstrained.

r? @Gankro
2015-08-06 03:40:42 +00:00
Andrew Paseltiner
4fdeb353ce Fully generalize BTree{Map, Set} range iterators
This permits collections with `String` keys to be ranged over with
`&str` bounds. The `K` defaults for `Min` and `Max` permit the default
type parameter fallback to work with things like

```rust
use std::collections::{BTreeSet, Bound};
let set = BTreeSet::<String>::new();
set.range(Bound::Included("a"), Bound::Unbounded);
```

Without the defaults, the type of the maximum bound would be
unconstrained.
2015-08-05 16:06:12 -04:00
Steve Klabnik
4a68a7e198 Make note of Hash in Borrow's docs
This should be a bit more prominent.

Fixes #27109
2015-08-05 12:32:35 -04:00
Alex Crichton
5cccf3cd25 syntax: Implement #![no_core]
This commit is an implementation of [RFC 1184][rfc] which tweaks the behavior of
the `#![no_std]` attribute and adds a new `#![no_core]` attribute. The
`#![no_std]` attribute now injects `extern crate core` at the top of the crate
as well as the libcore prelude into all modules (in the same manner as the
standard library's prelude). The `#![no_core]` attribute disables both std and
core injection.

[rfc]: https://github.com/rust-lang/rfcs/pull/1184
2015-08-03 17:23:01 -07:00
bors
0bc993c75b Auto merge of #26734 - Gankro:deprecate-vecmap, r=alexcrichton
VecMap doesn't really fit with the current standard library's strategy (small!).

I've mirrored the code to https://github.com/contain-rs/vec-map

but @GBGamer has already claimed the name on crates.io a couple months ago for the same purpose. It hasn't been updated since, though.

CC @rust-lang/libs
2015-07-30 02:41:14 +00:00
Alexis Beingessner
2907611025 deprecate vecmap 2015-07-29 15:50:38 -07:00
Manish Goregaokar
c9a34d2092 Rollup merge of #27352 - nagisa:illegal-to-invalid-docs, r=steveklabnik
r? @steveklabnik
2015-07-30 01:43:53 +05:30
bors
ddbce1107b Auto merge of #27380 - steveklabnik:rollup, r=steveklabnik
- Successful merges: #27102, #27286, #27313, #27325, #27326, #27327, #27341, #27342, #27343, #27345, #27350, #27355, #27374, #27375, #27379
- Failed merges:
2015-07-29 14:47:23 +00:00
Steve Klabnik
d1f5199d95 Rollup merge of #27375 - niconii:vec-docs, r=Gankro
Noticed that syntax like `vec![0; 5]` is never mentioned in `Vec<T>`'s docs, nor used in any of its methods' docs, so I figured I should add a mention of it. Also noticed `vec!(1, 2)` being used in one spot while I was at it, so I fixed that as well for consistency's sake.

r? @steveklabnik
2015-07-29 10:30:36 -04:00
Steve Klabnik
a368adf8e5 Rollup merge of #27326 - steveklabnik:doc_show_use, r=Gankro
In spirit with https://internals.rust-lang.org/t/should-we-keep-including-obvious-imports-in-code-examples/2217, show the feature flags we're using in examples.

(also one instance of 'use')
2015-07-29 10:30:34 -04:00
Steve Klabnik
e6ed27bc24 Rollup merge of #27102 - tshepang:better-examples, r=aturon 2015-07-29 10:30:33 -04:00
Nicolette Verlinden
fe33e58137 Make docs for Vec::push() use vec! with square brackets 2015-07-28 23:55:12 -05:00