//@ run-pass | |
use ::std::ops::RangeFull; | |
fn test<T : Clone>(arg: T) -> T { | |
arg.clone() | |
} | |
#[derive(PartialEq, Debug)] | |
struct Test(isize); | |
fn main() { | |
// Check that ranges implement clone | |
assert_eq!(test(1..5), (1..5)); | |
assert_eq!(test(..5), (..5)); | |
assert_eq!(test(1..), (1..)); | |
assert_eq!(test(RangeFull), (RangeFull)); | |
// Check that ranges can still be used with non-clone limits | |
assert_eq!((Test(1)..Test(5)), (Test(1)..Test(5))); | |
} |