Commit graph

82 commits

Author SHA1 Message Date
steveklabnik
086627ecd2 Fix links
part of https://github.com/rust-lang/rust/issues/40912

[]\n() is not actually a link.
2017-04-04 15:39:44 -04:00
Oliver Schneider
eb447f4ef4
Fix various useless derefs and slicings 2017-03-27 08:58:00 +02:00
Aaron Turon
a8f4a1bd98 Stabilize rc_raw feature, closes #37197 2017-03-17 13:28:53 -07:00
Guillaume Gomez
0cc2448e05 Replace PlaceBack Debug implementation with derive 2017-02-05 09:46:15 +01:00
Guillaume Gomez
ba841f056e Remove Debug implementations specialization 2017-01-20 21:48:35 +01:00
Guillaume Gomez
61fbdbba41 Add Debug implementations for libcollection structs 2017-01-20 21:48:35 +01:00
Andrew Paseltiner
ca9b07bbc9
Replace uses of #[unsafe_destructor_blind_to_params] with #[may_dangle]
CC #34761
2016-12-28 17:47:10 -05:00
Steve Klabnik
d15a47749a Rollup merge of #38297 - matklad:linked-lists-are-not-cool, r=GuillaumeGomez
Advertise Vec in LinkedList docs

r? @steveklabnik

