@@ -727,30 +727,34 @@ impl EmitterWriter {
727
727
cm : & codemap:: CodeMap ,
728
728
sp : Span )
729
729
-> io:: Result < ( ) > {
730
- let cs = try!( cm. with_expn_info ( sp. expn_id , |expn_info| -> io:: Result < _ > {
731
- match expn_info {
732
- Some ( ei) => {
733
- let ss = ei. callee . span . map_or ( String :: new ( ) ,
734
- |span| cm. span_to_string ( span) ) ;
735
- let ( pre, post) = match ei. callee . format {
736
- codemap:: MacroAttribute ( ..) => ( "#[" , "]" ) ,
737
- codemap:: MacroBang ( ..) => ( "" , "!" ) ,
738
- codemap:: CompilerExpansion ( ..) => ( "" , "" ) ,
739
- } ;
740
- try!( self . print_diagnostic ( & ss, Note ,
741
- & format ! ( "in expansion of {}{}{}" ,
742
- pre,
743
- ei. callee. name( ) ,
744
- post) ,
745
- None ) ) ;
746
- let ss = cm. span_to_string ( ei. call_site ) ;
747
- try!( self . print_diagnostic ( & ss, Note , "expansion site" , None ) ) ;
748
- Ok ( Some ( ei. call_site ) )
730
+ let mut sp_opt = Some ( sp) ;
731
+ while let Some ( sp) = sp_opt {
732
+ sp_opt = try!( cm. with_expn_info ( sp. expn_id , |expn_info| -> io:: Result < _ > {
733
+ match expn_info {
734
+ Some ( ei) => {
735
+ let ss = ei. callee . span . map_or ( String :: new ( ) ,
736
+ |span| cm. span_to_string ( span) ) ;
737
+ let ( pre, post) = match ei. callee . format {
738
+ codemap:: MacroAttribute ( ..) => ( "#[" , "]" ) ,
739
+ codemap:: MacroBang ( ..) => ( "" , "!" ) ,
740
+ codemap:: CompilerExpansion ( ..) => ( "" , "" ) ,
741
+ } ;
742
+ try!( self . print_diagnostic ( & ss, Note ,
743
+ & format ! ( "in expansion of {}{}{}" ,
744
+ pre,
745
+ ei. callee. name( ) ,
746
+ post) ,
747
+ None ) ) ;
748
+ let ss = cm. span_to_string ( ei. call_site ) ;
749
+ try!( self . print_diagnostic ( & ss, Note , "expansion site" , None ) ) ;
750
+ Ok ( Some ( ei. call_site ) )
751
+ }
752
+ None => Ok ( None )
749
753
}
750
- None => Ok ( None )
754
+ } ) ) ;
751
755
}
752
- } ) ) ;
753
- cs . map_or ( Ok ( ( ) ) , |call_site| self . print_macro_backtrace ( cm , call_site ) )
756
+
757
+ Ok ( ( ) )
754
758
}
755
759
}
756
760
0 commit comments