@@ -47,7 +47,7 @@ impl<'a> base::Resolver for Resolver<'a> {
4747
4848 fn visit_expansion ( & mut self , mark : Mark , expansion : & Expansion ) {
4949 expansion. visit_with ( & mut ExpansionVisitor {
50- current_module : self . expansion_data [ mark. as_u32 ( ) as usize ] . module . clone ( ) ,
50+ current_module : self . expansion_data [ & mark. as_u32 ( ) ] . module . clone ( ) ,
5151 resolver : self ,
5252 } ) ;
5353 }
@@ -57,7 +57,7 @@ impl<'a> base::Resolver for Resolver<'a> {
5757 self . macro_names . insert ( ident. name ) ;
5858 }
5959
60- let mut module = self . expansion_data [ scope. as_u32 ( ) as usize ] . module . clone ( ) ;
60+ let mut module = self . expansion_data [ & scope. as_u32 ( ) ] . module . clone ( ) ;
6161 while module. macros_escape {
6262 module = module. parent . clone ( ) . unwrap ( ) ;
6363 }
@@ -71,7 +71,7 @@ impl<'a> base::Resolver for Resolver<'a> {
7171 fn find_attr_invoc ( & mut self , attrs : & mut Vec < ast:: Attribute > ) -> Option < ast:: Attribute > {
7272 for i in 0 ..attrs. len ( ) {
7373 let name = intern ( & attrs[ i] . name ( ) ) ;
74- match self . expansion_data [ 0 ] . module . macros . borrow ( ) . get ( & name) {
74+ match self . expansion_data [ & 0 ] . module . macros . borrow ( ) . get ( & name) {
7575 Some ( ext) => match * * ext {
7676 MultiModifier ( ..) | MultiDecorator ( ..) => return Some ( attrs. remove ( i) ) ,
7777 _ => { }
@@ -82,7 +82,7 @@ impl<'a> base::Resolver for Resolver<'a> {
8282 None
8383 }
8484
85- fn resolve_invoc ( & mut self , invoc : & Invocation ) -> Option < Rc < SyntaxExtension > > {
85+ fn resolve_invoc ( & mut self , scope : Mark , invoc : & Invocation ) -> Option < Rc < SyntaxExtension > > {
8686 let ( name, span) = match invoc. kind {
8787 InvocationKind :: Bang { ref mac, .. } => {
8888 let path = & mac. node . path ;
@@ -97,7 +97,7 @@ impl<'a> base::Resolver for Resolver<'a> {
9797 InvocationKind :: Attr { ref attr, .. } => ( intern ( & * attr. name ( ) ) , attr. span ) ,
9898 } ;
9999
100- let mut module = self . expansion_data [ invoc . mark ( ) . as_u32 ( ) as usize ] . module . clone ( ) ;
100+ let mut module = self . expansion_data [ & scope . as_u32 ( ) ] . module . clone ( ) ;
101101 loop {
102102 if let Some ( ext) = module. macros . borrow ( ) . get ( & name) {
103103 return Some ( ext. clone ( ) ) ;
@@ -135,8 +135,7 @@ struct ExpansionVisitor<'b, 'a: 'b> {
135135
136136impl < ' a , ' b > ExpansionVisitor < ' a , ' b > {
137137 fn visit_invoc ( & mut self , id : ast:: NodeId ) {
138- assert_eq ! ( id. as_u32( ) , self . resolver. expansion_data. len( ) as u32 ) ;
139- self . resolver . expansion_data . push ( ExpansionData {
138+ self . resolver . expansion_data . insert ( id. as_u32 ( ) , ExpansionData {
140139 module : self . current_module . clone ( ) ,
141140 } ) ;
142141 }
0 commit comments