@@ -95,7 +95,7 @@ use rustc::ty::query::Providers;
9595use rustc:: ty:: { self , TyCtxt , Instance } ;
9696use rustc:: mir:: mono:: { MonoItem , InstantiationMode } ;
9797
98- use syntax_pos:: symbol:: InternedString ;
98+ use syntax_pos:: symbol:: Symbol ;
9999
100100use log:: debug;
101101
@@ -112,7 +112,7 @@ pub fn provide(providers: &mut Providers<'_>) {
112112 } ;
113113}
114114
115- fn symbol_name ( tcx : TyCtxt < ' tcx > , instance : Instance < ' tcx > ) -> InternedString {
115+ fn symbol_name ( tcx : TyCtxt < ' tcx > , instance : Instance < ' tcx > ) -> Symbol {
116116 let def_id = instance. def_id ( ) ;
117117 let substs = instance. substs ;
118118
@@ -123,13 +123,11 @@ fn symbol_name(tcx: TyCtxt<'tcx>, instance: Instance<'tcx>) -> InternedString {
123123 if def_id. is_local ( ) {
124124 if tcx. plugin_registrar_fn ( LOCAL_CRATE ) == Some ( def_id) {
125125 let disambiguator = tcx. sess . local_crate_disambiguator ( ) ;
126- return
127- InternedString :: intern ( & tcx. sess . generate_plugin_registrar_symbol ( disambiguator) ) ;
126+ return Symbol :: intern ( & tcx. sess . generate_plugin_registrar_symbol ( disambiguator) ) ;
128127 }
129128 if tcx. proc_macro_decls_static ( LOCAL_CRATE ) == Some ( def_id) {
130129 let disambiguator = tcx. sess . local_crate_disambiguator ( ) ;
131- return
132- InternedString :: intern ( & tcx. sess . generate_proc_macro_decls_symbol ( disambiguator) ) ;
130+ return Symbol :: intern ( & tcx. sess . generate_proc_macro_decls_symbol ( disambiguator) ) ;
133131 }
134132 }
135133
@@ -146,23 +144,22 @@ fn symbol_name(tcx: TyCtxt<'tcx>, instance: Instance<'tcx>) -> InternedString {
146144 let attrs = tcx. codegen_fn_attrs ( def_id) ;
147145 if is_foreign {
148146 if let Some ( name) = attrs. link_name {
149- return name. as_interned_str ( ) ;
147+ return name;
150148 }
151149 // Don't mangle foreign items.
152- return tcx. item_name ( def_id) . as_interned_str ( ) ;
150+ return tcx. item_name ( def_id) ;
153151 }
154152
155- if let Some ( name) = & attrs. export_name {
153+ if let Some ( name) = attrs. export_name {
156154 // Use provided name
157- return name. as_interned_str ( ) ;
155+ return name;
158156 }
159157
160158 if attrs. flags . contains ( CodegenFnAttrFlags :: NO_MANGLE ) {
161159 // Don't mangle
162- return tcx. item_name ( def_id) . as_interned_str ( ) ;
160+ return tcx. item_name ( def_id) ;
163161 }
164162
165-
166163 let is_generic = substs. non_erasable_generics ( ) . next ( ) . is_some ( ) ;
167164 let avoid_cross_crate_conflicts =
168165 // If this is an instance of a generic function, we also hash in
@@ -222,5 +219,5 @@ fn symbol_name(tcx: TyCtxt<'tcx>, instance: Instance<'tcx>) -> InternedString {
222219 SymbolManglingVersion :: V0 => v0:: mangle ( tcx, instance, instantiating_crate) ,
223220 } ;
224221
225- InternedString :: intern ( & mangled)
222+ Symbol :: intern ( & mangled)
226223}
0 commit comments