summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/inline/cycle.rs
blob: 350724235ba04b44339e5276f671f2f8a1cc3fe4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
// compile-flags: -Zinline-mir-hint-threshold=1000

// EMIT_MIR cycle.f.Inline.diff
#[inline(always)]
fn f(g: impl Fn()) {
    // CHECK-LABEL: fn f(
    // CHECK-NOT: inlined
    g();
}

// EMIT_MIR cycle.g.Inline.diff
#[inline(always)]
fn g() {
    // CHECK-LABEL: fn g(
    // CHECK-NOT: inlined
    // CHECK: (inlined f::<fn() {main}>)
    // CHECK-NOT: inlined
    f(main);
}

// EMIT_MIR cycle.main.Inline.diff
fn main() {
    // CHECK-LABEL: fn main(
    // CHECK-NOT: inlined
    // CHECK: (inlined f::<fn() {g}>)
    // CHECK-NOT: inlined
    f(g);
}