@@ -155,7 +155,11 @@ impl HirDisplay for ApplicationTy {
155155 let sig = FnSig :: from_fn_ptr_substs ( & self . parameters ) ;
156156 write ! ( f, "fn(" ) ?;
157157 f. write_joined ( sig. params ( ) , ", " ) ?;
158- write ! ( f, ") -> {}" , sig. ret( ) . display( f. db) ) ?;
158+ write ! ( f, ")" ) ?;
159+ let ret = sig. ret ( ) ;
160+ if * ret != Ty :: unit ( ) {
161+ write ! ( f, " -> {}" , ret. display( f. db) ) ?;
162+ }
159163 }
160164 TypeCtor :: FnDef ( def) => {
161165 let sig = f. db . callable_item_signature ( def) . subst ( & self . parameters ) ;
@@ -180,7 +184,11 @@ impl HirDisplay for ApplicationTy {
180184 }
181185 write ! ( f, "(" ) ?;
182186 f. write_joined ( sig. params ( ) , ", " ) ?;
183- write ! ( f, ") -> {}" , sig. ret( ) . display( f. db) ) ?;
187+ write ! ( f, ")" ) ?;
188+ let ret = sig. ret ( ) ;
189+ if * ret != Ty :: unit ( ) {
190+ write ! ( f, " -> {}" , ret. display( f. db) ) ?;
191+ }
184192 }
185193 TypeCtor :: Adt ( def_id) => {
186194 let name = match def_id {
@@ -242,16 +250,16 @@ impl HirDisplay for ApplicationTy {
242250 let sig = self . parameters [ 0 ]
243251 . callable_sig ( f. db )
244252 . expect ( "first closure parameter should contain signature" ) ;
245- let return_type_hint = sig. ret ( ) . display ( f. db ) ;
246253 if sig. params ( ) . is_empty ( ) {
247- write ! ( f, "|| -> {}" , return_type_hint ) ?;
254+ write ! ( f, "||" ) ?;
248255 } else if f. omit_verbose_types ( ) {
249- write ! ( f, "|{}| -> {} " , TYPE_HINT_TRUNCATION , return_type_hint ) ?;
256+ write ! ( f, "|{}|" , TYPE_HINT_TRUNCATION ) ?;
250257 } else {
251258 write ! ( f, "|" ) ?;
252259 f. write_joined ( sig. params ( ) , ", " ) ?;
253- write ! ( f, "| -> {}" , return_type_hint ) ?;
260+ write ! ( f, "|" ) ?;
254261 } ;
262+ write ! ( f, " -> {}" , sig. ret( ) . display( f. db) ) ?;
255263 }
256264 }
257265 Ok ( ( ) )
0 commit comments