]> git.lizzy.rs Git - rust.git/blob - tests/run-pass/calls.rs
Handle size_of_val for slice types.
[rust.git] / tests / run-pass / calls.rs
1 #![feature(custom_attribute)]
2 #![allow(dead_code, unused_attributes)]
3
4 #[miri_run]
5 fn call() -> i32 {
6     fn increment(x: i32) -> i32 {
7         x + 1
8     }
9     increment(1)
10 }
11
12 #[miri_run]
13 fn factorial_recursive() -> i64 {
14     fn fact(n: i64) -> i64 {
15         if n == 0 {
16             1
17         } else {
18             n * fact(n - 1)
19         }
20     }
21     fact(10)
22 }
23
24 #[miri_run]
25 fn call_generic() -> (i16, bool) {
26     fn id<T>(t: T) -> T { t }
27     (id(42), id(true))
28 }
29
30 // Test calling a very simple function from the standard library.
31 #[miri_run]
32 fn cross_crate_fn_call() -> i64 {
33     if 1i32.is_positive() { 1 } else { 0 }
34 }
35
36 #[miri_run]
37 fn main() {
38     assert_eq!(call(), 2);
39     assert_eq!(factorial_recursive(), 3628800);
40     assert_eq!(call_generic(), (42, true));
41     assert_eq!(cross_crate_fn_call(), 1);
42 }