@@ -136,6 +136,12 @@ enum DisplayTarget {
136136 SourceCode { module_id : ModuleId } ,
137137}
138138
139+ impl DisplayTarget {
140+ fn is_source_code ( & self ) -> bool {
141+ matches ! ( self , Self :: SourceCode { ..} )
142+ }
143+ }
144+
139145#[ derive( Debug ) ]
140146pub enum DisplaySourceCodeError {
141147 PathNotFound ,
@@ -303,37 +309,40 @@ impl HirDisplay for ApplicationTy {
303309
304310 if self . parameters . len ( ) > 0 {
305311 let mut non_default_parameters = Vec :: with_capacity ( self . parameters . len ( ) ) ;
306- let parameters_to_write = if f. omit_verbose_types ( ) {
307- match self
308- . ctor
309- . as_generic_def ( )
310- . map ( |generic_def_id| f. db . generic_defaults ( generic_def_id) )
311- . filter ( |defaults| !defaults. is_empty ( ) )
312- {
313- None => self . parameters . 0 . as_ref ( ) ,
314- Some ( default_parameters) => {
315- for ( i, parameter) in self . parameters . iter ( ) . enumerate ( ) {
316- match ( parameter, default_parameters. get ( i) ) {
317- ( & Ty :: Unknown , _) | ( _, None ) => {
318- non_default_parameters. push ( parameter. clone ( ) )
319- }
320- ( _, Some ( default_parameter) )
321- if parameter != default_parameter =>
322- {
323- non_default_parameters. push ( parameter. clone ( ) )
312+ let parameters_to_write =
313+ if f. display_target . is_source_code ( ) || f. omit_verbose_types ( ) {
314+ match self
315+ . ctor
316+ . as_generic_def ( )
317+ . map ( |generic_def_id| f. db . generic_defaults ( generic_def_id) )
318+ . filter ( |defaults| !defaults. is_empty ( ) )
319+ {
320+ None => self . parameters . 0 . as_ref ( ) ,
321+ Some ( default_parameters) => {
322+ for ( i, parameter) in self . parameters . iter ( ) . enumerate ( ) {
323+ match ( parameter, default_parameters. get ( i) ) {
324+ ( & Ty :: Unknown , _) | ( _, None ) => {
325+ non_default_parameters. push ( parameter. clone ( ) )
326+ }
327+ ( _, Some ( default_parameter) )
328+ if parameter != default_parameter =>
329+ {
330+ non_default_parameters. push ( parameter. clone ( ) )
331+ }
332+ _ => ( ) ,
324333 }
325- _ => ( ) ,
326334 }
335+ & non_default_parameters
327336 }
328- & non_default_parameters
329337 }
330- }
331- } else {
332- self . parameters . 0 . as_ref ( )
333- } ;
334- write ! ( f, "<" ) ?;
335- f. write_joined ( parameters_to_write, ", " ) ?;
336- write ! ( f, ">" ) ?;
338+ } else {
339+ self . parameters . 0 . as_ref ( )
340+ } ;
341+ if !parameters_to_write. is_empty ( ) {
342+ write ! ( f, "<" ) ?;
343+ f. write_joined ( parameters_to_write, ", " ) ?;
344+ write ! ( f, ">" ) ?;
345+ }
337346 }
338347 }
339348 TypeCtor :: AssociatedType ( type_alias) => {
0 commit comments