]> git.proxmox.com Git - rustc.git/blame - src/test/codegen-units/item-collection/generic-functions.rs
New upstream version 1.48.0~beta.8+dfsg1
[rustc.git] / src / test / codegen-units / item-collection / generic-functions.rs
CommitLineData
94b46f34 1// compile-flags:-Zprint-mono-items=eager
7453a54e
SL
2
3#![deny(dead_code)]
ff7c6d11 4#![feature(start)]
7453a54e
SL
5
6fn foo1<T1>(a: T1) -> (T1, u32) {
7 (a, 1)
8}
9
10fn foo2<T1, T2>(a: T1, b: T2) -> (T1, T2) {
11 (a, b)
12}
13
14fn 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
20pub fn lifetime_only<'a>(a: &'a u32) -> &'a u32 {
21 a
22}
23
1b1a35ee 24//~ MONO_ITEM fn start
ff7c6d11
XL
25#[start]
26fn 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}