]>
Commit | Line | Data |
---|---|---|
94b46f34 | 1 | // compile-flags:-Zprint-mono-items=eager |
7453a54e SL |
2 | |
3 | #![deny(dead_code)] | |
ff7c6d11 | 4 | #![feature(start)] |
7453a54e SL |
5 | |
6 | fn foo1<T1>(a: T1) -> (T1, u32) { | |
7 | (a, 1) | |
8 | } | |
9 | ||
10 | fn foo2<T1, T2>(a: T1, b: T2) -> (T1, T2) { | |
11 | (a, b) | |
12 | } | |
13 | ||
14 | fn foo3<T1, T2, T3>(a: T1, b: T2, c: T3) -> (T1, T2, T3) { | |
15 | (a, b, c) | |
16 | } | |
17 | ||
18 | // This function should be instantiated even if no used | |
1b1a35ee | 19 | //~ MONO_ITEM fn lifetime_only |
7453a54e SL |
20 | pub fn lifetime_only<'a>(a: &'a u32) -> &'a u32 { |
21 | a | |
22 | } | |
23 | ||
1b1a35ee | 24 | //~ MONO_ITEM fn start |
ff7c6d11 XL |
25 | #[start] |
26 | fn start(_: isize, _: *const *const u8) -> isize { | |
1b1a35ee | 27 | //~ MONO_ITEM fn foo1::<i32> |
7453a54e | 28 | let _ = foo1(2i32); |
1b1a35ee | 29 | //~ MONO_ITEM fn foo1::<i64> |
7453a54e | 30 | let _ = foo1(2i64); |
1b1a35ee | 31 | //~ MONO_ITEM fn foo1::<&str> |
7453a54e | 32 | let _ = foo1("abc"); |
1b1a35ee | 33 | //~ MONO_ITEM fn foo1::<char> |
7453a54e SL |
34 | let _ = foo1('v'); |
35 | ||
1b1a35ee | 36 | //~ MONO_ITEM fn foo2::<i32, i32> |
7453a54e | 37 | let _ = foo2(2i32, 2i32); |
1b1a35ee | 38 | //~ MONO_ITEM fn foo2::<i64, &str> |
7453a54e | 39 | let _ = foo2(2i64, "abc"); |
1b1a35ee | 40 | //~ MONO_ITEM fn foo2::<&str, usize> |
7453a54e | 41 | let _ = foo2("a", 2usize); |
1b1a35ee | 42 | //~ MONO_ITEM fn foo2::<char, ()> |
7453a54e SL |
43 | let _ = foo2('v', ()); |
44 | ||
1b1a35ee | 45 | //~ MONO_ITEM fn foo3::<i32, i32, i32> |
7453a54e | 46 | let _ = foo3(2i32, 2i32, 2i32); |
1b1a35ee | 47 | //~ MONO_ITEM fn foo3::<i64, &str, char> |
7453a54e | 48 | let _ = foo3(2i64, "abc", 'c'); |
1b1a35ee | 49 | //~ MONO_ITEM fn foo3::<i16, &str, usize> |
7453a54e | 50 | let _ = foo3(0i16, "a", 2usize); |
1b1a35ee | 51 | //~ MONO_ITEM fn foo3::<char, (), ()> |
7453a54e | 52 | let _ = foo3('v', (), ()); |
ff7c6d11 XL |
53 | |
54 | 0 | |
7453a54e | 55 | } |