// Check that we do not ICE when structurally comparing types with lifetimes present.
// check-pass

pub struct Record<'a> {
    pub args: &'a [(usize, &'a str)],
}

mod a {
    extern "Rust" {
        fn foo<'a, 'b>(record: &'a super::Record<'b>);

        fn bar<'a, 'b>(record: &'a super::Record<'b>);
    }
}

mod b {
    extern "Rust" {
        fn foo<'a, 'b>(record: &'a super::Record<'b>);

        fn bar<'a, 'b>(record: &'a super::Record<'b>);
    }
}

fn main() {}
