From b6f3d3f24546a525d1eb80923692c1296eddc4dc Mon Sep 17 00:00:00 2001 From: John Clements Date: Fri, 6 Sep 2013 23:19:11 -0700 Subject: [PATCH] ident->name in debuginfo --- src/librustc/middle/trans/debuginfo.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/librustc/middle/trans/debuginfo.rs b/src/librustc/middle/trans/debuginfo.rs index 646f71ec28a..e4879ef4a11 100644 --- a/src/librustc/middle/trans/debuginfo.rs +++ b/src/librustc/middle/trans/debuginfo.rs @@ -1012,7 +1012,7 @@ fn struct_metadata(cx: &mut CrateContext, let field_llvm_types = do fields.map |field| { type_of::type_of(cx, field.mt.ty) }; let field_names = do fields.map |field| { - if field.ident == special_idents::unnamed_field { + if field.ident.name == special_idents::unnamed_field.name { ~"" } else { cx.sess.str_of(field.ident).to_owned() @@ -1875,9 +1875,12 @@ fn walk_pattern(cx: &mut CrateContext, // } // Is there already a binding with that name? + // N.B.: this comparison must be UNhygienic... because + // gdb knows nothing about the context, so any two + // variables with the same name will cause the problem. let need_new_scope = scope_stack .iter() - .any(|entry| entry.ident.iter().any(|i| *i == ident)); + .any(|entry| entry.ident.iter().any(|i| i.name == ident.name)); if need_new_scope { // Create a new lexical scope and push it onto the stack