@@ -143,6 +143,7 @@ impl SpanHandler {
143
143
pub struct Handler {
144
144
err_count : Cell < usize > ,
145
145
emit : RefCell < Box < Emitter + Send > > ,
146
+ pub can_emit_warnings : bool
146
147
}
147
148
148
149
impl Handler {
@@ -195,17 +196,20 @@ impl Handler {
195
196
cmsp : Option < ( & codemap:: CodeMap , Span ) > ,
196
197
msg : & str ,
197
198
lvl : Level ) {
199
+ if lvl == Warning && !self . can_emit_warnings { return }
198
200
self . emit . borrow_mut ( ) . emit ( cmsp, msg, None , lvl) ;
199
201
}
200
202
pub fn emit_with_code ( & self ,
201
203
cmsp : Option < ( & codemap:: CodeMap , Span ) > ,
202
204
msg : & str ,
203
205
code : & str ,
204
206
lvl : Level ) {
207
+ if lvl == Warning && !self . can_emit_warnings { return }
205
208
self . emit . borrow_mut ( ) . emit ( cmsp, msg, Some ( code) , lvl) ;
206
209
}
207
210
pub fn custom_emit ( & self , cm : & codemap:: CodeMap ,
208
211
sp : RenderSpan , msg : & str , lvl : Level ) {
212
+ if lvl == Warning && !self . can_emit_warnings { return }
209
213
self . emit . borrow_mut ( ) . custom_emit ( cm, sp, msg, lvl) ;
210
214
}
211
215
}
@@ -218,14 +222,16 @@ pub fn mk_span_handler(handler: Handler, cm: codemap::CodeMap) -> SpanHandler {
218
222
}
219
223
220
224
pub fn default_handler ( color_config : ColorConfig ,
221
- registry : Option < diagnostics:: registry:: Registry > ) -> Handler {
222
- mk_handler ( box EmitterWriter :: stderr ( color_config, registry) )
225
+ registry : Option < diagnostics:: registry:: Registry > ,
226
+ can_emit_warnings : bool ) -> Handler {
227
+ mk_handler ( can_emit_warnings, box EmitterWriter :: stderr ( color_config, registry) )
223
228
}
224
229
225
- pub fn mk_handler ( e : Box < Emitter + Send > ) -> Handler {
230
+ pub fn mk_handler ( can_emit_warnings : bool , e : Box < Emitter + Send > ) -> Handler {
226
231
Handler {
227
232
err_count : Cell :: new ( 0 ) ,
228
233
emit : RefCell :: new ( e) ,
234
+ can_emit_warnings : can_emit_warnings
229
235
}
230
236
}
231
237
0 commit comments