Hi! We already [advise](https://doc.rust-lang.org/std/collections/#use-a-linkedlist-when) to use `Vec` instead of `LinkedList` in the top-level collections documentation. But I think it may be missed by someone who just directly finds `LinkedList`.

What do you feel about advertising `Vec` directly in `LinkedList` docs as well?
2016-12-24 14:29:21 -05:00
Srinivas Reddy Thatiparthy
6414e67dba
run rustfmt on libcollections folder 2016-12-20 09:54:00 +05:30
Aleksey Kladov
71de148649 Advertise Vec in LinkedList docs 2016-12-16 10:47:38 +03:00
Brian Anderson
9c4a01ee9e Ignore lots and lots of std tests on emscripten 2016-09-30 14:02:48 -07:00
athulappadan
49e77dbf25 Documentation of what does for each type 2016-09-11 17:00:09 +05:30
Jeffrey Seyfried
a9a2979dba Remove needless imports in libcollections. 2016-08-24 22:13:13 +00:00
bors
0bd99f9d5c Auto merge of #35656 - Stebalien:fused, r=alexcrichton
Implement 1581 (FusedIterator)

* [ ] Implement on patterns. See https://github.com/rust-lang/rust/issues/27721#issuecomment-239638642.
* [ ] Handle OS Iterators. A bunch of iterators (`Args`, `Env`, etc.) in libstd wrap platform specific iterators. The current ones all appear to be well-behaved but can we assume that future ones will be?
* [ ] Does someone want to audit this? On first glance, all of the iterators on which I implemented `FusedIterator` appear to be well-behaved but there are a *lot* of them so a second pair of eyes would be nice.
* I haven't touched rustc internal iterators (or the internal rand) because rustc doesn't actually call `fuse()`.
* `FusedIterator` can't be implemented on `std::io::{Bytes, Chars}`.

Closes: #35602 (Tracking Issue)
Implements: rust-lang/rfcs#1581
2016-08-23 07:46:52 -07:00
Alex Crichton
afeeadeae5 std: Stabilize APIs for the 1.12 release
Stabilized

* `Cell::as_ptr`
* `RefCell::as_ptr`
* `IpAddr::is_{unspecified,loopback,multicast}`
* `Ipv6Addr::octets`
* `LinkedList::contains`
* `VecDeque::contains`
* `ExitStatusExt::from_raw` - both on Unix and Windows
* `Receiver::recv_timeout`
* `RecvTimeoutError`
* `BinaryHeap::peek_mut`
* `PeekMut`
* `iter::Product`
* `iter::Sum`
* `OccupiedEntry::remove_entry`
* `VacantEntry::into_key`

Deprecated

* `Cell::as_unsafe_cell`
* `RefCell::as_unsafe_cell`
* `OccupiedEntry::remove_pair`

Closes #27708
cc #27709
Closes #32313
Closes #32630
Closes #32713
Closes #34029
Closes #34392
Closes #34285
Closes #34529
2016-08-19 11:59:56 -07:00
Steven Allen
de91872a33 Add a FusedIterator trait.
This trait can be used to avoid the overhead of a fuse wrapper when an iterator
is already well-behaved.

Conforming to: RFC 1581
Closes: #35602
2016-08-18 12:16:29 -04:00
Corey Farwell
f459e801fd Rewrite collections::LinkedList::append doc example. 2016-07-28 22:09:31 -04:00
Guillaume Gomez
0c9a6f65d0 Add examples for LinkedList 2016-07-17 03:19:27 +02:00
Andrew Paseltiner
6d3bf6e6f5 Replace LinkedList's use of Box with Shared
Closes #34417
2016-07-01 22:28:36 -04:00
bors
133f60f820 Auto merge of #32951 - LukasKalbertodt:collection_contains_rfc1552, r=brson
Add `contains` to `VecDeque` and `LinkedList` (+ tests)

This implements [RFC 1552](https://github.com/rust-lang/rfcs/blob/master/text/1552-contains-method-for-various-collections.md). Tracking issue: #32630

Sorry for the late response. This is my first contribution, so please tell me if anything isn't optimal!
2016-04-20 04:58:44 -07:00
Lukas Kalbertodt
bf3aefeba0 Add contains to VecDeque and LinkedList (+ tests) 2016-04-14 16:07:53 +02:00
Andrew Paseltiner
cf37af1627
Specialize Extend to append for {LinkedList, Vec} 2016-04-14 07:12:45 -04:00
Steve Klabnik
f2c6b51dc0 Rollup merge of #32177 - srinivasreddy:remove_integer_suffixes, r=steveklabnik
first round of removal of integer suffixes
2016-03-28 13:48:28 -04:00
Alex Crichton
b53764c73b std: Clean out deprecated APIs
Removes all unstable and deprecated APIs prior to the 1.8 release. All APIs that
are deprecated in the 1.8 release are sticking around for the rest of this
cycle.

Some notable changes are:

* The `dynamic_lib` module was moved into `rustc_back` as the compiler still
  relies on a few bits and pieces.
* The `DebugTuple` formatter now special-cases an empty struct name with only
  one field to append a trailing comma.
2016-03-12 12:31:13 -08:00
srinivasreddy
91a42bedcf removed integer suffixes in libcollections and libcollectionstest 2016-03-11 22:10:02 +05:30
Andrew Paseltiner
895ab4f317 Implement placement-in protocol for LinkedList
CC #30172.
2016-02-16 20:36:11 -05:00
Andrew Paseltiner
27319b48eb Correct linked_list::IntoIter doc comment 2016-02-02 16:45:35 -05:00
Andrew Paseltiner
c9fd3d4f91 Make LinkedList and its read-only iterators covariant
CC #30642
2015-12-31 15:22:22 -05:00
Nick Cameron
0dfd875b6e rustfmt libcollections 2015-11-24 11:53:47 +13:00
Vadim Petrochenkov
7e2ffc7090 Add missing annotations and some tests 2015-11-18 01:24:21 +03:00
Vadim Petrochenkov
2ef07f0519 Remove stability annotations from trait impl items
Remove `stable` stability annotations from inherent impls
2015-11-06 00:13:46 +03:00
Felix S. Klock II
d778e57bf6 Add RFC 1238's unsafe_destructor_blind_to_params (UGEH) where needed.
I needed it in `RawVec`, `Vec`, and `TypedArena` for `rustc` to
bootstrap; but of course that alone was not sufficient for `make
check`.

Later I added `unsafe_destructor_blind_to_params` to collections, in
particular `LinkedList` and `RawTable` (the backing representation for
`HashMap` and `HashSet`), to get the regression tests exercising
cyclic structure from PR #27185 building.

----

Note that the feature is `dropck_parametricity` (which is not the same
as the attribute's name). We will almost certainly vary our strategy
here in the future, so it makes some sense to have a not-as-ugly name
for the feature gate. (The attribute name was deliberately selected to
be ugly looking.)
2015-10-06 14:16:49 +02: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
Alex Crichton
377c11aa83 collections: Add issues for unstable features 2015-08-15 18:09:17 -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
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
Steve Klabnik
ba5fcb726f Show appropriate feature flags in docs 2015-07-27 12:28:13 -04:00
Alex Crichton
ce1a965cf5 Fallout in tests and docs from feature renamings 2015-06-17 09:07:16 -07:00
Alex Crichton
d444d0c357 collections: Split the collections feature
This commit also deprecates the `as_string` and `as_slice` free functions in the
`string` and `vec` modules.
2015-06-17 09:06:59 -07:00
Joshua Landau
ca7418b846 Removed many pointless calls to *iter() and iter_mut() 2015-06-10 21:14:03 +01:00
bors
4a397dd33d Auto merge of #25989 - jooert:implement_rfc839, r=Gankro
I had to use `impl<'a, V: Copy> Extend<(usize, &'a V)> for VecMap<V>` instead of `impl<'a, V: Copy> Extend<(&'a usize, &'a V)> for VecMap<V>` as that's what is needed for doing

```rust
let mut a = VecMap::new();
let b = VecMap::new();
b.insert(1, "foo");

a.extend(&b)
```

I can squash the commits after review.

r? @Gankro
2015-06-08 16:09:56 +00:00
Johannes Oertel
b36ed7d2ed Implement RFC 839
Closes #25976.
2015-06-08 12:05:33 +02:00
Ulrik Sverdrup
32037a5696 linked_list: Add Rawlink::from 2015-06-06 20:05:39 +02:00
Ulrik Sverdrup
16cefab795 linked_list: Add method Node::set_next 2015-06-06 20:05:39 +02:00
Ulrik Sverdrup
201852e56a linked_list: Cleanup code in split_off 2015-06-06 20:05:38 +02:00
Ulrik Sverdrup
289d5db409 linked_list: Use unsafe properly for Rawlink methods 2015-06-06 14:26:39 +02:00
Ulrik Sverdrup
a090e1f411 linked_list: Use a safe loop in Drop 2015-06-06 14:26:39 +02:00
Alexis Beingessner
e12d3869e3 properly null out ptr in LinkedList::split_off - fixes #26020 2015-06-04 18:01:27 -07:00
bors
80d08a37b6 Auto merge of #25991 - Jexell:master, r=alexcrichton
Removed an unnecessary `transmute` and replaced some code with an equivalent method.
2015-06-04 06:08:42 +00:00
Jexell
7972a000e3 Update linked_list.rs
Removed an unnecessary `transmute` and replaced some code with an equivalent method.
2015-06-03 16:14:35 +01:00