extern crate graphviz;
extern crate libc;
extern crate rbml;
-extern crate rustc_llvm;
+pub extern crate rustc_llvm as llvm;
extern crate rustc_back;
extern crate rustc_front;
extern crate rustc_data_structures;
#[cfg(test)]
extern crate test;
-pub use rustc_llvm as llvm;
-
#[macro_use]
mod macros;
}
(_, &Success(name_binding)) if !name_binding.is_import() && directive.is_public => {
- // Disallow reexporting private items, excepting extern crates.
- if !name_binding.is_public() && !name_binding.is_extern_crate() {
- let msg = format!("`{}` is private, and cannot be reexported", source);
- let note_msg =
- format!("Consider declaring type or module `{}` with `pub`", source);
- struct_span_err!(self.resolver.session, directive.span, E0365, "{}", &msg)
- .span_note(directive.span, ¬e_msg)
- .emit();
+ if !name_binding.is_public() {
+ if name_binding.is_extern_crate() {
+ let msg = format!("extern crate `{}` is private, and cannot be reexported \
+ (error E0364), consider declaring with `pub`",
+ source);
+ self.resolver.session.add_lint(lint::builtin::PRIVATE_IN_PUBLIC,
+ directive.id,
+ directive.span,
+ msg);
+ } else {
+ let msg = format!("`{}` is private, and cannot be reexported", source);
+ let note_msg =
+ format!("Consider declaring type or module `{}` with `pub`", source);
+ struct_span_err!(self.resolver.session, directive.span, E0365, "{}", &msg)
+ .span_note(directive.span, ¬e_msg)
+ .emit();
+ }
} else if name_binding.defined_with(DefModifiers::PRIVATE_VARIANT) {
let msg = format!("variant `{}` is private, and cannot be reexported \
(error E0364), consider declaring its enum as `pub`",
extern crate rustc_back;
extern crate rustc_data_structures;
extern crate rustc_front;
-extern crate rustc_llvm as llvm;
+pub extern crate rustc_llvm as llvm;
extern crate rustc_mir;
extern crate rustc_platform_intrinsics as intrinsics;
extern crate serialize;
use time::Duration;
pub use sys::{cvt, cvt_r};
-pub use libc as netc;
+pub extern crate libc as netc;
pub type wrlen_t = size_t;
--- /dev/null
+// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![feature(rustc_attrs)]
+#![allow(dead_code)]
+
+extern crate core;
+pub use core as reexported_core; //~ WARN extern crate `core` is private, and cannot be reexported
+//~^ WARNING hard error
+
+mod m1 {
+ pub use ::E::V; //~ WARN variant `V` is private, and cannot be reexported
+ //~^ WARNING hard error
+}
+
+mod m2 {
+ pub use ::E::{V}; //~ WARN variant `V` is private, and cannot be reexported
+ //~^ WARNING hard error
+}
+
+mod m3 {
+ pub use ::E::V::{self}; //~ WARN variant `V` is private, and cannot be reexported
+ //~^ WARNING hard error
+}
+
+mod m4 {
+ pub use ::E::*; //~ WARN variant `V` is private, and cannot be reexported
+ //~^ WARNING hard error
+}
+
+enum E { V }
+
+#[rustc_error]
+fn main() {} //~ ERROR compilation successful
+++ /dev/null
-// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![feature(rustc_attrs)]
-#![allow(dead_code)]
-
-mod m1 {
- pub use ::E::V; //~ WARN variant `V` is private, and cannot be reexported
- //~^ WARNING hard error
-}
-
-mod m2 {
- pub use ::E::{V}; //~ WARN variant `V` is private, and cannot be reexported
- //~^ WARNING hard error
-}
-
-mod m3 {
- pub use ::E::V::{self}; //~ WARN variant `V` is private, and cannot be reexported
- //~^ WARNING hard error
-}
-
-mod m4 {
- pub use ::E::*; //~ WARN variant `V` is private, and cannot be reexported
- //~^ WARNING hard error
-}
-
-enum E { V }
-
-#[rustc_error]
-fn main() {} //~ ERROR compilation successful