about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2022-04-15 00:37:40 -0700
committerJeremy Fitzhardinge <jsgf@fb.com>2022-04-27 10:04:25 -0700
commit39f2f1846376c1522b2264069c94a19ef42ebb98 (patch)
tree12f1ce0919b74b148020a8db55ed5915091baf7f
parent2373599b82c4723ee738fe0408142d6bfcbb980c (diff)
downloadrust-39f2f1846376c1522b2264069c94a19ef42ebb98.tar.gz
rust-39f2f1846376c1522b2264069c94a19ef42ebb98.zip
Make --json unused-extern deny/forbid level messages cause exit with error status
Closes: https://github.com/rust-lang/rust/issues/96068
-rw-r--r--compiler/rustc_errors/src/lib.rs8
-rw-r--r--src/test/ui/unused-crate-deps/deny-cmdline-json.rs2
-rw-r--r--src/test/ui/unused-crate-deps/deny-cmdline.rs2
-rw-r--r--src/test/ui/unused-crate-deps/warn-cmdline-json.rs2
4 files changed, 10 insertions, 4 deletions
diff --git a/compiler/rustc_errors/src/lib.rs b/compiler/rustc_errors/src/lib.rs
index 4e6ab0edf66..9f126d25a8d 100644
--- a/compiler/rustc_errors/src/lib.rs
+++ b/compiler/rustc_errors/src/lib.rs
@@ -970,7 +970,13 @@ impl Handler {
     }
 
     pub fn emit_unused_externs(&self, lint_level: &str, unused_externs: &[&str]) {
-        self.inner.borrow_mut().emit_unused_externs(lint_level, unused_externs)
+        let mut inner = self.inner.borrow_mut();
+
+        if lint_level == "deny" || lint_level == "forbid" {
+            inner.bump_err_count();
+        }
+
+        inner.emit_unused_externs(lint_level, unused_externs)
     }
 
     pub fn update_unstable_expectation_id(
diff --git a/src/test/ui/unused-crate-deps/deny-cmdline-json.rs b/src/test/ui/unused-crate-deps/deny-cmdline-json.rs
index 9a95780bd08..2b369dee5a0 100644
--- a/src/test/ui/unused-crate-deps/deny-cmdline-json.rs
+++ b/src/test/ui/unused-crate-deps/deny-cmdline-json.rs
@@ -1,4 +1,4 @@
-// Check for unused crate dep, no path
+// Check for unused crate dep, json event, deny, expect compile failure
 
 // edition:2018
 // compile-flags: -Dunused-crate-dependencies  -Zunstable-options --json unused-externs --error-format=json
diff --git a/src/test/ui/unused-crate-deps/deny-cmdline.rs b/src/test/ui/unused-crate-deps/deny-cmdline.rs
index 17c6e1bf193..69e28b3319a 100644
--- a/src/test/ui/unused-crate-deps/deny-cmdline.rs
+++ b/src/test/ui/unused-crate-deps/deny-cmdline.rs
@@ -1,4 +1,4 @@
-// Check for unused crate dep, no path
+// Check for unused crate dep, deny, expect failure
 
 // edition:2018
 // compile-flags: -Dunused-crate-dependencies
diff --git a/src/test/ui/unused-crate-deps/warn-cmdline-json.rs b/src/test/ui/unused-crate-deps/warn-cmdline-json.rs
index a845fe6fd24..4826c0062d0 100644
--- a/src/test/ui/unused-crate-deps/warn-cmdline-json.rs
+++ b/src/test/ui/unused-crate-deps/warn-cmdline-json.rs
@@ -1,4 +1,4 @@
-// Check for unused crate dep, no path
+// Check for unused crate dep, warn, json event, expect pass
 
 // edition:2018
 // check-pass