diff --git a/src/librustc/middle/privacy.rs b/src/librustc/middle/privacy.rs index bad6a288294f4..cbc46401e592f 100644 --- a/src/librustc/middle/privacy.rs +++ b/src/librustc/middle/privacy.rs @@ -326,7 +326,7 @@ impl<'a> Visitor<()> for EmbargoVisitor<'a> { } fn visit_foreign_item(&mut self, a: &ast::ForeignItem, _: ()) { - if self.prev_exported && a.vis == ast::Public { + if (self.prev_exported && a.vis == ast::Public) || self.reexports.contains(&a.id) { self.exported_items.insert(a.id); } } diff --git a/src/test/compile-fail/lint-dead-code-3.rs b/src/test/compile-fail/lint-dead-code-3.rs index 4687d66ca5391..e34bfb10a719b 100644 --- a/src/test/compile-fail/lint-dead-code-3.rs +++ b/src/test/compile-fail/lint-dead-code-3.rs @@ -16,6 +16,11 @@ extern crate libc; +pub use x = extern_foo; +extern { + fn extern_foo(); +} + struct Foo; //~ ERROR: code is never used impl Foo { fn foo(&self) { //~ ERROR: code is never used