diff options
| author | Pietro Albini <pietro@pietroalbini.org> | 2018-07-03 11:31:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-03 11:31:00 +0200 |
| commit | 451560e96c165bde1e76f727221b4499a8822e03 (patch) | |
| tree | e27a91937813ce9672c2d58325f22bc48ba39f91 | |
| parent | a3fc979b6bf29edf02fe7f9930ca99c8e2d5d84c (diff) | |
| parent | 59f2edbf1adfea256216cb7fb65d291d324ea857 (diff) | |
| download | rust-451560e96c165bde1e76f727221b4499a8822e03.tar.gz rust-451560e96c165bde1e76f727221b4499a8822e03.zip | |
Rollup merge of #51914 - nikomatsakis:nll-fix-issue-issue-btreemap-annotations, r=gankro
add outlives annotations to `BTreeMap` NLL requires these annotations, I believe because of <https://github.com/rust-lang/rust/issues/29149>. Fixes #48224 r? @Gankro cc @lqd
| -rw-r--r-- | src/liballoc/collections/btree/map.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/liballoc/collections/btree/map.rs b/src/liballoc/collections/btree/map.rs index 2aad3149bb2..8c950cd06d9 100644 --- a/src/liballoc/collections/btree/map.rs +++ b/src/liballoc/collections/btree/map.rs @@ -149,12 +149,11 @@ unsafe impl<#[may_dangle] K, #[may_dangle] V> Drop for BTreeMap<K, V> { #[stable(feature = "rust1", since = "1.0.0")] impl<K: Clone, V: Clone> Clone for BTreeMap<K, V> { fn clone(&self) -> BTreeMap<K, V> { - fn clone_subtree<K: Clone, V: Clone>(node: node::NodeRef<marker::Immut, - K, - V, - marker::LeafOrInternal>) - -> BTreeMap<K, V> { - + fn clone_subtree<'a, K: Clone, V: Clone>( + node: node::NodeRef<marker::Immut<'a>, K, V, marker::LeafOrInternal> + ) -> BTreeMap<K, V> + where K: 'a, V: 'a, + { match node.force() { Leaf(leaf) => { let mut out_tree = BTreeMap { @@ -1080,7 +1079,11 @@ impl<K: Ord, V> BTreeMap<K, V> { /// Calculates the number of elements if it is incorrect. fn recalc_length(&mut self) { - fn dfs<K, V>(node: NodeRef<marker::Immut, K, V, marker::LeafOrInternal>) -> usize { + fn dfs<'a, K, V>( + node: NodeRef<marker::Immut<'a>, K, V, marker::LeafOrInternal> + ) -> usize + where K: 'a, V: 'a + { let mut res = node.len(); if let Internal(node) = node.force() { |
