@@ -415,7 +415,7 @@ pub(super) fn definition(
415415 let mod_path = definition_mod_path ( db, & def) ;
416416 let ( label, docs) = match def {
417417 Definition :: Macro ( it) => label_and_docs ( db, it) ,
418- Definition :: Field ( it) => label_and_layout_info_and_docs ( db, it, |& it| {
418+ Definition :: Field ( it) => label_and_layout_info_and_docs ( db, it, config , |& it| {
419419 let var_def = it. parent_def ( db) ;
420420 let id = it. index ( ) ;
421421 let layout = it. layout ( db) . ok ( ) ?;
@@ -435,7 +435,7 @@ pub(super) fn definition(
435435 } ) ,
436436 Definition :: Module ( it) => label_and_docs ( db, it) ,
437437 Definition :: Function ( it) => label_and_docs ( db, it) ,
438- Definition :: Adt ( it) => label_and_layout_info_and_docs ( db, it, |& it| {
438+ Definition :: Adt ( it) => label_and_layout_info_and_docs ( db, it, config , |& it| {
439439 let layout = it. layout ( db) . ok ( ) ?;
440440 Some ( format ! ( "size = {}, align = {}" , layout. size. bytes( ) , layout. align. abi. bytes( ) ) )
441441 } ) ,
@@ -473,7 +473,7 @@ pub(super) fn definition(
473473 } ) ,
474474 Definition :: Trait ( it) => label_and_docs ( db, it) ,
475475 Definition :: TraitAlias ( it) => label_and_docs ( db, it) ,
476- Definition :: TypeAlias ( it) => label_and_layout_info_and_docs ( db, it, |& it| {
476+ Definition :: TypeAlias ( it) => label_and_layout_info_and_docs ( db, it, config , |& it| {
477477 let layout = it. ty ( db) . layout ( db) . ok ( ) ?;
478478 Some ( format ! ( "size = {}, align = {}" , layout. size. bytes( ) , layout. align. abi. bytes( ) ) )
479479 } ) ,
@@ -577,17 +577,17 @@ where
577577fn label_and_layout_info_and_docs < D , E , V > (
578578 db : & RootDatabase ,
579579 def : D ,
580+ config : & HoverConfig ,
580581 value_extractor : E ,
581582) -> ( String , Option < hir:: Documentation > )
582583where
583584 D : HasAttrs + HirDisplay ,
584585 E : Fn ( & D ) -> Option < V > ,
585586 V : Display ,
586587{
587- let label = if let Some ( value) = value_extractor ( & def) {
588- format ! ( "{} // {value}" , def. display( db) )
589- } else {
590- def. display ( db) . to_string ( )
588+ let label = match value_extractor ( & def) {
589+ Some ( value) if config. memory_layout => format ! ( "{} // {value}" , def. display( db) ) ,
590+ _ => def. display ( db) . to_string ( ) ,
591591 } ;
592592 let docs = def. attrs ( db) . docs ( ) ;
593593 ( label, docs)
0 commit comments