]> git.proxmox.com Git - rustc.git/blobdiff - src/tools/clippy/tests/ui/diverging_sub_expression.rs
New upstream version 1.22.1+dfsg1
[rustc.git] / src / tools / clippy / tests / ui / diverging_sub_expression.rs
diff --git a/src/tools/clippy/tests/ui/diverging_sub_expression.rs b/src/tools/clippy/tests/ui/diverging_sub_expression.rs
new file mode 100644 (file)
index 0000000..7ae531c
--- /dev/null
@@ -0,0 +1,40 @@
+#![feature(plugin, never_type)]
+#![plugin(clippy)]
+#![warn(diverging_sub_expression)]
+#![allow(match_same_arms, logic_bug)]
+
+#[allow(empty_loop)]
+fn diverge() -> ! { loop {} }
+
+struct A;
+
+impl A {
+    fn foo(&self) -> ! { diverge() }
+}
+
+#[allow(unused_variables, unnecessary_operation, short_circuit_statement)]
+fn main() {
+    let b = true;
+    b || diverge();
+    b || A.foo();
+}
+
+#[allow(dead_code, unused_variables)]
+fn foobar() {
+    loop {
+        let x = match 5 {
+            4 => return,
+            5 => continue,
+            6 => true || return,
+            7 => true || continue,
+            8 => break,
+            9 => diverge(),
+            3 => true || diverge(),
+            10 => match 42 {
+                99 => return,
+                _ => true || panic!("boo"),
+            },
+            _ => true || break,
+        };
+    }
+}