]> git.lizzy.rs Git - rust.git/blob - src/test/codegen-units/partitioning/inlining-from-extern-crate.rs
remove pat2021
[rust.git] / src / test / codegen-units / partitioning / inlining-from-extern-crate.rs
1 //
2 // We specify -C incremental here because we want to test the partitioning for
3 // incremental compilation
4 // compile-flags:-Zprint-mono-items=lazy -Cincremental=tmp/partitioning-tests/inlining-from-extern-crate
5 // compile-flags:-Zinline-in-all-cgus
6
7 #![crate_type="lib"]
8
9 // aux-build:cgu_explicit_inlining.rs
10 extern crate cgu_explicit_inlining;
11
12 // This test makes sure that items inlined from external crates are privately
13 // instantiated in every codegen unit they are used in.
14
15 //~ MONO_ITEM fn cgu_explicit_inlining::inlined @@ inlining_from_extern_crate[Internal] inlining_from_extern_crate-mod1[Internal]
16 //~ MONO_ITEM fn cgu_explicit_inlining::always_inlined @@ inlining_from_extern_crate[Internal] inlining_from_extern_crate-mod2[Internal]
17
18 //~ MONO_ITEM fn user @@ inlining_from_extern_crate[External]
19 pub fn user()
20 {
21     cgu_explicit_inlining::inlined();
22     cgu_explicit_inlining::always_inlined();
23
24     // does not generate a monomorphization in this crate
25     cgu_explicit_inlining::never_inlined();
26 }
27
28 pub mod mod1 {
29     use cgu_explicit_inlining;
30
31     //~ MONO_ITEM fn mod1::user @@ inlining_from_extern_crate-mod1[External]
32     pub fn user()
33     {
34         cgu_explicit_inlining::inlined();
35
36         // does not generate a monomorphization in this crate
37         cgu_explicit_inlining::never_inlined();
38     }
39 }
40
41 pub mod mod2 {
42     use cgu_explicit_inlining;
43
44     //~ MONO_ITEM fn mod2::user @@ inlining_from_extern_crate-mod2[External]
45     pub fn user()
46     {
47         cgu_explicit_inlining::always_inlined();
48
49         // does not generate a monomorphization in this crate
50         cgu_explicit_inlining::never_inlined();
51     }
52 }