1 // run-pass 2 #![allow(dead_code)] 3 // Test transitive analysis for associated types. Collected types 4 // should be normalized and new obligations generated. 5 6 // pretty-expanded FIXME #23616 7 8 trait Foo { 9 type A; foo(&self)10 fn foo(&self) {} 11 } 12 13 impl Foo for usize { 14 type A = usize; 15 } 16 17 struct Bar<T: Foo> { inner: T::A } 18 is_send<T: Send>()19fn is_send<T: Send>() {} 20 main()21fn main() { 22 is_send::<Bar<usize>>(); 23 } 24