about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorUrgau <urgau@numericable.fr>2023-08-10 19:23:17 +0200
committerUrgau <urgau@numericable.fr>2023-08-10 22:57:48 +0200
commitd801a2ff1565c96d016c4ac783f2d83b967d8ae7 (patch)
treefe1608527b4fd858cf542d73b89041880de26567 /tests
parentc435af0d5c47a333c7cb7f359f3586d5c9dab3ab (diff)
downloadrust-d801a2ff1565c96d016c4ac783f2d83b967d8ae7.tar.gz
rust-d801a2ff1565c96d016c4ac783f2d83b967d8ae7.zip
Respect `#[expect]` the same way `#[allow]` is with the `dead_code` lint
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.rs19
-rw-r--r--tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.stderr10
-rw-r--r--tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.rs13
-rw-r--r--tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.stderr10
-rw-r--r--tests/ui/lint/dead-code/allow-or-expect-dead_code-114557.rs18
5 files changed, 70 insertions, 0 deletions
diff --git a/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.rs b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.rs
new file mode 100644
index 00000000000..b71bcd0fab5
--- /dev/null
+++ b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.rs
@@ -0,0 +1,19 @@
+// check-pass
+
+// this test checks that the `dead_code` lint is *NOT* being emited
+// for `foo` as `foo` is being used by `main`, and so the `#[expect]`
+// is unfulfilled
+//
+// it also checks that the `dead_code` lint is also *NOT* emited
+// for `bar` as it's suppresed by the `#[expect]` on `bar`
+
+#![feature(lint_reasons)]
+#![warn(dead_code)] // to override compiletest
+
+fn bar() {}
+
+#[expect(dead_code)]
+//~^ WARN this lint expectation is unfulfilled
+fn foo() { bar() }
+
+fn main() { foo() }
diff --git a/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.stderr b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.stderr
new file mode 100644
index 00000000000..d5c4dabed01
--- /dev/null
+++ b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-2.stderr
@@ -0,0 +1,10 @@
+warning: this lint expectation is unfulfilled
+  --> $DIR/allow-or-expect-dead_code-114557-2.rs:15:10
+   |
+LL | #[expect(dead_code)]
+   |          ^^^^^^^^^
+   |
+   = note: `#[warn(unfulfilled_lint_expectations)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.rs b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.rs
new file mode 100644
index 00000000000..f8a5d31a0f2
--- /dev/null
+++ b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.rs
@@ -0,0 +1,13 @@
+// check-pass
+
+// this test makes sure that the `unfulfilled_lint_expectations` lint
+// is being emited for `foo` as foo is not dead code, it's pub
+
+#![feature(lint_reasons)]
+#![warn(dead_code)] // to override compiletest
+
+#[expect(dead_code)]
+//~^ WARN this lint expectation is unfulfilled
+pub fn foo() {}
+
+fn main() {}
diff --git a/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.stderr b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.stderr
new file mode 100644
index 00000000000..c954a75b394
--- /dev/null
+++ b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557-3.stderr
@@ -0,0 +1,10 @@
+warning: this lint expectation is unfulfilled
+  --> $DIR/allow-or-expect-dead_code-114557-3.rs:9:10
+   |
+LL | #[expect(dead_code)]
+   |          ^^^^^^^^^
+   |
+   = note: `#[warn(unfulfilled_lint_expectations)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557.rs b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557.rs
new file mode 100644
index 00000000000..24fafa3d1b8
--- /dev/null
+++ b/tests/ui/lint/dead-code/allow-or-expect-dead_code-114557.rs
@@ -0,0 +1,18 @@
+// check-pass
+// revisions: allow expect
+
+// this test checks that no matter if we put #[allow(dead_code)]
+// or #[expect(dead_code)], no warning is being emited
+
+#![feature(lint_reasons)]
+#![warn(dead_code)] // to override compiletest
+
+fn f() {}
+
+#[cfg_attr(allow, allow(dead_code))]
+#[cfg_attr(expect, expect(dead_code))]
+fn g() {
+    f();
+}
+
+fn main() {}