summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/issue-70819-dont-override-forbid-in-same-scope.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/lint/issue-70819-dont-override-forbid-in-same-scope.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/lint/issue-70819-dont-override-forbid-in-same-scope.rs')
-rw-r--r--tests/ui/lint/issue-70819-dont-override-forbid-in-same-scope.rs50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/ui/lint/issue-70819-dont-override-forbid-in-same-scope.rs b/tests/ui/lint/issue-70819-dont-override-forbid-in-same-scope.rs
new file mode 100644
index 000000000..b4fc33174
--- /dev/null
+++ b/tests/ui/lint/issue-70819-dont-override-forbid-in-same-scope.rs
@@ -0,0 +1,50 @@
+// This test is checking that you cannot override a `forbid` by adding in other
+// attributes later in the same scope. (We already ensure that you cannot
+// override it in nested scopes).
+
+// If you turn off deduplicate diagnostics (which rustc turns on by default but
+// compiletest turns off when it runs ui tests), then the errors are
+// (unfortunately) repeated here because the checking is done as we read in the
+// errors, and currently that happens two or three different times, depending on
+// compiler flags.
+//
+// I decided avoiding the redundant output was not worth the time in engineering
+// effort for bug like this, which 1. end users are unlikely to run into in the
+// first place, and 2. they won't see the redundant output anyway.
+
+// compile-flags: -Z deduplicate-diagnostics=yes
+
+#![forbid(forbidden_lint_groups)]
+
+fn forbid_first(num: i32) -> i32 {
+ #![forbid(unused)]
+ #![deny(unused)]
+ //~^ ERROR: deny(unused) incompatible with previous forbid
+ //~| WARNING being phased out
+ #![warn(unused)]
+ #![allow(unused)]
+
+ num * num
+}
+
+fn forbid_last(num: i32) -> i32 {
+ #![deny(unused)]
+ #![warn(unused)]
+ #![allow(unused)]
+ #![forbid(unused)]
+
+ num * num
+}
+
+fn forbid_multiple(num: i32) -> i32 {
+ #![forbid(unused)]
+ #![forbid(unused)]
+
+ num * num
+}
+
+fn main() {
+ forbid_first(10);
+ forbid_last(10);
+ forbid_multiple(10);
+}