]> git.lizzy.rs Git - rust.git/blob - tests/ui/diverging_sub_expression.rs
Merge pull request #2977 from flip1995/tool_lints
[rust.git] / tests / ui / diverging_sub_expression.rs
1 #![feature(tool_lints)]
2
3 #![feature(never_type)]
4
5 #![warn(clippy::diverging_sub_expression)]
6 #![allow(clippy::match_same_arms, clippy::logic_bug)]
7
8 #[allow(clippy::empty_loop)]
9 fn diverge() -> ! { loop {} }
10
11 struct A;
12
13 impl A {
14     fn foo(&self) -> ! { diverge() }
15 }
16
17 #[allow(unused_variables, clippy::unnecessary_operation, clippy::short_circuit_statement)]
18 fn main() {
19     let b = true;
20     b || diverge();
21     b || A.foo();
22 }
23
24 #[allow(dead_code, unused_variables)]
25 fn foobar() {
26     loop {
27         let x = match 5 {
28             4 => return,
29             5 => continue,
30             6 => true || return,
31             7 => true || continue,
32             8 => break,
33             9 => diverge(),
34             3 => true || diverge(),
35             10 => match 42 {
36                 99 => return,
37                 _ => true || panic!("boo"),
38             },
39             _ => true || break,
40         };
41     }
42 }