Stein Somers
3965524570
BTreeMap: introduce edge methods similar to those of keys and values
2020-09-25 11:29:38 +02:00
Stein Somers
1e64d98761
BTreeMap: refactor correct_childrens_parent_links
2020-09-25 11:29:38 +02:00
Jonas Schievink
dc4f39c43f
Rollup merge of #77079 - poliorcetics:more-self-in-docs, r=jyn514
...
Use `Self` in docs when possible
Fixes #76542 .
I used `rg '\s*//[!/]\s+fn [\w_]+\(&?self, ' .` in `library/` to find instances, I found some with that and some by manually checking.
@rustbot modify labels: C-enhancement T-doc
2020-09-25 02:29:42 +02:00
Jonas Schievink
862faea4be
Rollup merge of #77050 - follower:patch-1, r=oli-obk
...
Typo fix: "satsify" -> "satisfy"
2020-09-25 02:29:37 +02:00
Jonas Schievink
67bcf04bdb
Rollup merge of #77044 - pickfire:patch-4, r=jyn514
...
Liballoc bench vec use mem take not replace
2020-09-25 02:29:35 +02:00
Dylan DPC
b76343643d
Rollup merge of #77017 - GuillaumeGomez:vec-missing-examples-iter, r=Dylan-DPC
...
Add missing examples on Vec iter types
r? @Dylan-DPC
2020-09-23 14:54:10 +02:00
Dylan DPC
a40d79c9fb
Rollup merge of #76993 - blitzerr:alloc-ref, r=Amanieu
...
Changing the alloc() to accept &self instead of &mut self
Fixes: [#55 ](https://github.com/rust-lang/wg-allocators/issues/55 )
This is the first cut. It only makes the change for `alloc` method.
2020-09-23 14:54:06 +02:00
blitzerr
2b19b14cec
a few more &mut self -> self changes
2020-09-22 21:04:31 -07:00
Alexis Bourget
ec4e9cd12a
Use Self in alloc
2020-09-23 00:31:37 +02:00
Dylan MacKenzie
110e59e70e
Update library functions with stability attributes
...
This may not be strictly minimal, but all unstable functions also need a
`rustc_const_unstable` attribute.
2020-09-22 10:05:58 -07:00
blitzerr
3ffd403c6b
removing &mut self for other methods of AllocRef
2020-09-22 06:22:02 -07:00
Guillaume Gomez
143557ec56
Add missing examples on Vec iter types
2020-09-22 13:47:06 +02:00
follower
0082d201f1
Typo fix: "satsify" -> "satisfy"
2020-09-22 20:54:07 +12:00
Ivan Tham
4a6bc77a01
Liballoc bench vec use mem take not replace
2020-09-22 14:26:15 +08:00
ecstatic-morse
11f7bfab91
Rollup merge of #72734 - pickfire:liballoc, r=KodrAus
...
Reduce duplicate in liballoc reserve error handling
Not sure if it affects compilation time.
2020-09-21 20:40:37 -07:00
blitzerr
219003bd2e
replaced cell::update with cell::[g|s]et
2020-09-21 16:55:07 -07:00
blitzerr
7e443a1ffc
Added feature flag to use cell_update
2020-09-21 16:43:36 -07:00
blitzerr
d9d02fa168
Changing the alloc() to accept &self instead of &mut self
2020-09-21 16:43:36 -07:00
Alexis Bourget
f6a4189d05
Move vec-cycle-wrapped test
2020-09-21 21:50:27 +02:00
Alexis Bourget
6bc0357dad
Move vec-cycle test
2020-09-21 21:50:27 +02:00
Alexis Bourget
ed52c7bb75
Move deref-lval test
2020-09-21 21:50:26 +02:00
Alexis Bourget
949c96660c
move format! interface tests
2020-09-21 21:50:26 +02:00
Ralf Jung
4547ebb3fb
Rollup merge of #76983 - ssomers:btree_extra_test, r=Mark-Simulacrum
...
BTreeMap: extra testing & fixed comments
r? @Mark-Simulacrum
2020-09-21 15:30:46 +02:00
Ralf Jung
4b362bbbb6
Rollup merge of #76981 - pickfire:patch-5, r=Mark-Simulacrum
...
liballoc bench use imported path Bencher
test is already in scope, no need to use the full path
2020-09-21 15:30:44 +02:00
bors
a409a233e0
Auto merge of #75974 - SkiFire13:peekmut-opt-sift, r=LukasKalbertodt
...
Avoid useless sift_down when std::collections::binary_heap::PeekMut is never mutably dereferenced
If `deref_mut` is never called then it's not possible for the element to be mutated without internal mutability, meaning there's no need to call `sift_down`.
This could be a little improvement in cases where you want to mutate the biggest element of the heap only if it satisfies a certain predicate that needs only read access to the element.
2020-09-21 05:31:01 +00:00
Stein Somers
37ec045850
BTreeMap: extra testing unveiling mistakes in future PR
2020-09-20 20:07:05 +02:00
Ivan Tham
d99bb9d31c
liballoc bench use imported path Bencher
...
test is already in scope, no need to use the full path
2020-09-21 00:46:40 +08:00
Ralf Jung
0a4eb2c31d
Rollup merge of #76926 - ssomers:btree_cleanup_1, r=Mark-Simulacrum
...
BTreeMap: code readability tweaks
Gathered over the past months
r? @Mark-Simulacrum
2020-09-20 15:52:07 +02:00
Ralf Jung
ad9ea71e7f
Rollup merge of #76877 - denisvasilik:intra-doc-links-alloc-vec-deque, r=jyn514
...
Move to intra-doc links in collections/vec_deque.rs and collections/vec_deque/drain.rs
Helps with #75080 .
@rustbot modify labels: T-doc, A-intra-doc-links
2020-09-20 15:51:54 +02:00
Ralf Jung
39412011a1
Rollup merge of #76876 - denisvasilik:intra-doc-links-alloc, r=jyn514
...
Move to intra-doc links in collections/btree/map.rs and collections/linked_list.rs
Helps with #75080 .
@rustbot modify labels: T-doc, A-intra-doc-links
2020-09-20 15:51:53 +02:00
Ralf Jung
61a754832e
Rollup merge of #76875 - denisvasilik:intra-doc-links-alloc-binary-heap, r=jyn514
...
Move to intra-doc links in library/alloc/src/collections/binary_heap.rs
Helps with #75080 .
@rustbot modify labels: T-doc, A-intra-doc-links
2020-09-20 15:51:51 +02:00
Ralf Jung
bea0ae700e
Rollup merge of #76866 - est31:master, r=lcnr
...
Remove unused feature gates from library/ crates
Removes some unused feature gates from library crates. It's likely not a complete list as I only tested a subset for which it's more likely that it is unused.
2020-09-20 15:51:50 +02:00
Ralf Jung
f5e19a355a
Rollup merge of #76722 - ssomers:btree_send_sync, r=Mark-Simulacrum
...
Test and fix Send and Sync traits of BTreeMap artefacts
Fixes #76686 .
I'm not quite sure what all this implies. E.g. comparing with the definitions for `NodeRef` in node.rs, maybe an extra bound `T: 'a` is useful for something. The test compiles on stable/beta (apart from `drain_filter`) so I bet `Sync` is equally desirable.
r? @Mark-Simulacrum
2020-09-20 12:08:12 +02:00
est31
562422ecf7
Remove some unused features from alloc core and std
2020-09-20 04:29:11 +02:00
Giacomo Stevanato
ca15e9d8a1
Fix time complexity in BinaryHeap::peek_mut docs
2020-09-20 01:12:02 +02:00
Giacomo Stevanato
af1e3633f7
Set sift=true only when PeekMut yields a mutable reference
2020-09-20 01:12:02 +02:00
Giacomo Stevanato
924cd135b6
Added benchmarks for BinaryHeap
2020-09-20 01:12:02 +02:00
Denis Vasilik
f9fa649545
Use intra-doc links
2020-09-19 23:30:52 +02:00
bors
f68e08933d
Auto merge of #76929 - ssomers:btree_cleanup_2, r=Mark-Simulacrum
...
BTreeMap: wrap node's raw parent pointer in NonNull
Now that the other `*const` (root) is gone, seemed like a small step forward.
r? `@Mark-Simulacrum`
2020-09-19 19:15:06 +00:00
Stein Somers
0661b0a36d
BTreeMap: wrap node's raw parent pointer in NonNull
2020-09-19 19:02:42 +02:00
Stein Somers
c6a8cfbde8
BTreeMap: code readability tweaks
2020-09-19 17:08:43 +02:00
Ralf Jung
46bb884cf3
Rollup merge of #76525 - fusion-engineering-forks:string-drain, r=dtolnay
...
Add as_str() to string::Drain.
Vec's Drain recently [had its `.as_slice()` stabilized](https://github.com/rust-lang/rust/pull/72584 ), but String's Drain was still missing the analogous `.as_str()`. This adds that.
Also improves the Debug implementation, which now shows the remaining data instead of just `"Drain { .. }"`.
2020-09-19 11:47:47 +02:00
Ralf Jung
fef3324043
Rollup merge of #76492 - fusion-engineering-forks:int-bits, r=dtolnay
...
Add associated constant `BITS` to all integer types
Recently I've regularly come across this snippet (in a few different crates, including `core` and `std`):
```rust
std::mem::size_of<usize>() * 8
```
I think it's time for a `usize::BITS`.
2020-09-19 11:47:45 +02:00
Ralf Jung
67fa7b78a4
Rollup merge of #76400 - pickfire:patch-5, r=dtolnay
...
Clean up vec benches bench_in_place style
2020-09-19 11:47:41 +02:00
Ralf Jung
bac2f39350
Rollup merge of #76310 - scottmcm:array-try_from-vec, r=dtolnay
...
Add `[T; N]: TryFrom<Vec<T>>` (insta-stable)
This is very similar to the [existing](https://doc.rust-lang.org/nightly/std/convert/trait.TryFrom.html#impl-TryFrom%3CBox%3C%5BT%5D%3E%3E ) `Box<[T; N]>: TryFrom<Box<[T]>>`, but allows avoiding the `shrink_to_fit` if you have a vector and not a boxed slice.
Like the slice equivalents of this, it fails if the length of the vector is not exactly `N`.
This uses `Vec<T>` as the `Error` type to return the input, like how the `Rc<[T]> -> Rc<[T; N]>` (and Arc) ones also reflect the input directly in the error type.
```rust
#[stable(feature = "array_try_from_vec", since = "1.47.0")]
impl<T, const N: usize> TryFrom<Vec<T>> for [T; N] {
type Error = Vec<T>;
fn try_from(mut vec: Vec<T>) -> Result<[T; N], Vec<T>>;
}
```
Inspired by this zulip thread: https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/APIs.20for.20getting.20stuff.20from.20a.20Vec.20by.20owned/near/209048103
2020-09-19 11:47:39 +02:00
Mara Bos
15eb638dc9
Add tracking issue number for string_drain_as_str.
2020-09-19 08:23:23 +02:00
Mara Bos
1e2dba1e7c
Use T::BITS
instead of size_of::<T> * 8
.
2020-09-19 06:54:42 +02:00
Denis Vasilik
719c40cb5a
Update library/alloc/src/collections/binary_heap.rs
...
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-09-18 16:45:44 +02:00
Denis Vasilik
62e0ee1ba0
Update library/alloc/src/collections/binary_heap.rs
...
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-09-18 16:45:35 +02:00
Denis Vasilik
ec7225feac
Update library/alloc/src/collections/binary_heap.rs
...
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-09-18 16:45:23 +02:00