1
Fork 0

Modify derive(Debug) to use Self in struct literal to avoid redundant error

#97343
This commit is contained in:
Esteban Küber 2022-05-27 10:48:12 -07:00
parent d21bc6562a
commit f2a1b7b772
3 changed files with 6 additions and 13 deletions

View file

@ -1039,7 +1039,9 @@ impl<'a> MethodDef<'a> {
let span = trait_.span;
let mut patterns = Vec::new();
for i in 0..self_args.len() {
let struct_path = cx.path(span, vec![type_ident]);
// We could use `type_ident` instead of `Self`, but in the case of a type parameter
// shadowing the struct name, that causes a second, unnecessary E0578 error. #97343
let struct_path = cx.path(span, vec![Ident::new(kw::SelfUpper, type_ident.span)]);
let (pat, ident_expr) = trait_.create_struct_pattern(
cx,
struct_path,