1 // run-pass
2 #![allow(non_camel_case_types)]
3 
4 trait double {
double(self: Box<Self>) -> usize5     fn double(self: Box<Self>) -> usize;
6 }
7 
8 impl double for usize {
double(self: Box<usize>) -> usize9     fn double(self: Box<usize>) -> usize { *self * 2 }
10 }
11 
main()12 pub fn main() {
13     let x: Box<_> = Box::new(3);
14     assert_eq!(x.double(), 6);
15 }
16