@@ -1036,6 +1036,16 @@ impl IdentFragment for Member {
10361036 }
10371037}
10381038
1039+ #[ cfg( any( feature = "parsing" , feature = "printing" ) ) ]
1040+ impl Member {
1041+ pub ( crate ) fn is_named ( & self ) -> bool {
1042+ match self {
1043+ Member :: Named ( _) => true ,
1044+ Member :: Unnamed ( _) => false ,
1045+ }
1046+ }
1047+ }
1048+
10391049ast_struct ! {
10401050 /// The index of an unnamed tuple struct field.
10411051 #[ cfg_attr( docsrs, doc( cfg( any( feature = "full" , feature = "derive" ) ) ) ) ]
@@ -3021,15 +3031,6 @@ pub(crate) mod parsing {
30213031 Ok ( !trailing_dot)
30223032 }
30233033
3024- impl Member {
3025- pub ( crate ) fn is_named ( & self ) -> bool {
3026- match self {
3027- Member :: Named ( _) => true ,
3028- Member :: Unnamed ( _) => false ,
3029- }
3030- }
3031- }
3032-
30333034 #[ cfg( feature = "full" ) ]
30343035 #[ cfg_attr( docsrs, doc( cfg( feature = "parsing" ) ) ) ]
30353036 impl Parse for PointerMutability {
@@ -3405,22 +3406,17 @@ pub(crate) mod printing {
34053406 fn print_expr_call ( e : & ExprCall , tokens : & mut TokenStream , fixup : FixupContext ) {
34063407 outer_attrs_to_tokens ( & e. attrs , tokens) ;
34073408
3408- let call_precedence = if let Expr :: Field ( _) = & * e. func {
3409- Precedence :: MIN
3410- } else {
3411- Precedence :: Unambiguous
3412- } ;
34133409 let func_fixup = fixup. leftmost_subexpression_with_begin_operator (
34143410 #[ cfg( feature = "full" ) ]
34153411 true ,
34163412 false ,
34173413 ) ;
3418- print_subexpression (
3419- & e . func ,
3420- func_fixup . leading_precedence ( & e . func ) < call_precedence ,
3421- tokens ,
3422- func_fixup ,
3423- ) ;
3414+ let needs_group = if let Expr :: Field ( func ) = & * e . func {
3415+ func. member . is_named ( )
3416+ } else {
3417+ func_fixup . leading_precedence ( & e . func ) < Precedence :: Unambiguous
3418+ } ;
3419+ print_subexpression ( & e . func , needs_group , tokens , func_fixup ) ;
34243420
34253421 e. paren_token . surround ( tokens, |tokens| {
34263422 e. args . to_tokens ( tokens) ;
0 commit comments