| //@ run-pass | |
| #![allow(unused_braces)] | |
| fn test_int() { | |
| fn f() -> isize { 10 } | |
| assert_eq!(f(), 10); | |
| } | |
| fn test_vec() { | |
| fn f() -> Vec<isize> { vec![10, 11] } | |
| let vect = f(); | |
| assert_eq!(vect[1], 11); | |
| } | |
| fn test_generic() { | |
| fn f<T>(t: T) -> T { t } | |
| assert_eq!(f(10), 10); | |
| } | |
| fn test_alt() { | |
| fn f() -> isize { match true { false => { 10 } true => { 20 } } } | |
| assert_eq!(f(), 20); | |
| } | |
| fn test_if() { | |
| fn f() -> isize { if true { 10 } else { 20 } } | |
| assert_eq!(f(), 10); | |
| } | |
| fn test_block() { | |
| fn f() -> isize { { 10 } } | |
| assert_eq!(f(), 10); | |
| } | |
| fn test_ret() { | |
| fn f() -> isize { | |
| return 10 // no semi | |
| } | |
| assert_eq!(f(), 10); | |
| } | |
| // From issue #372 | |
| fn test_372() { | |
| fn f() -> isize { let x = { 3 }; x } | |
| assert_eq!(f(), 3); | |
| } | |
| fn test_nil() { () } | |
| pub fn main() { | |
| test_int(); | |
| test_vec(); | |
| test_generic(); | |
| test_alt(); | |
| test_if(); | |
| test_block(); | |
| test_ret(); | |
| test_372(); | |
| test_nil(); | |
| } |