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