]> git.lizzy.rs Git - rust.git/blob - src/test/ui/expr-fn.rs
Rollup merge of #68247 - GuillaumeGomez:clean-up-err-codes, r=Dylan-DPC
[rust.git] / src / test / ui / expr-fn.rs
1 // run-pass
2
3 fn test_int() {
4     fn f() -> isize { 10 }
5     assert_eq!(f(), 10);
6 }
7
8 fn test_vec() {
9     fn f() -> Vec<isize> { vec![10, 11] }
10     let vect = f();
11     assert_eq!(vect[1], 11);
12 }
13
14 fn test_generic() {
15     fn f<T>(t: T) -> T { t }
16     assert_eq!(f(10), 10);
17 }
18
19 fn test_alt() {
20     fn f() -> isize { match true { false => { 10 } true => { 20 } } }
21     assert_eq!(f(), 20);
22 }
23
24 fn test_if() {
25     fn f() -> isize { if true { 10 } else { 20 } }
26     assert_eq!(f(), 10);
27 }
28
29 fn test_block() {
30     fn f() -> isize { { 10 } }
31     assert_eq!(f(), 10);
32 }
33
34 fn test_ret() {
35     fn f() -> isize {
36         return 10 // no semi
37
38     }
39     assert_eq!(f(), 10);
40 }
41
42
43 // From issue #372
44 fn test_372() {
45     fn f() -> isize { let x = { 3 }; x }
46     assert_eq!(f(), 3);
47 }
48
49 fn test_nil() { () }
50
51 pub fn main() {
52     test_int();
53     test_vec();
54     test_generic();
55     test_alt();
56     test_if();
57     test_block();
58     test_ret();
59     test_372();
60     test_nil();
61 }