]> git.lizzy.rs Git - rust.git/blob - tests/ui/array-slice-vec/rcvr-borrowed-to-slice.rs
Rollup merge of #106797 - FawazTirmizi:dev/issues/104284, r=bjorn3
[rust.git] / tests / ui / array-slice-vec / rcvr-borrowed-to-slice.rs
1 // run-pass
2
3 #![allow(non_camel_case_types)]
4
5 trait sum {
6     fn sum_(self) -> isize;
7 }
8
9 // Note: impl on a slice
10 impl<'a> sum for &'a [isize] {
11     fn sum_(self) -> isize {
12         self.iter().fold(0, |a, &b| a + b)
13     }
14 }
15
16 fn call_sum(x: &[isize]) -> isize { x.sum_() }
17
18 pub fn main() {
19     let x = vec![1, 2, 3];
20     let y = call_sum(&x);
21     println!("y=={}", y);
22     assert_eq!(y, 6);
23
24     let x = vec![1, 2, 3];
25     let y = x.sum_();
26     println!("y=={}", y);
27     assert_eq!(y, 6);
28
29     let x = vec![1, 2, 3];
30     let y = x.sum_();
31     println!("y=={}", y);
32     assert_eq!(y, 6);
33 }