}
}
+#[allow(dead_code)]
+fn assert_covariance() {
+ fn map_key<'new>(v: HashMap<&'static str, u8>) -> HashMap<&'new str, u8> { v }
+ fn map_val<'new>(v: HashMap<u8, &'static str>) -> HashMap<u8, &'new str> { v }
+ fn iter_key<'a, 'new>(v: Iter<'a, &'static str, u8>) -> Iter<'a, &'new str, u8> { v }
+ fn iter_val<'a, 'new>(v: Iter<'a, u8, &'static str>) -> Iter<'a, u8, &'new str> { v }
+ fn into_iter_key<'new>(v: IntoIter<&'static str, u8>) -> IntoIter<&'new str, u8> { v }
+ fn into_iter_val<'new>(v: IntoIter<u8, &'static str>) -> IntoIter<u8, &'new str> { v }
+ fn keys_key<'a, 'new>(v: Keys<'a, &'static str, u8>) -> Keys<'a, &'new str, u8> { v }
+ fn keys_val<'a, 'new>(v: Keys<'a, u8, &'static str>) -> Keys<'a, u8, &'new str> { v }
+ fn values_key<'a, 'new>(v: Values<'a, &'static str, u8>) -> Values<'a, &'new str, u8> { v }
+ fn values_val<'a, 'new>(v: Values<'a, u8, &'static str>) -> Values<'a, u8, &'new str> { v }
+}
+
#[cfg(test)]
mod test_map {
use prelude::v1::*;
fn size_hint(&self) -> (usize, Option<usize>) { self.iter.size_hint() }
}
+#[allow(dead_code)]
+fn assert_covariance() {
+ fn set<'new>(v: HashSet<&'static str>) -> HashSet<&'new str> { v }
+ fn iter<'a, 'new>(v: Iter<'a, &'static str>) -> Iter<'a, &'new str> { v }
+ fn into_iter<'new>(v: IntoIter<&'static str>) -> IntoIter<&'new str> { v }
+ fn difference<'a, 'new>(v: Difference<'a, &'static str, RandomState>)
+ -> Difference<'a, &'new str, RandomState> { v }
+ fn symmetric_difference<'a, 'new>(v: SymmetricDifference<'a, &'static str, RandomState>)
+ -> SymmetricDifference<'a, &'new str, RandomState> { v }
+ fn intersection<'a, 'new>(v: Intersection<'a, &'static str, RandomState>)
+ -> Intersection<'a, &'new str, RandomState> { v }
+ fn union<'a, 'new>(v: Union<'a, &'static str, RandomState>)
+ -> Union<'a, &'new str, RandomState> { v }
+}
+
#[cfg(test)]
mod test_set {
use prelude::v1::*;