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