fn add_shared_proto_slots( ty: &Type, proto_impls: &mut Vec<TokenStream>, implemented_proto_fragments: HashSet<String>, ctx: &Ctx, )