syntax: use a better Show impl for Ident
Rather than just dumping the id in the interner, which is useless, actually print the interned string. Adjust the lexer logging to use Show instead of Poly.
This commit is contained in:
@@ -41,7 +41,7 @@ pub fn P<T: 'static>(value: T) -> P<T> {
|
||||
/// table) and a SyntaxContext to track renaming and
|
||||
/// macro expansion per Flatt et al., "Macros
|
||||
/// That Work Together"
|
||||
#[deriving(Clone, Hash, PartialOrd, Eq, Ord, Show)]
|
||||
#[deriving(Clone, Hash, PartialOrd, Eq, Ord)]
|
||||
pub struct Ident {
|
||||
pub name: Name,
|
||||
pub ctxt: SyntaxContext
|
||||
@@ -52,6 +52,12 @@ impl Ident {
|
||||
pub fn new(name: Name) -> Ident { Ident {name: name, ctxt: EMPTY_CTXT}}
|
||||
}
|
||||
|
||||
impl Show for Ident {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "\"{}\"#{}", token::get_ident(*self).get(), self.ctxt)
|
||||
}
|
||||
}
|
||||
|
||||
impl PartialEq for Ident {
|
||||
fn eq(&self, other: &Ident) -> bool {
|
||||
if self.ctxt == other.ctxt {
|
||||
|
||||
Reference in New Issue
Block a user