File tree 5 files changed +19
-9
lines changed
5 files changed +19
-9
lines changed Original file line number Diff line number Diff line change @@ -212,7 +212,12 @@ pub trait Emitter {
212
212
fn emit_future_breakage_report ( & mut self , _diags : Vec < Diagnostic > ) { }
213
213
214
214
/// Emit list of unused externs
215
- fn emit_unused_externs ( & mut self , _lint_level : & str , _unused_externs : & [ & str ] ) { }
215
+ fn emit_unused_externs (
216
+ & mut self ,
217
+ _lint_level : rustc_lint_defs:: Level ,
218
+ _unused_externs : & [ & str ] ,
219
+ ) {
220
+ }
216
221
217
222
/// Checks if should show explanations about "rustc --explain"
218
223
fn should_show_explain ( & self ) -> bool {
Original file line number Diff line number Diff line change @@ -171,7 +171,8 @@ impl Emitter for JsonEmitter {
171
171
}
172
172
}
173
173
174
- fn emit_unused_externs ( & mut self , lint_level : & str , unused_externs : & [ & str ] ) {
174
+ fn emit_unused_externs ( & mut self , lint_level : rustc_lint_defs:: Level , unused_externs : & [ & str ] ) {
175
+ let lint_level = lint_level. as_str ( ) ;
175
176
let data = UnusedExterns { lint_level, unused_extern_names : unused_externs } ;
176
177
let result = if self . pretty {
177
178
writeln ! ( & mut self . dst, "{}" , as_pretty_json( & data) )
Original file line number Diff line number Diff line change @@ -969,10 +969,10 @@ impl Handler {
969
969
self . inner . borrow_mut ( ) . emitter . emit_future_breakage_report ( diags)
970
970
}
971
971
972
- pub fn emit_unused_externs ( & self , lint_level : & str , unused_externs : & [ & str ] ) {
972
+ pub fn emit_unused_externs ( & self , lint_level : rustc_lint_defs :: Level , unused_externs : & [ & str ] ) {
973
973
let mut inner = self . inner . borrow_mut ( ) ;
974
974
975
- if lint_level == "deny" || lint_level == "forbid" {
975
+ if lint_level. is_error ( ) {
976
976
inner. bump_err_count ( ) ;
977
977
}
978
978
@@ -1147,7 +1147,7 @@ impl HandlerInner {
1147
1147
self . emitter . emit_artifact_notification ( path, artifact_type) ;
1148
1148
}
1149
1149
1150
- fn emit_unused_externs ( & mut self , lint_level : & str , unused_externs : & [ & str ] ) {
1150
+ fn emit_unused_externs ( & mut self , lint_level : rustc_lint_defs :: Level , unused_externs : & [ & str ] ) {
1151
1151
self . emitter . emit_unused_externs ( lint_level, unused_externs) ;
1152
1152
}
1153
1153
Original file line number Diff line number Diff line change @@ -214,6 +214,13 @@ impl Level {
214
214
_ => None ,
215
215
}
216
216
}
217
+
218
+ pub fn is_error ( self ) -> bool {
219
+ match self {
220
+ Level :: Allow | Level :: Expect ( _) | Level :: Warn | Level :: ForceWarn => false ,
221
+ Level :: Deny | Level :: Forbid => true ,
222
+ }
223
+ }
217
224
}
218
225
219
226
/// Specification of a single lint.
Original file line number Diff line number Diff line change @@ -208,10 +208,7 @@ impl CStore {
208
208
let unused_externs =
209
209
self . unused_externs . iter ( ) . map ( |ident| ident. to_ident_string ( ) ) . collect :: < Vec < _ > > ( ) ;
210
210
let unused_externs = unused_externs. iter ( ) . map ( String :: as_str) . collect :: < Vec < & str > > ( ) ;
211
- tcx. sess
212
- . parse_sess
213
- . span_diagnostic
214
- . emit_unused_externs ( level. as_str ( ) , & unused_externs) ;
211
+ tcx. sess . parse_sess . span_diagnostic . emit_unused_externs ( level, & unused_externs) ;
215
212
}
216
213
}
217
214
}
You can’t perform that action at this time.
0 commit comments