// run-pass // pretty-expanded FIXME #23616 trait Serializer { } trait Serializable { fn serialize(&self, s: S); } impl Serializable for isize { fn serialize(&self, _s: S) { } } struct F { a: A } impl Serializable for F { fn serialize(&self, s: S) { self.a.serialize(s); } } impl Serializer for isize { } pub fn main() { let foo = F { a: 1 }; foo.serialize(1); let bar = F { a: F {a: 1 } }; bar.serialize(2); }