From 10a862d4f48a183dec5621d2cd81e64701bd29c6 Mon Sep 17 00:00:00 2001 From: Eduard Burtescu Date: Thu, 18 Dec 2014 23:21:30 +0200 Subject: [PATCH] rustc: middle: use cheaper Name in resolve::Export instead of String. --- src/librustc/metadata/encoder.rs | 10 ++++------ src/librustc/middle/resolve.rs | 5 ++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index e3657cf935a4..60d21abb45e2 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -451,8 +451,6 @@ fn encode_reexported_static_methods(ecx: &EncodeContext, mod_path: PathElems, exp: &middle::resolve::Export) { if let Some(ast_map::NodeItem(item)) = ecx.tcx.map.find(exp.def_id.node) { - let original_name = token::get_ident(item.ident); - let path_differs = ecx.tcx.map.with_path(exp.def_id.node, |path| { let (mut a, mut b) = (path, mod_path.clone()); loop { @@ -474,16 +472,16 @@ fn encode_reexported_static_methods(ecx: &EncodeContext, // encoded metadata for static methods relative to Bar, // but not yet for Foo. // - if path_differs || original_name.get() != exp.name { + if path_differs || item.ident.name != exp.name { if !encode_reexported_static_base_methods(ecx, rbml_w, exp) { if encode_reexported_static_trait_methods(ecx, rbml_w, exp) { debug!("(encode reexported static methods) {} [trait]", - original_name); + item.ident.name); } } else { debug!("(encode reexported static methods) {} [base]", - original_name); + item.ident.name); } } } @@ -534,7 +532,7 @@ fn encode_reexports(ecx: &EncodeContext, rbml_w.wr_str(def_to_string(exp.def_id).as_slice()); rbml_w.end_tag(); rbml_w.start_tag(tag_items_data_item_reexport_name); - rbml_w.wr_str(exp.name.as_slice()); + rbml_w.wr_str(exp.name.as_str()); rbml_w.end_tag(); rbml_w.end_tag(); encode_reexported_static_methods(ecx, rbml_w, path.clone(), exp); diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index 16d6dff242b6..8dbdbc0900ee 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -98,7 +98,7 @@ type BindingMap = HashMap; pub type ExportMap = NodeMap>; pub struct Export { - pub name: String, // The name of the target. + pub name: Name, // The name of the target. pub def_id: DefId, // The definition of the target. } @@ -3873,11 +3873,10 @@ impl<'a> Resolver<'a> { ns: Namespace) { match namebindings.def_for_namespace(ns) { Some(d) => { - let name = token::get_name(name); debug!("(computing exports) YES: export '{}' => {}", name, d.def_id()); exports.push(Export { - name: name.get().to_string(), + name: name, def_id: d.def_id() }); }