@@ -9,7 +9,7 @@ use std::time::{Duration, Instant};
9
9
10
10
use syntax:: ast;
11
11
use syntax:: errors:: emitter:: { ColorConfig , Emitter , EmitterWriter } ;
12
- use syntax:: errors:: { DiagnosticBuilder , Handler , HandlerFlags } ;
12
+ use syntax:: errors:: { DiagnosticBuilder , Handler } ;
13
13
use syntax:: parse:: { self , ParseSess } ;
14
14
use syntax:: source_map:: { FilePathMapping , SourceMap , Span , DUMMY_SP } ;
15
15
@@ -81,7 +81,7 @@ fn format_project<T: FormatHandler>(
81
81
let mut parse_session = make_parse_sess (
82
82
source_map. clone ( ) ,
83
83
config,
84
- ignore_path_set . clone ( ) ,
84
+ Rc :: clone ( & ignore_path_set ) ,
85
85
can_reset. clone ( ) ,
86
86
) ;
87
87
let mut report = FormatReport :: new ( ) ;
@@ -705,9 +705,8 @@ struct SilentOnIgnoredFilesEmitter {
705
705
ignore_path_set : Rc < IgnorePathSet > ,
706
706
source_map : Rc < SourceMap > ,
707
707
emitter : EmitterWriter ,
708
- can_reset : bool ,
709
708
has_non_ignorable_parser_errors : bool ,
710
- parser_error_resetter : Rc < RefCell < bool > > ,
709
+ can_reset : Rc < RefCell < bool > > ,
711
710
}
712
711
713
712
impl Emitter for SilentOnIgnoredFilesEmitter {
@@ -720,9 +719,8 @@ impl Emitter for SilentOnIgnoredFilesEmitter {
720
719
. ignore_path_set
721
720
. is_match ( & FileName :: Real ( path. to_path_buf ( ) ) )
722
721
{
723
- if !self . has_non_ignorable_parser_errors && !self . can_reset {
724
- self . can_reset = true ;
725
- * self . parser_error_resetter . borrow_mut ( ) = true ;
722
+ if !self . has_non_ignorable_parser_errors {
723
+ * self . can_reset . borrow_mut ( ) = true ;
726
724
}
727
725
return ;
728
726
}
@@ -732,10 +730,7 @@ impl Emitter for SilentOnIgnoredFilesEmitter {
732
730
}
733
731
734
732
self . has_non_ignorable_parser_errors = true ;
735
- if self . can_reset {
736
- * self . parser_error_resetter . borrow_mut ( ) = false ;
737
- }
738
- self . can_reset = false ;
733
+ * self . can_reset . borrow_mut ( ) = false ;
739
734
self . emitter . emit_diagnostic ( db) ;
740
735
}
741
736
}
@@ -755,7 +750,7 @@ fn make_parse_sess(
755
750
source_map : Rc < SourceMap > ,
756
751
config : & Config ,
757
752
ignore_path_set : Rc < IgnorePathSet > ,
758
- parser_error_resetter : Rc < RefCell < bool > > ,
753
+ can_reset : Rc < RefCell < bool > > ,
759
754
) -> ParseSess {
760
755
let tty_handler = if config. hide_parse_errors ( ) {
761
756
let silent_emitter = silent_emitter ( ) ;
@@ -772,20 +767,12 @@ fn make_parse_sess(
772
767
EmitterWriter :: stderr ( color_cfg, Some ( source_map. clone ( ) ) , false , false , None ) ;
773
768
let emitter = Box :: new ( SilentOnIgnoredFilesEmitter {
774
769
has_non_ignorable_parser_errors : false ,
775
- can_reset : false ,
776
770
ignore_path_set : ignore_path_set,
777
- source_map : source_map . clone ( ) ,
771
+ source_map : Rc :: clone ( & source_map ) ,
778
772
emitter : emitter_writer,
779
- parser_error_resetter ,
773
+ can_reset ,
780
774
} ) ;
781
- Handler :: with_emitter_and_flags (
782
- emitter,
783
- HandlerFlags {
784
- can_emit_warnings : false ,
785
- treat_err_as_bug : None ,
786
- ..Default :: default ( )
787
- } ,
788
- )
775
+ Handler :: with_emitter ( true , None , emitter)
789
776
} ;
790
777
791
778
ParseSess :: with_span_handler ( tty_handler, source_map)
0 commit comments