File tree Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Expand file tree Collapse file tree 1 file changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -727,7 +727,9 @@ impl EmitterWriter {
727
727
cm : & codemap:: CodeMap ,
728
728
sp : Span )
729
729
-> io:: Result < ( ) > {
730
+ let mut last_span = codemap:: DUMMY_SP ;
730
731
let mut sp_opt = Some ( sp) ;
732
+
731
733
while let Some ( sp) = sp_opt {
732
734
sp_opt = try!( cm. with_expn_info ( sp. expn_id , |expn_info| -> io:: Result < _ > {
733
735
match expn_info {
@@ -737,12 +739,16 @@ impl EmitterWriter {
737
739
codemap:: MacroBang ( ..) => ( "" , "!" ) ,
738
740
codemap:: CompilerExpansion ( ..) => ( "" , "" ) ,
739
741
} ;
740
- try!( self . print_diagnostic ( & cm. span_to_string ( ei. call_site ) , Note ,
741
- & format ! ( "in this expansion of {}{}{}" ,
742
- pre,
743
- ei. callee. name( ) ,
744
- post) ,
745
- None ) ) ;
742
+ // Don't print recursive invocations
743
+ if ei. call_site != last_span {
744
+ last_span = ei. call_site ;
745
+ try!( self . print_diagnostic ( & cm. span_to_string ( ei. call_site ) , Note ,
746
+ & format ! ( "in this expansion of {}{}{}" ,
747
+ pre,
748
+ ei. callee. name( ) ,
749
+ post) ,
750
+ None ) ) ;
751
+ }
746
752
Ok ( Some ( ei. call_site ) )
747
753
}
748
754
None => Ok ( None )
You can’t perform that action at this time.
0 commit comments