Improve pretty-printing for compound qualified paths.
This commit is contained in:
parent
e188e2db84
commit
5c023d68d8
@ -1523,7 +1523,17 @@ impl<'a> State<'a> {
|
||||
colons_before_params)
|
||||
}
|
||||
hir::QPath::TypeRelative(ref qself, ref item_segment) => {
|
||||
self.print_type(qself);
|
||||
// If we've got a compound-qualified-path, let's push an additional pair of angle
|
||||
// brackets, so that we pretty-print `<<A::B>::C>` as `<A::B>::C`, instead of just
|
||||
// `A::B::C` (since the latter could be ambiguous to the user)
|
||||
if let hir::TyKind::Path(hir::QPath::Resolved(None, _)) = &qself.kind {
|
||||
self.print_type(qself);
|
||||
} else {
|
||||
self.s.word("<");
|
||||
self.print_type(qself);
|
||||
self.s.word(">");
|
||||
}
|
||||
|
||||
self.s.word("::");
|
||||
self.print_ident(item_segment.ident);
|
||||
self.print_generic_args(item_segment.generic_args(),
|
||||
|
@ -18,7 +18,7 @@ impl S {
|
||||
fn main() {
|
||||
match 10 {
|
||||
<S as Tr>::A::f::<u8> => {}
|
||||
//~^ ERROR expected unit struct, unit variant or constant, found method `<S as Tr>::A::f<u8>`
|
||||
//~^ ERROR expected unit struct, unit variant or constant, found method `<<S as Tr>::A>::f<u8>`
|
||||
0 ..= <S as Tr>::A::f::<u8> => {} //~ ERROR only char and numeric types are allowed in range
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
error[E0533]: expected unit struct, unit variant or constant, found method `<S as Tr>::A::f<u8>`
|
||||
error[E0533]: expected unit struct, unit variant or constant, found method `<<S as Tr>::A>::f<u8>`
|
||||
--> $DIR/qualified-path-params.rs:20:9
|
||||
|
|
||||
LL | <S as Tr>::A::f::<u8> => {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user