about summary refs log tree commit diff
path: root/src/libsyntax/codemap.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2015-08-27 05:41:53 +0530
committerManish Goregaokar <manishsmail@gmail.com>2015-08-28 03:37:13 +0530
commit25cbb4385ee58804cb2483af56d1333fbee6e27d (patch)
tree9a74f5e9796a15356f53fc9b66ec2b642e46e395 /src/libsyntax/codemap.rs
parent4ec7b713dd2de43f4b0b03d33271f9c7dbb56d1c (diff)
downloadrust-25cbb4385ee58804cb2483af56d1333fbee6e27d.tar.gz
rust-25cbb4385ee58804cb2483af56d1333fbee6e27d.zip
Move ExpnInfo to Name
Diffstat (limited to 'src/libsyntax/codemap.rs')
-rw-r--r--src/libsyntax/codemap.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/libsyntax/codemap.rs b/src/libsyntax/codemap.rs
index ce2adccbfc3..e07cd7b5847 100644
--- a/src/libsyntax/codemap.rs
+++ b/src/libsyntax/codemap.rs
@@ -29,6 +29,8 @@ use std::io::{self, Read};
 
 use serialize::{Encodable, Decodable, Encoder, Decoder};
 
+use parse::token::intern;
+use ast::Name;
 
 // _____________________________________________________________________________
 // Pos, BytePos, CharPos
@@ -260,9 +262,9 @@ pub struct FileMapAndBytePos { pub fm: Rc<FileMap>, pub pos: BytePos }
 #[derive(Clone, Hash, Debug, PartialEq, Eq)]
 pub enum ExpnFormat {
     /// e.g. #[derive(...)] <item>
-    MacroAttribute(String),
+    MacroAttribute(Name),
     /// e.g. `format!()`
-    MacroBang(String),
+    MacroBang(Name),
     /// Syntax sugar expansion performed by the compiler (libsyntax::expand).
     CompilerExpansion(CompilerExpansionFormat),
 }
@@ -302,13 +304,13 @@ pub struct NameAndSpan {
 }
 
 impl NameAndSpan {
-    pub fn name(&self) -> &str{
+    pub fn name(&self) -> Name {
         match self.format {
-            ExpnFormat::MacroAttribute(ref s) => &s,
-            ExpnFormat::MacroBang(ref s) => &s,
-            ExpnFormat::CompilerExpansion(ce) => ce.name(),
+            ExpnFormat::MacroAttribute(s) => s,
+            ExpnFormat::MacroBang(s) => s,
+            ExpnFormat::CompilerExpansion(ce) => intern(ce.name()),
         }
-    } 
+    }
 }
 
 /// Extra information for tracking spans of macro and syntax sugar expansion