]> git.lizzy.rs Git - rust.git/commitdiff
Test for #[must_use] on traits
authorvarkor <github@varkor.com>
Sat, 3 Nov 2018 20:08:38 +0000 (20:08 +0000)
committervarkor <github@varkor.com>
Mon, 19 Nov 2018 17:41:10 +0000 (17:41 +0000)
src/test/ui/lint/must_use-trait.rs [new file with mode: 0644]
src/test/ui/lint/must_use-trait.stderr [new file with mode: 0644]

diff --git a/src/test/ui/lint/must_use-trait.rs b/src/test/ui/lint/must_use-trait.rs
new file mode 100644 (file)
index 0000000..23df4fa
--- /dev/null
@@ -0,0 +1,22 @@
+#![deny(unused_must_use)]
+
+#[must_use]
+trait Critical {}
+
+trait NotSoCritical {}
+
+trait DecidedlyUnimportant {}
+
+struct Anon;
+
+impl Critical for Anon {}
+impl NotSoCritical for Anon {}
+impl DecidedlyUnimportant for Anon {}
+
+fn get_critical() -> impl NotSoCritical + Critical + DecidedlyUnimportant {
+    Anon {}
+}
+
+fn main() {
+    get_critical(); //~ ERROR unused implementer of `Critical` that must be used
+}
diff --git a/src/test/ui/lint/must_use-trait.stderr b/src/test/ui/lint/must_use-trait.stderr
new file mode 100644 (file)
index 0000000..94f5f4f
--- /dev/null
@@ -0,0 +1,14 @@
+error: unused implementer of `Critical` that must be used
+  --> $DIR/must_use-trait.rs:21:5
+   |
+LL |     get_critical(); //~ ERROR unused implementer of `Critical` that must be used
+   |     ^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/must_use-trait.rs:1:9
+   |
+LL | #![deny(unused_must_use)]
+   |         ^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+