@@ -109,8 +109,8 @@ use rustc_middle::bug;
109109use rustc_middle:: middle:: codegen_fn_attrs:: CodegenFnAttrFlags ;
110110use rustc_middle:: middle:: exported_symbols:: { SymbolExportInfo , SymbolExportLevel } ;
111111use rustc_middle:: mir:: mono:: {
112- CodegenUnit , CodegenUnitNameBuilder , InstantiationMode , Linkage , LinkageInfo , MonoItem ,
113- MonoItemData , Visibility ,
112+ CodegenUnit , CodegenUnitNameBuilder , InstantiationMode , Linkage , MonoItem , MonoItemData ,
113+ Visibility ,
114114} ;
115115use rustc_middle:: ty:: print:: { characteristic_def_id_of_type, with_no_trimmed_paths} ;
116116use rustc_middle:: ty:: visit:: TypeVisitableExt ;
@@ -245,7 +245,7 @@ where
245245 let cgu = codegen_units. entry ( cgu_name) . or_insert_with ( || CodegenUnit :: new ( cgu_name) ) ;
246246
247247 let mut can_be_internalized = true ;
248- let ( linkage_info , visibility) = mono_item_linkage_info_and_visibility (
248+ let ( linkage , visibility) = mono_item_linkage_and_visibility (
249249 cx. tcx ,
250250 & mono_item,
251251 & mut can_be_internalized,
@@ -259,7 +259,7 @@ where
259259
260260 cgu. items_mut ( ) . insert ( mono_item, MonoItemData {
261261 inlined : false ,
262- linkage_info ,
262+ linkage ,
263263 visibility,
264264 size_estimate,
265265 } ) ;
@@ -278,7 +278,7 @@ where
278278 // This is a CGU-private copy.
279279 cgu. items_mut ( ) . entry ( inlined_item) . or_insert_with ( || MonoItemData {
280280 inlined : true ,
281- linkage_info : LinkageInfo :: ImplicitInternal ,
281+ linkage : Linkage :: Internal ,
282282 visibility : Visibility :: Default ,
283283 size_estimate : inlined_item. size_estimate ( cx. tcx ) ,
284284 } ) ;
@@ -589,8 +589,7 @@ fn internalize_symbols<'tcx>(
589589
590590 // If we got here, we did not find any uses from other CGUs, so
591591 // it's fine to make this monomorphization internal.
592- debug_assert_eq ! ( data. linkage_info, LinkageInfo :: ImplicitExternal ) ;
593- data. linkage_info = LinkageInfo :: ImplicitInternal ;
592+ data. linkage = Linkage :: Internal ;
594593 data. visibility = Visibility :: Default ;
595594 }
596595 }
@@ -608,7 +607,7 @@ fn mark_code_coverage_dead_code_cgu<'tcx>(codegen_units: &mut [CodegenUnit<'tcx>
608607 // function symbols to be included via `-u` or `/include` linker args.
609608 let dead_code_cgu = codegen_units
610609 . iter_mut ( )
611- . filter ( |cgu| cgu. items ( ) . iter ( ) . any ( |( _, data) | data. linkage_info . is_external ( ) ) )
610+ . filter ( |cgu| cgu. items ( ) . iter ( ) . any ( |( _, data) | data. linkage == Linkage :: External ) )
612611 . min_by_key ( |cgu| cgu. size_estimate ( ) ) ;
613612
614613 // If there are no CGUs that have externally linked items, then we just
@@ -737,26 +736,24 @@ fn fallback_cgu_name(name_builder: &mut CodegenUnitNameBuilder<'_>) -> Symbol {
737736 name_builder. build_cgu_name ( LOCAL_CRATE , & [ "fallback" ] , Some ( "cgu" ) )
738737}
739738
740- fn mono_item_linkage_info_and_visibility < ' tcx > (
739+ fn mono_item_linkage_and_visibility < ' tcx > (
741740 tcx : TyCtxt < ' tcx > ,
742741 mono_item : & MonoItem < ' tcx > ,
743742 can_be_internalized : & mut bool ,
744743 can_export_generics : bool ,
745744 always_export_generics : bool ,
746- ) -> ( LinkageInfo , Visibility ) {
745+ ) -> ( Linkage , Visibility ) {
747746 if let Some ( explicit_linkage) = mono_item. explicit_linkage ( tcx) {
748- ( LinkageInfo :: Explicit ( explicit_linkage) , Visibility :: Default )
749- } else {
750- let vis = mono_item_visibility (
751- tcx,
752- mono_item,
753- can_be_internalized,
754- can_export_generics,
755- always_export_generics,
756- ) ;
757-
758- ( LinkageInfo :: ImplicitExternal , vis)
747+ return ( explicit_linkage, Visibility :: Default ) ;
759748 }
749+ let vis = mono_item_visibility (
750+ tcx,
751+ mono_item,
752+ can_be_internalized,
753+ can_export_generics,
754+ always_export_generics,
755+ ) ;
756+ ( Linkage :: External , vis)
760757}
761758
762759type CguNameCache = UnordMap < ( DefId , bool ) , Symbol > ;
@@ -1036,15 +1033,15 @@ fn debug_dump<'a, 'tcx: 'a>(tcx: TyCtxt<'tcx>, label: &str, cgus: &[CodegenUnit<
10361033 writeln ! ( s, " - items: {num_items}, mean size: {mean_size:.1}, sizes: {sizes}" , ) ;
10371034
10381035 for ( item, data) in cgu. items_in_deterministic_order ( tcx) {
1039- let linkage_info = data. linkage_info ;
1036+ let linkage = data. linkage ;
10401037 let symbol_name = item. symbol_name ( tcx) . name ;
10411038 let symbol_hash_start = symbol_name. rfind ( 'h' ) ;
10421039 let symbol_hash = symbol_hash_start. map_or ( "<no hash>" , |i| & symbol_name[ i..] ) ;
10431040 let kind = if !data. inlined { "root" } else { "inlined" } ;
10441041 let size = data. size_estimate ;
10451042 let _ = with_no_trimmed_paths ! ( writeln!(
10461043 s,
1047- " - {item} [{linkage_info :?}] [{symbol_hash}] ({kind}, size: {size})"
1044+ " - {item} [{linkage :?}] [{symbol_hash}] ({kind}, size: {size})"
10481045 ) ) ;
10491046 }
10501047
@@ -1197,7 +1194,7 @@ fn collect_and_partition_mono_items(tcx: TyCtxt<'_>, (): ()) -> (&DefIdSet, &[Co
11971194
11981195 for cgu in codegen_units {
11991196 for ( & mono_item, & data) in cgu. items ( ) {
1200- item_to_cgus. entry ( mono_item) . or_default ( ) . push ( ( cgu. name ( ) , data. linkage_info ) ) ;
1197+ item_to_cgus. entry ( mono_item) . or_default ( ) . push ( ( cgu. name ( ) , data. linkage ) ) ;
12011198 }
12021199 }
12031200
@@ -1210,11 +1207,11 @@ fn collect_and_partition_mono_items(tcx: TyCtxt<'_>, (): ()) -> (&DefIdSet, &[Co
12101207 let cgus = item_to_cgus. get_mut ( i) . unwrap_or ( & mut empty) ;
12111208 cgus. sort_by_key ( |( name, _) | * name) ;
12121209 cgus. dedup ( ) ;
1213- for & ( ref cgu_name, linkage_info ) in cgus. iter ( ) {
1210+ for & ( ref cgu_name, linkage ) in cgus. iter ( ) {
12141211 output. push ( ' ' ) ;
12151212 output. push_str ( cgu_name. as_str ( ) ) ;
12161213
1217- let linkage_abbrev = match linkage_info . into_linkage ( ) {
1214+ let linkage_abbrev = match linkage {
12181215 Linkage :: External => "External" ,
12191216 Linkage :: AvailableExternally => "Available" ,
12201217 Linkage :: LinkOnceAny => "OnceAny" ,
0 commit comments