1 // Test that `impl MyTrait for &i32` works and is equivalent to any lifetime. 2 3 // run-pass 4 5 #![allow(warnings)] 6 7 trait MyTrait { } 8 9 impl MyTrait for &i32 { 10 } 11 impls_my_trait<T: MyTrait>()12fn impls_my_trait<T: MyTrait>() { } 13 impls_my_trait_val<T: MyTrait>(_: T)14fn impls_my_trait_val<T: MyTrait>(_: T) { 15 impls_my_trait::<T>(); 16 } 17 random_where_clause() where for<'a> &'a i32: MyTrait18fn random_where_clause() 19 where for<'a> &'a i32: MyTrait { } 20 main()21fn main() { 22 let x = 22; 23 let f = &x; 24 25 impls_my_trait_val(f); 26 27 impls_my_trait::<&'static i32>(); 28 29 random_where_clause(); 30 } 31