// run-pass #![recursion_limit="1024"] #![allow(dead_code)] use std::mem; pub struct S0(T,T); pub struct S1(Option>>>,Option>>>); pub struct S2(Option>>>,Option>>>); pub struct S3(Option>>>,Option>>>); pub struct S4(Option>>>,Option>>>); pub struct S5(Option>>>,Option>>>,Option); trait Foo { fn xxx(&self); } /// some local of #[fundamental] trait trait Bar {} impl Foo for T where T: Bar, T: Sync { fn xxx(&self) {} } impl Foo for S5 { fn xxx(&self) {} } fn main() { let s = S5(None,None,None); s.xxx(); assert_eq!(mem::size_of_val(&s.2), mem::size_of::>()); }