Skip to content

Commit a4bc197

Browse files
authored
Merge pull request #65 from apasel422/update
Update
2 parents ba8a195 + 5b9ed73 commit a4bc197

File tree

2 files changed

+11
-20
lines changed

2 files changed

+11
-20
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ matrix:
66
env: FEATURES="serde_impl"
77
- rust: nightly
88
env: FEATURES="serde_impl nightly clippy"
9+
- rust: stable
910
script:
1011
- cargo build --features "$FEATURES"
1112
- cargo test --features "$FEATURES"

src/lib.rs

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -563,12 +563,8 @@ impl<K: Hash + Eq, V, S: BuildHasher> LinkedHashMap<K, V, S> {
563563
/// assert_eq!(&'b', keys.next().unwrap());
564564
/// assert_eq!(None, keys.next());
565565
/// ```
566-
#[cfg_attr(feature = "clippy", allow(needless_lifetimes))] // false positive
567-
pub fn keys<'a>(&'a self) -> Keys<'a, K, V> {
568-
fn first<A, B>((a, _): (A, B)) -> A { a }
569-
let first: fn((&'a K, &'a V)) -> &'a K = first; // coerce to fn ptr
570-
571-
Keys { inner: self.iter().map(first) }
566+
pub fn keys(&self) -> Keys<K, V> {
567+
Keys { inner: self.iter() }
572568
}
573569

574570
/// Returns a double-ended iterator visiting all values in order of insertion.
@@ -588,12 +584,8 @@ impl<K: Hash + Eq, V, S: BuildHasher> LinkedHashMap<K, V, S> {
588584
/// assert_eq!(&20, values.next().unwrap());
589585
/// assert_eq!(None, values.next());
590586
/// ```
591-
#[cfg_attr(feature = "clippy", allow(needless_lifetimes))] // false positive
592-
pub fn values<'a>(&'a self) -> Values<'a, K, V> {
593-
fn second<A, B>((_, b): (A, B)) -> B { b }
594-
let second: fn((&'a K, &'a V)) -> &'a V = second; // coerce to fn ptr
595-
596-
Values { inner: self.iter().map(second) }
587+
pub fn values(&self) -> Values<K, V> {
588+
Values { inner: self.iter() }
597589
}
598590
}
599591

@@ -950,8 +942,7 @@ impl<K, V> Drop for IntoIter<K, V> {
950942

951943
/// An insertion-order iterator over a `LinkedHashMap`'s keys.
952944
pub struct Keys<'a, K: 'a, V: 'a> {
953-
#[cfg_attr(feature = "clippy", allow(type_complexity))]
954-
inner: iter::Map<Iter<'a, K, V>, fn((&'a K, &'a V)) -> &'a K>
945+
inner: Iter<'a, K, V>,
955946
}
956947

957948
impl<'a, K, V> Clone for Keys<'a, K, V> {
@@ -961,12 +952,12 @@ impl<'a, K, V> Clone for Keys<'a, K, V> {
961952
impl<'a, K, V> Iterator for Keys<'a, K, V> {
962953
type Item = &'a K;
963954

964-
#[inline] fn next(&mut self) -> Option<(&'a K)> { self.inner.next() }
955+
#[inline] fn next(&mut self) -> Option<&'a K> { self.inner.next().map(|e| e.0) }
965956
#[inline] fn size_hint(&self) -> (usize, Option<usize>) { self.inner.size_hint() }
966957
}
967958

968959
impl<'a, K, V> DoubleEndedIterator for Keys<'a, K, V> {
969-
#[inline] fn next_back(&mut self) -> Option<(&'a K)> { self.inner.next_back() }
960+
#[inline] fn next_back(&mut self) -> Option<&'a K> { self.inner.next_back().map(|e| e.0) }
970961
}
971962

972963
impl<'a, K, V> ExactSizeIterator for Keys<'a, K, V> {
@@ -975,8 +966,7 @@ impl<'a, K, V> ExactSizeIterator for Keys<'a, K, V> {
975966

976967
/// An insertion-order iterator over a `LinkedHashMap`'s values.
977968
pub struct Values<'a, K: 'a, V: 'a> {
978-
#[cfg_attr(feature = "clippy", allow(type_complexity))]
979-
inner: iter::Map<Iter<'a, K, V>, fn((&'a K, &'a V)) -> &'a V>
969+
inner: Iter<'a, K, V>,
980970
}
981971

982972
impl<'a, K, V> Clone for Values<'a, K, V> {
@@ -986,12 +976,12 @@ impl<'a, K, V> Clone for Values<'a, K, V> {
986976
impl<'a, K, V> Iterator for Values<'a, K, V> {
987977
type Item = &'a V;
988978

989-
#[inline] fn next(&mut self) -> Option<(&'a V)> { self.inner.next() }
979+
#[inline] fn next(&mut self) -> Option<&'a V> { self.inner.next().map(|e| e.1) }
990980
#[inline] fn size_hint(&self) -> (usize, Option<usize>) { self.inner.size_hint() }
991981
}
992982

993983
impl<'a, K, V> DoubleEndedIterator for Values<'a, K, V> {
994-
#[inline] fn next_back(&mut self) -> Option<(&'a V)> { self.inner.next_back() }
984+
#[inline] fn next_back(&mut self) -> Option<&'a V> { self.inner.next_back().map(|e| e.1) }
995985
}
996986

997987
impl<'a, K, V> ExactSizeIterator for Values<'a, K, V> {

0 commit comments

Comments
 (0)