Reexport -> re-export in error messages

This commit is contained in:
Carol (Nichols || Goulding) 2018-01-12 16:41:45 -05:00
parent c698496f84
commit 90fcd4476c
No known key found for this signature in database
GPG key ID: D04B39A6CA243902
18 changed files with 44 additions and 41 deletions

View file

@ -127,7 +127,7 @@
declare_lint! {
pub PUB_USE_OF_PRIVATE_EXTERN_CRATE,
Deny,
"detect public reexports of private extern crates"
"detect public re-exports of private extern crates"
}
declare_lint! {

View file

@ -683,7 +683,7 @@ fn process_legacy_macro_imports(&mut self, item: &Item, module: Module<'a>, expa
let (def, vis) = (binding.def(), binding.vis);
self.macro_exports.push(Export { ident, def, vis, span, is_import: true });
} else {
span_err!(self.session, span, E0470, "reexported macro not found");
span_err!(self.session, span, E0470, "re-exported macro not found");
}
}
used
@ -729,7 +729,7 @@ fn legacy_macro_imports(&mut self, attrs: &[ast::Attribute]) -> LegacyMacroImpor
}
} else if attr.check_name("macro_reexport") {
let bad_macro_reexport = |this: &mut Self, span| {
span_err!(this.session, span, E0467, "bad macro reexport");
span_err!(this.session, span, E0467, "bad macro re-export");
};
if let Some(names) = attr.meta_item_list() {
for attr in names {

View file

@ -1374,7 +1374,7 @@ macro_rules! get_pimientos {
"##,
E0467: r##"
Macro reexport declarations were empty or malformed.
Macro re-export declarations were empty or malformed.
Erroneous code examples:
@ -1389,12 +1389,12 @@ macro_rules! get_pimientos {
This is a syntax error at the level of attribute declarations.
Currently, `macro_reexport` requires at least one macro name to be listed.
Unlike `macro_use`, listing no names does not reexport all macros from the
Unlike `macro_use`, listing no names does not re-export all macros from the
given crate.
Decide which macros you would like to export and list them properly.
These are proper reexport declarations:
These are proper re-export declarations:
```ignore (cannot-doctest-multicrate-project)
#[macro_reexport(some_macro, another_macro)]
@ -1475,7 +1475,7 @@ macro_rules! drink {
"##,
E0470: r##"
A macro listed for reexport was not found.
A macro listed for re-export was not found.
Erroneous code example:
@ -1493,7 +1493,7 @@ fn main() {
This could be caused by a typo. Did you misspell the macro's name?
Double-check the names of the macros listed for reexport, and that the crate
Double-check the names of the macros listed for re-export, and that the crate
in question exports them.
A working version:

View file

@ -2751,7 +2751,7 @@ fn smart_resolve_path_fragment(&mut self,
let lint = lint::builtin::LEGACY_CONSTRUCTOR_VISIBILITY;
self.session.buffer_lint(lint, id, span,
"private struct constructors are not usable through \
reexports in outer modules",
re-exports in outer modules",
);
res = Some(PathResolution::new(ctor_def));
}

View file

@ -803,8 +803,9 @@ fn finalize_import(&mut self, directive: &'b ImportDirective<'b>) -> Option<(Spa
if !any_successful_reexport {
let (ns, binding) = reexport_error.unwrap();
if ns == TypeNS && binding.is_extern_crate() {
let msg = format!("extern crate `{}` is private, and cannot be reexported \
(error E0365), consider declaring with `pub`",
let msg = format!("extern crate `{}` is private, and cannot be \
re-exported (error E0365), consider declaring with \
`pub`",
ident);
self.session.buffer_lint(PUB_USE_OF_PRIVATE_EXTERN_CRATE,
directive.id,
@ -812,12 +813,12 @@ fn finalize_import(&mut self, directive: &'b ImportDirective<'b>) -> Option<(Spa
&msg);
} else if ns == TypeNS {
struct_span_err!(self.session, directive.span, E0365,
"`{}` is private, and cannot be reexported", ident)
.span_label(directive.span, format!("reexport of private `{}`", ident))
"`{}` is private, and cannot be re-exported", ident)
.span_label(directive.span, format!("re-export of private `{}`", ident))
.note(&format!("consider declaring type or module `{}` with `pub`", ident))
.emit();
} else {
let msg = format!("`{}` is private, and cannot be reexported", ident);
let msg = format!("`{}` is private, and cannot be re-exported", ident);
let note_msg =
format!("consider marking `{}` as `pub` in the imported module", ident);
struct_span_err!(self.session, directive.span, E0364, "{}", &msg)
@ -932,12 +933,12 @@ fn finalize_resolutions_in(&mut self, module: Module<'b>) {
!orig_binding.vis.is_at_least(binding.vis, &*self) {
let msg = match directive.subclass {
ImportDirectiveSubclass::SingleImport { .. } => {
format!("variant `{}` is private and cannot be reexported",
format!("variant `{}` is private and cannot be re-exported",
ident)
},
ImportDirectiveSubclass::GlobImport { .. } => {
let msg = "enum is private and its variants \
cannot be reexported".to_owned();
cannot be re-exported".to_owned();
let error_id = (DiagnosticMessageId::ErrorId(0), // no code?!
Some(binding.span),
msg.clone());

View file

@ -1479,7 +1479,7 @@ fn visit_item(&mut self, i: &'a ast::Item) {
ast::ItemKind::ExternCrate(_) => {
if let Some(attr) = attr::find_by_name(&i.attrs[..], "macro_reexport") {
gate_feature_post!(&self, macro_reexport, attr.span,
"macros reexports are experimental \
"macros re-exports are experimental \
and possibly buggy");
}
}

View file

@ -16,6 +16,6 @@
#![crate_type = "dylib"]
#[macro_reexport(reexported)]
//~^ ERROR macros reexports are experimental and possibly buggy
//~^ ERROR macros re-exports are experimental and possibly buggy
#[macro_use] #[no_link]
extern crate macro_reexport_1;

View file

@ -13,6 +13,6 @@ mod foo {
}
pub use foo as foo2;
//~^ ERROR `foo` is private, and cannot be reexported [E0365]
//~^ ERROR `foo` is private, and cannot be re-exported [E0365]
fn main() {}

View file

@ -13,7 +13,7 @@ fn foo() {}
mod foo {}
mod a {
pub use super::foo; //~ ERROR cannot be reexported
pub use super::foo; //~ ERROR cannot be re-exported
pub use super::*; //~ ERROR must import something with the glob's visibility
}
}
@ -24,17 +24,17 @@ pub fn foo() {}
pub mod a {
pub use super::foo; // This is OK since the value `foo` is visible enough.
fn f(_: foo::S) {} // `foo` is imported in the type namespace (but not `pub` reexported).
fn f(_: foo::S) {} // `foo` is imported in the type namespace (but not `pub` re-exported).
}
pub mod b {
pub use super::*; // This is also OK since the value `foo` is visible enough.
fn f(_: foo::S) {} // Again, the module `foo` is imported (but not `pub` reexported).
fn f(_: foo::S) {} // Again, the module `foo` is imported (but not `pub` re-exported).
}
}
mod c {
// Test that `foo` is not reexported.
// Test that `foo` is not re-exported.
use b::a::foo::S; //~ ERROR `foo`
use b::b::foo::S as T; //~ ERROR `foo`
}

View file

@ -12,14 +12,14 @@
mod rank {
pub use self::Professor::*;
//~^ ERROR enum is private and its variants cannot be reexported
//~^ ERROR enum is private and its variants cannot be re-exported
pub use self::Lieutenant::{JuniorGrade, Full};
//~^ ERROR variant `JuniorGrade` is private and cannot be reexported
//~| ERROR variant `Full` is private and cannot be reexported
//~^ ERROR variant `JuniorGrade` is private and cannot be re-exported
//~| ERROR variant `Full` is private and cannot be re-exported
pub use self::PettyOfficer::*;
//~^ ERROR enum is private and its variants cannot be reexported
//~^ ERROR enum is private and its variants cannot be re-exported
pub use self::Crewman::*;
//~^ ERROR enum is private and its variants cannot be reexported
//~^ ERROR enum is private and its variants cannot be re-exported
enum Professor {
Adjunct,

View file

@ -12,5 +12,5 @@
#![feature(macro_reexport)]
#[allow(unused_extern_crates)]
#[macro_reexport] //~ ERROR bad macro reexport
#[macro_reexport] //~ ERROR bad macro re-export
extern crate std;

View file

@ -12,5 +12,5 @@
#![feature(macro_reexport)]
#[allow(unused_extern_crates)]
#[macro_reexport="foo"] //~ ERROR bad macro reexport
#[macro_reexport="foo"] //~ ERROR bad macro re-export
extern crate std;

View file

@ -12,5 +12,5 @@
#![feature(macro_reexport)]
#[allow(unused_extern_crates)]
#[macro_reexport(foo="bar")] //~ ERROR bad macro reexport
#[macro_reexport(foo="bar")] //~ ERROR bad macro re-export
extern crate std;

View file

@ -13,7 +13,7 @@
#![feature(macro_reexport)]
#[macro_use(macro_two)]
#[macro_reexport(no_way)] //~ ERROR reexported macro not found
#[macro_reexport(no_way)] //~ ERROR re-exported macro not found
extern crate two_macros;
pub fn main() {

View file

@ -8,6 +8,8 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// ignore-tidy-linelength
#![allow(unused)]
use m::S;
@ -19,7 +21,7 @@ mod n {
use S;
fn f() {
S(10);
//~^ ERROR private struct constructors are not usable through reexports in outer modules
//~^ ERROR private struct constructors are not usable through re-exports in outer modules
//~| WARN this was previously accepted
}
}

View file

@ -28,7 +28,7 @@ pub(super) fn g() {}
fn f() {
use foo::bar::S;
pub(self) use foo::bar::f; // ok
pub(super) use foo::bar::f as g; //~ ERROR cannot be reexported
pub(super) use foo::bar::f as g; //~ ERROR cannot be re-exported
S::default().x; // ok
S::default().f(); // ok
S::g(); // ok

View file

@ -9,19 +9,19 @@
// except according to those terms.
mod m1 {
pub use ::E::V; //~ ERROR variant `V` is private and cannot be reexported
pub use ::E::V; //~ ERROR variant `V` is private and cannot be re-exported
}
mod m2 {
pub use ::E::{V}; //~ ERROR variant `V` is private and cannot be reexported
pub use ::E::{V}; //~ ERROR variant `V` is private and cannot be re-exported
}
mod m3 {
pub use ::E::V::{self}; //~ ERROR variant `V` is private and cannot be reexported
pub use ::E::V::{self}; //~ ERROR variant `V` is private and cannot be re-exported
}
mod m4 {
pub use ::E::*; //~ ERROR enum is private and its variants cannot be reexported
pub use ::E::*; //~ ERROR enum is private and its variants cannot be re-exported
}
enum E { V }

View file

@ -11,7 +11,7 @@
#![allow(unused)]
extern crate core;
pub use core as reexported_core; //~ ERROR `core` is private, and cannot be reexported
pub use core as reexported_core; //~ ERROR `core` is private, and cannot be re-exported
//~^ WARN this was previously accepted
mod foo1 {
@ -19,7 +19,7 @@ mod foo1 {
}
mod foo2 {
use foo1::core; //~ ERROR `core` is private, and cannot be reexported
use foo1::core; //~ ERROR `core` is private, and cannot be re-exported
//~^ WARN this was previously accepted
pub mod bar {
extern crate core;
@ -27,7 +27,7 @@ pub mod bar {
}
mod baz {
pub use foo2::bar::core; //~ ERROR `core` is private, and cannot be reexported
pub use foo2::bar::core; //~ ERROR `core` is private, and cannot be re-exported
//~^ WARN this was previously accepted
}