@@ -61,11 +61,10 @@ impl MarkSymbolVisitor {
6161 }
6262 }
6363
64- fn lookup_and_handle_definition ( & mut self , id : & ast:: NodeId ,
65- span : codemap:: Span ) {
64+ fn lookup_and_handle_definition ( & mut self , id : & ast:: NodeId ) {
6665 let def = match self . tcx . def_map . find ( id) {
6766 Some ( & def) => def,
68- None => self . tcx . sess . span_bug ( span , "def ID not in def map?!" ) ,
67+ None => return
6968 } ;
7069 let def_id = match def {
7170 ast:: DefVariant ( enum_id, _, _) => Some ( enum_id) ,
@@ -129,9 +128,6 @@ impl Visitor<()> for MarkSymbolVisitor {
129128
130129 fn visit_expr ( & mut self , expr : @ast:: Expr , _: ( ) ) {
131130 match expr. node {
132- ast:: ExprPath ( _) | ast:: ExprStruct ( ..) => {
133- self . lookup_and_handle_definition ( & expr. id , expr. span ) ;
134- }
135131 ast:: ExprMethodCall ( ..) => {
136132 match self . method_map . find ( & expr. id ) {
137133 Some ( & typeck:: method_map_entry {
@@ -160,12 +156,16 @@ impl Visitor<()> for MarkSymbolVisitor {
160156 fn visit_ty ( & mut self , typ : & ast:: Ty , _: ( ) ) {
161157 match typ. node {
162158 ast:: ty_path( _, _, ref id) => {
163- self . lookup_and_handle_definition ( id, typ . span ) ;
159+ self . lookup_and_handle_definition ( id) ;
164160 }
165161 _ => visit:: walk_ty ( self , typ, ( ) ) ,
166162 }
167163 }
168164
165+ fn visit_path ( & mut self , _: & ast:: Path , id : ast:: NodeId , _: ( ) ) {
166+ self . lookup_and_handle_definition ( & id) ;
167+ }
168+
169169 fn visit_item ( & mut self , _item : @ast:: item , _: ( ) ) {
170170 // Do not recurse into items. These items will be added to the
171171 // worklist and recursed into manually if necessary.
0 commit comments