]> git.lizzy.rs Git - rust.git/blob - tests/compile-fail/needless_return.rs
Fix deploy.sh III
[rust.git] / tests / compile-fail / needless_return.rs
1 #![feature(plugin)]
2 #![plugin(clippy)]
3
4 #![deny(needless_return)]
5
6 fn test_end_of_fn() -> bool {
7     if true {
8         // no error!
9         return true;
10     }
11     return true;
12     //~^ ERROR unneeded return statement
13     //~| HELP remove `return` as shown
14     //~| SUGGESTION true
15 }
16
17 fn test_no_semicolon() -> bool {
18     return true
19     //~^ ERROR unneeded return statement
20     //~| HELP remove `return` as shown
21     //~| SUGGESTION true
22 }
23
24 fn test_if_block() -> bool {
25     if true {
26         return true;
27         //~^ ERROR unneeded return statement
28         //~| HELP remove `return` as shown
29         //~| SUGGESTION true
30     } else {
31         return false;
32         //~^ ERROR unneeded return statement
33         //~| HELP remove `return` as shown
34         //~| SUGGESTION false
35     }
36 }
37
38 fn test_match(x: bool) -> bool {
39     match x {
40         true => return false,
41         //~^ ERROR unneeded return statement
42         //~| HELP remove `return` as shown
43         //~| SUGGESTION false
44
45         false => {
46             return true;
47             //~^ ERROR unneeded return statement
48             //~| HELP remove `return` as shown
49             //~| SUGGESTION true
50         }
51     }
52 }
53
54 fn test_closure() {
55     let _ = || {
56         return true;
57         //~^ ERROR unneeded return statement
58         //~| HELP remove `return` as shown
59         //~| SUGGESTION true
60     };
61 }
62
63 fn main() {
64     let _ = test_end_of_fn();
65     let _ = test_no_semicolon();
66     let _ = test_if_block();
67     let _ = test_match(true);
68     test_closure();
69 }