@@ -112,7 +112,7 @@ impl Mark {
112112
113113    #[ inline]  
114114    pub  fn  expn_info ( self )  -> Option < ExpnInfo >  { 
115-         HygieneData :: with ( |data| data. expn_info ( self ) ) 
115+         HygieneData :: with ( |data| data. expn_info ( self ) . cloned ( ) ) 
116116    } 
117117
118118    #[ inline]  
@@ -204,8 +204,8 @@ impl HygieneData {
204204        GLOBALS . with ( |globals| f ( & mut  * globals. hygiene_data . borrow_mut ( ) ) ) 
205205    } 
206206
207-     fn  expn_info ( & self ,  mark :  Mark )  -> Option < ExpnInfo >  { 
208-         self . marks [ mark. 0  as  usize ] . expn_info . clone ( ) 
207+     fn  expn_info ( & self ,  mark :  Mark )  -> Option < & ExpnInfo >  { 
208+         self . marks [ mark. 0  as  usize ] . expn_info . as_ref ( ) 
209209    } 
210210
211211    fn  is_descendant_of ( & self ,  mut  mark :  Mark ,  ancestor :  Mark )  -> bool  { 
@@ -598,7 +598,7 @@ impl SyntaxContext {
598598     /// `ctxt.outer().expn_info()`. 
599599     #[ inline]  
600600    pub  fn  outer_expn_info ( self )  -> Option < ExpnInfo >  { 
601-         HygieneData :: with ( |data| data. expn_info ( data. outer ( self ) ) ) 
601+         HygieneData :: with ( |data| data. expn_info ( data. outer ( self ) ) . cloned ( ) ) 
602602    } 
603603
604604    /// `ctxt.outer_and_expn_info()` is equivalent to but faster than 
@@ -607,7 +607,7 @@ impl SyntaxContext {
607607    pub  fn  outer_and_expn_info ( self )  -> ( Mark ,  Option < ExpnInfo > )  { 
608608        HygieneData :: with ( |data| { 
609609            let  outer = data. outer ( self ) ; 
610-             ( outer,  data. expn_info ( outer) ) 
610+             ( outer,  data. expn_info ( outer) . cloned ( ) ) 
611611        } ) 
612612    } 
613613
0 commit comments