@@ -1713,11 +1713,16 @@ impl<'a> State<'a> {
17131713
17141714 fn print_expr_struct (
17151715 & mut self ,
1716+ qself : & Option < ast:: QSelf > ,
17161717 path : & ast:: Path ,
17171718 fields : & [ ast:: ExprField ] ,
17181719 rest : & ast:: StructRest ,
17191720 ) {
1720- self . print_path ( path, true , 0 ) ;
1721+ if let Some ( qself) = qself {
1722+ self . print_qpath ( path, qself, true ) ;
1723+ } else {
1724+ self . print_path ( path, true , 0 ) ;
1725+ }
17211726 self . s . word ( "{" ) ;
17221727 self . commasep_cmnt (
17231728 Consistent ,
@@ -1874,7 +1879,7 @@ impl<'a> State<'a> {
18741879 self . print_expr_repeat ( element, count) ;
18751880 }
18761881 ast:: ExprKind :: Struct ( ref se) => {
1877- self . print_expr_struct ( & se. path , & se. fields , & se. rest ) ;
1882+ self . print_expr_struct ( & se. qself , & se . path , & se. fields , & se. rest ) ;
18781883 }
18791884 ast:: ExprKind :: Tup ( ref exprs) => {
18801885 self . print_expr_tup ( exprs) ;
@@ -2340,8 +2345,12 @@ impl<'a> State<'a> {
23402345 self . print_pat ( p) ;
23412346 }
23422347 }
2343- PatKind :: TupleStruct ( ref path, ref elts) => {
2344- self . print_path ( path, true , 0 ) ;
2348+ PatKind :: TupleStruct ( ref qself, ref path, ref elts) => {
2349+ if let Some ( qself) = qself {
2350+ self . print_qpath ( path, qself, true ) ;
2351+ } else {
2352+ self . print_path ( path, true , 0 ) ;
2353+ }
23452354 self . popen ( ) ;
23462355 self . commasep ( Inconsistent , & elts[ ..] , |s, p| s. print_pat ( p) ) ;
23472356 self . pclose ( ) ;
@@ -2355,8 +2364,12 @@ impl<'a> State<'a> {
23552364 PatKind :: Path ( Some ( ref qself) , ref path) => {
23562365 self . print_qpath ( path, qself, false ) ;
23572366 }
2358- PatKind :: Struct ( ref path, ref fields, etc) => {
2359- self . print_path ( path, true , 0 ) ;
2367+ PatKind :: Struct ( ref qself, ref path, ref fields, etc) => {
2368+ if let Some ( qself) = qself {
2369+ self . print_qpath ( path, qself, true ) ;
2370+ } else {
2371+ self . print_path ( path, true , 0 ) ;
2372+ }
23602373 self . nbsp ( ) ;
23612374 self . word_space ( "{" ) ;
23622375 self . commasep_cmnt (
0 commit comments