]> git.lizzy.rs Git - rust.git/blob - tests/ui/generics/generic-static-methods.rs
Rollup merge of #106707 - ehuss:remove-dupe-sha-1, r=Mark-Simulacrum
[rust.git] / tests / ui / generics / generic-static-methods.rs
1 // run-pass
2 #![allow(non_camel_case_types)]
3
4
5 trait vec_utils<T> {
6     fn map_<U, F>(x: &Self, f: F) -> Vec<U> where F: FnMut(&T) -> U;
7 }
8
9 impl<T> vec_utils<T> for Vec<T> {
10     fn map_<U, F>(x: &Vec<T> , mut f: F) -> Vec<U> where F: FnMut(&T) -> U {
11         let mut r = Vec::new();
12         for elt in x {
13             r.push(f(elt));
14         }
15         r
16     }
17 }
18
19 pub fn main() {
20     assert_eq!(vec_utils::map_(&vec![1,2,3], |&x| x+1), [2,3,4]);
21 }