This is a bit of a toss-up, really neither option is fully correct,
really we need it to depend on the type of object in question, but
that takes more work and it looks like we don't use the `&T`
resolution anymore.
non_lifetimes_processed = true;
assert_simple_bound(&trait_bound);
let resolved = types.resolve_path(&trait_bound.path, None);
non_lifetimes_processed = true;
assert_simple_bound(&trait_bound);
let resolved = types.resolve_path(&trait_bound.path, None);
- let ref_ty = syn::Type::Reference(syn::TypeReference {
- and_token: syn::Token![&](Span::call_site()),
- lifetime: None, mutability: None,
- elem: Box::new(syn::Type::Path(syn::TypePath {
- qself: None, path: string_path_to_syn_path(&resolved)
- })),
+ let ty = syn::Type::Path(syn::TypePath {
+ qself: None, path: string_path_to_syn_path(&resolved)
- self.default_generics.insert(p_ident, (ref_ty.clone(), ref_ty));
+ let ref_ty = parse_quote!(&#ty);
+ self.default_generics.insert(p_ident, (ty, ref_ty));
+
*gen = Some(resolved);
}
}
*gen = Some(resolved);
}
}