//@ run-pass | |
// Make sure nested functions are separate, even if they have | |
// equal name. | |
// | |
// Issue #8587 | |
pub struct X; | |
impl X { | |
fn f(&self) -> isize { | |
#[inline(never)] | |
fn inner() -> isize { | |
0 | |
} | |
inner() | |
} | |
fn g(&self) -> isize { | |
#[inline(never)] | |
fn inner_2() -> isize { | |
1 | |
} | |
inner_2() | |
} | |
fn h(&self) -> isize { | |
#[inline(never)] | |
fn inner() -> isize { | |
2 | |
} | |
inner() | |
} | |
} | |
pub fn main() { | |
let n = X; | |
assert_eq!(n.f(), 0); | |
assert_eq!(n.g(), 1); | |
// This test `h` used to fail. | |
assert_eq!(n.h(), 2); | |
} |