// run-pass
// pretty-expanded FIXME #23616

#![feature(box_syntax)]

// This is a regression test that the metadata for the
// name_pool::methods impl in the other crate is reachable from this
// crate.

// aux-build:crate-method-reexport-grrrrrrr2.rs

extern crate crate_method_reexport_grrrrrrr2;

pub fn main() {
    use crate_method_reexport_grrrrrrr2::rust::add;
    use crate_method_reexport_grrrrrrr2::rust::cx;
    let x: Box<_> = box ();
    x.cx();
    let y = ();
    y.add("hi".to_string());
}
