From: bors Date: Tue, 23 Oct 2018 10:56:41 +0000 (+0000) Subject: Auto merge of #55281 - alexcrichton:revert-demote, r=petrochenkov X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=d74b40205f7ecf30c680dc77e62cf4f127f2db09;hp=086f5a55be73dff71ce5d93f16cdf5652d833090;p=rust.git Auto merge of #55281 - alexcrichton:revert-demote, r=petrochenkov Revert "rustc: Fix (again) simd vectors by-val in ABI" This reverts commit 3cc8f738d4247a9b475d8e074b621e602ac2b7be. --- diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index e2f5829d14f..5222dd27d34 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -449,7 +449,10 @@ fn build_reduced_graph_for_item(&mut self, item: &Item, expansion: Mark) { id: item.id, parent, imported_module: Cell::new(Some(ModuleOrUniformRoot::Module(module))), - subclass: ImportDirectiveSubclass::ExternCrate(orig_name), + subclass: ImportDirectiveSubclass::ExternCrate { + source: orig_name, + target: ident, + }, root_span: item.span, span: item.span, module_path: Vec::new(), diff --git a/src/librustc_resolve/check_unused.rs b/src/librustc_resolve/check_unused.rs index 6f3135b37cf..ddcaf128bf5 100644 --- a/src/librustc_resolve/check_unused.rs +++ b/src/librustc_resolve/check_unused.rs @@ -144,7 +144,7 @@ pub fn check_crate(resolver: &mut Resolver, krate: &ast::Crate) { } } } - ImportDirectiveSubclass::ExternCrate(_) => { + ImportDirectiveSubclass::ExternCrate { .. } => { resolver.maybe_unused_extern_crates.push((directive.id, directive.span)); } ImportDirectiveSubclass::MacroUse => { diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 0f96ee6a688..2c09ae7b7d2 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -1234,7 +1234,7 @@ fn is_extern_crate(&self) -> bool { match self.kind { NameBindingKind::Import { directive: &ImportDirective { - subclass: ImportDirectiveSubclass::ExternCrate(_), .. + subclass: ImportDirectiveSubclass::ExternCrate { .. }, .. }, .. } => true, _ => false, @@ -1248,15 +1248,6 @@ fn is_import(&self) -> bool { } } - fn is_renamed_extern_crate(&self) -> bool { - if let NameBindingKind::Import { directive, ..} = self.kind { - if let ImportDirectiveSubclass::ExternCrate(Some(_)) = directive.subclass { - return true; - } - } - false - } - fn is_glob_import(&self) -> bool { match self.kind { NameBindingKind::Import { directive, .. } => directive.is_glob(), @@ -3812,7 +3803,7 @@ fn lint_if_path_starts_with_module( if let NameBindingKind::Import { directive: d, .. } = binding.kind { // Careful: we still want to rewrite paths from // renamed extern crates. - if let ImportDirectiveSubclass::ExternCrate(None) = d.subclass { + if let ImportDirectiveSubclass::ExternCrate { source: None, .. } = d.subclass { return } } @@ -4782,10 +4773,17 @@ fn report_conflict<'b>(&mut self, }; let cm = self.session.source_map(); - let rename_msg = "You can use `as` to change the binding name of the import"; - - if let (Ok(snippet), false) = (cm.span_to_snippet(binding.span), - binding.is_renamed_extern_crate()) { + let rename_msg = "you can use `as` to change the binding name of the import"; + + if let ( + Ok(snippet), + NameBindingKind::Import { directive, ..}, + _dummy @ false, + ) = ( + cm.span_to_snippet(binding.span), + binding.kind.clone(), + binding.span.is_dummy(), + ) { let suggested_name = if name.as_str().chars().next().unwrap().is_uppercase() { format!("Other{}", name) } else { @@ -4794,13 +4792,30 @@ fn report_conflict<'b>(&mut self, err.span_suggestion_with_applicability( binding.span, - rename_msg, - if snippet.ends_with(';') { - format!("{} as {};", &snippet[..snippet.len() - 1], suggested_name) - } else { - format!("{} as {}", snippet, suggested_name) + &rename_msg, + match (&directive.subclass, snippet.as_ref()) { + (ImportDirectiveSubclass::SingleImport { .. }, "self") => + format!("self as {}", suggested_name), + (ImportDirectiveSubclass::SingleImport { source, .. }, _) => + format!( + "{} as {}{}", + &snippet[..((source.span.hi().0 - binding.span.lo().0) as usize)], + suggested_name, + if snippet.ends_with(";") { + ";" + } else { + "" + } + ), + (ImportDirectiveSubclass::ExternCrate { source, target, .. }, _) => + format!( + "extern crate {} as {};", + source.unwrap_or(target.name), + suggested_name, + ), + (_, _) => unreachable!(), }, - Applicability::MachineApplicable, + Applicability::MaybeIncorrect, ); } else { err.span_label(binding.span, rename_msg); diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs index c217e9a6f4a..27ba1ced749 100644 --- a/src/librustc_resolve/resolve_imports.rs +++ b/src/librustc_resolve/resolve_imports.rs @@ -52,7 +52,10 @@ pub enum ImportDirectiveSubclass<'a> { max_vis: Cell, // The visibility of the greatest re-export. // n.b. `max_vis` is only used in `finalize_import` to check for re-export errors. }, - ExternCrate(Option), + ExternCrate { + source: Option, + target: Ident, + }, MacroUse, } @@ -1336,7 +1339,7 @@ fn import_directive_subclass_to_string(subclass: &ImportDirectiveSubclass) -> St match *subclass { SingleImport { source, .. } => source.to_string(), GlobImport { .. } => "*".to_string(), - ExternCrate(_) => "".to_string(), + ExternCrate { .. } => "".to_string(), MacroUse => "#[macro_use]".to_string(), } } diff --git a/src/test/ui/blind/blind-item-block-item-shadow.stderr b/src/test/ui/blind/blind-item-block-item-shadow.stderr index 5adc953e405..a24ba5d97b1 100644 --- a/src/test/ui/blind/blind-item-block-item-shadow.stderr +++ b/src/test/ui/blind/blind-item-block-item-shadow.stderr @@ -7,7 +7,7 @@ LL | use foo::Bar; | ^^^^^^^^ `Bar` reimported here | = note: `Bar` must be defined only once in the type namespace of this block -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use foo::Bar as OtherBar; | ^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/blind/blind-item-item-shadow.stderr b/src/test/ui/blind/blind-item-item-shadow.stderr index 240ea6061b9..78741895344 100644 --- a/src/test/ui/blind/blind-item-item-shadow.stderr +++ b/src/test/ui/blind/blind-item-item-shadow.stderr @@ -8,7 +8,7 @@ LL | use foo::foo; | ^^^^^^^^ `foo` reimported here | = note: `foo` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use foo::foo as other_foo; | ^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/double-import.stderr b/src/test/ui/double-import.stderr index df6463a7e28..436d594921b 100644 --- a/src/test/ui/double-import.stderr +++ b/src/test/ui/double-import.stderr @@ -7,7 +7,7 @@ LL | use sub2::foo; //~ ERROR the name `foo` is defined multiple times | ^^^^^^^^^ `foo` reimported here | = note: `foo` must be defined only once in the value namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use sub2::foo as other_foo; //~ ERROR the name `foo` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/double-type-import.stderr b/src/test/ui/double-type-import.stderr index d5d977da4aa..f1d6e63c713 100644 --- a/src/test/ui/double-type-import.stderr +++ b/src/test/ui/double-type-import.stderr @@ -7,7 +7,7 @@ LL | use self::bar::X; | ^^^^^^^^^^^^ `X` reimported here | = note: `X` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use self::bar::X as OtherX; | ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/duplicate/duplicate-check-macro-exports.stderr b/src/test/ui/duplicate/duplicate-check-macro-exports.stderr index e2119efbd3d..eced6b303e8 100644 --- a/src/test/ui/duplicate/duplicate-check-macro-exports.stderr +++ b/src/test/ui/duplicate/duplicate-check-macro-exports.stderr @@ -8,7 +8,7 @@ LL | macro_rules! panic { () => {} } //~ ERROR the name `panic` is defined multi | ^^^^^^^^^^^^^^^^^^ `panic` redefined here | = note: `panic` must be defined only once in the macro namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | pub use std::panic as other_panic; | ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/error-codes/E0252.stderr b/src/test/ui/error-codes/E0252.stderr index a4271bf3a4d..0d112a4f02e 100644 --- a/src/test/ui/error-codes/E0252.stderr +++ b/src/test/ui/error-codes/E0252.stderr @@ -7,7 +7,7 @@ LL | use bar::baz; //~ ERROR E0252 | ^^^^^^^^ `baz` reimported here | = note: `baz` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use bar::baz as other_baz; //~ ERROR E0252 | ^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/error-codes/E0254.stderr b/src/test/ui/error-codes/E0254.stderr index a52215df0bb..5e833f1ee39 100644 --- a/src/test/ui/error-codes/E0254.stderr +++ b/src/test/ui/error-codes/E0254.stderr @@ -8,7 +8,7 @@ LL | use foo::alloc; | ^^^^^^^^^^ `alloc` reimported here | = note: `alloc` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use foo::alloc as other_alloc; | ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/error-codes/E0255.stderr b/src/test/ui/error-codes/E0255.stderr index a077a43c152..d01a4c002e7 100644 --- a/src/test/ui/error-codes/E0255.stderr +++ b/src/test/ui/error-codes/E0255.stderr @@ -8,7 +8,7 @@ LL | fn foo() {} //~ ERROR E0255 | ^^^^^^^^ `foo` redefined here | = note: `foo` must be defined only once in the value namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use bar::foo as other_foo; | ^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/error-codes/E0259.stderr b/src/test/ui/error-codes/E0259.stderr index 24a73544a35..8c3e3f851ae 100644 --- a/src/test/ui/error-codes/E0259.stderr +++ b/src/test/ui/error-codes/E0259.stderr @@ -5,12 +5,13 @@ LL | extern crate alloc; | ------------------- previous import of the extern crate `alloc` here LL | LL | extern crate libc as alloc; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | | - | `alloc` reimported here - | You can use `as` to change the binding name of the import + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ `alloc` reimported here | = note: `alloc` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | extern crate libc as other_alloc; + | error: aborting due to previous error diff --git a/src/test/ui/error-codes/E0260.stderr b/src/test/ui/error-codes/E0260.stderr index 437794432b0..08792a33921 100644 --- a/src/test/ui/error-codes/E0260.stderr +++ b/src/test/ui/error-codes/E0260.stderr @@ -8,7 +8,7 @@ LL | mod alloc { | ^^^^^^^^^ `alloc` redefined here | = note: `alloc` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | extern crate alloc as other_alloc; | diff --git a/src/test/ui/error-codes/E0430.stderr b/src/test/ui/error-codes/E0430.stderr index c50ed4ea5de..32198acec77 100644 --- a/src/test/ui/error-codes/E0430.stderr +++ b/src/test/ui/error-codes/E0430.stderr @@ -15,7 +15,7 @@ LL | use std::fmt::{self, self}; //~ ERROR E0430 | previous import of the module `fmt` here | = note: `fmt` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::fmt::{self, self as other_fmt}; //~ ERROR E0430 | ^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/extern/extern-crate-rename.stderr b/src/test/ui/extern/extern-crate-rename.stderr index 2c2723fe4c5..f8a5de3654c 100644 --- a/src/test/ui/extern/extern-crate-rename.stderr +++ b/src/test/ui/extern/extern-crate-rename.stderr @@ -4,12 +4,13 @@ error[E0259]: the name `m1` is defined multiple times LL | extern crate m1; | ---------------- previous import of the extern crate `m1` here LL | extern crate m2 as m1; //~ ERROR is defined multiple times - | ^^^^^^^^^^^^^^^^^^^^^^ - | | - | `m1` reimported here - | You can use `as` to change the binding name of the import + | ^^^^^^^^^^^^^^^^^^^^^^ `m1` reimported here | = note: `m1` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | extern crate m2 as other_m1; //~ ERROR is defined multiple times + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error diff --git a/src/test/ui/imports/duplicate.stderr b/src/test/ui/imports/duplicate.stderr index 9cdd7aa88f1..5d51981e8af 100644 --- a/src/test/ui/imports/duplicate.stderr +++ b/src/test/ui/imports/duplicate.stderr @@ -7,7 +7,7 @@ LL | use a::foo; //~ ERROR the name `foo` is defined multiple times | ^^^^^^ `foo` reimported here | = note: `foo` must be defined only once in the value namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use a::foo as other_foo; //~ ERROR the name `foo` is defined multiple times | ^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-19498.stderr b/src/test/ui/issues/issue-19498.stderr index 839ab778061..e4cefe9d7a4 100644 --- a/src/test/ui/issues/issue-19498.stderr +++ b/src/test/ui/issues/issue-19498.stderr @@ -8,7 +8,7 @@ LL | mod A {} //~ ERROR the name `A` is defined multiple times | ^^^^^ `A` redefined here | = note: `A` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use self::A as OtherA; | ^^^^^^^^^^^^^^^^^ @@ -23,7 +23,7 @@ LL | pub mod B {} //~ ERROR the name `B` is defined multiple times | ^^^^^^^^^ `B` redefined here | = note: `B` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use self::B as OtherB; | ^^^^^^^^^^^^^^^^^ @@ -37,7 +37,7 @@ LL | mod D {} //~ ERROR the name `D` is defined multiple times | ^^^^^ `D` redefined here | = note: `D` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use C::D as OtherD; | ^^^^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-24081.stderr b/src/test/ui/issues/issue-24081.stderr index 17cd3ec0aa6..f9a97ac7c99 100644 --- a/src/test/ui/issues/issue-24081.stderr +++ b/src/test/ui/issues/issue-24081.stderr @@ -8,7 +8,7 @@ LL | type Add = bool; //~ ERROR the name `Add` is defined multiple times | ^^^^^^^^^^^^^^^^ `Add` redefined here | = note: `Add` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::ops::Add as OtherAdd; | ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -23,7 +23,7 @@ LL | struct Sub { x: f32 } //~ ERROR the name `Sub` is defined multiple times | ^^^^^^^^^^ `Sub` redefined here | = note: `Sub` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::ops::Sub as OtherSub; | ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -38,7 +38,7 @@ LL | enum Mul { A, B } //~ ERROR the name `Mul` is defined multiple times | ^^^^^^^^ `Mul` redefined here | = note: `Mul` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::ops::Mul as OtherMul; | ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -53,7 +53,7 @@ LL | mod Div { } //~ ERROR the name `Div` is defined multiple times | ^^^^^^^ `Div` redefined here | = note: `Div` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::ops::Div as OtherDiv; | ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -68,7 +68,7 @@ LL | trait Rem { } //~ ERROR the name `Rem` is defined multiple times | ^^^^^^^^^ `Rem` redefined here | = note: `Rem` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::ops::Rem as OtherRem; | ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-25396.stderr b/src/test/ui/issues/issue-25396.stderr index 1946f391672..33e7c378821 100644 --- a/src/test/ui/issues/issue-25396.stderr +++ b/src/test/ui/issues/issue-25396.stderr @@ -7,7 +7,7 @@ LL | use bar::baz; //~ ERROR the name `baz` is defined multiple times | ^^^^^^^^ `baz` reimported here | = note: `baz` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use bar::baz as other_baz; //~ ERROR the name `baz` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^ @@ -21,7 +21,7 @@ LL | use bar::Quux; //~ ERROR the name `Quux` is defined multiple times | ^^^^^^^^^ `Quux` reimported here | = note: `Quux` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use bar::Quux as OtherQuux; //~ ERROR the name `Quux` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^ @@ -35,7 +35,7 @@ LL | use bar::blah; //~ ERROR the name `blah` is defined multiple times | ^^^^^^^^^ `blah` reimported here | = note: `blah` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use bar::blah as other_blah; //~ ERROR the name `blah` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^^ @@ -49,7 +49,7 @@ LL | use bar::WOMP; //~ ERROR the name `WOMP` is defined multiple times | ^^^^^^^^^ `WOMP` reimported here | = note: `WOMP` must be defined only once in the value namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use bar::WOMP as OtherWOMP; //~ ERROR the name `WOMP` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-26886.stderr b/src/test/ui/issues/issue-26886.stderr index 75942623941..f2a43b0db79 100644 --- a/src/test/ui/issues/issue-26886.stderr +++ b/src/test/ui/issues/issue-26886.stderr @@ -7,7 +7,7 @@ LL | use std::sync::Arc; //~ ERROR the name `Arc` is defined multiple times | ^^^^^^^^^^^^^^ `Arc` reimported here | = note: `Arc` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::sync::Arc as OtherArc; //~ ERROR the name `Arc` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -22,7 +22,7 @@ LL | use std::sync; //~ ERROR the name `sync` is defined multiple times | ^^^^^^^^^ `sync` reimported here | = note: `sync` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::sync as other_sync; //~ ERROR the name `sync` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-32354-suggest-import-rename.stderr b/src/test/ui/issues/issue-32354-suggest-import-rename.stderr index f45a5f7dd61..f3acd65e6a2 100644 --- a/src/test/ui/issues/issue-32354-suggest-import-rename.stderr +++ b/src/test/ui/issues/issue-32354-suggest-import-rename.stderr @@ -7,7 +7,7 @@ LL | use extension2::ConstructorExtension; //~ ERROR is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `ConstructorExtension` reimported here | = note: `ConstructorExtension` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use extension2::ConstructorExtension as OtherConstructorExtension; //~ ERROR is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/issues/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr b/src/test/ui/issues/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr index ecdfec2b3bf..99c15976666 100644 --- a/src/test/ui/issues/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr +++ b/src/test/ui/issues/issue-45799-bad-extern-crate-rename-suggestion-formatting.stderr @@ -5,7 +5,7 @@ LL | extern crate std; | ^^^^^^^^^^^^^^^^^ `std` reimported here | = note: `std` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | extern crate std as other_std; | diff --git a/src/test/ui/issues/issue-45829/auxiliary/issue_45829_a.rs b/src/test/ui/issues/issue-45829/auxiliary/issue_45829_a.rs new file mode 100644 index 00000000000..56eb1541e1f --- /dev/null +++ b/src/test/ui/issues/issue-45829/auxiliary/issue_45829_a.rs @@ -0,0 +1,11 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +pub const FOO: usize = *&0; diff --git a/src/test/ui/issues/issue-45829/auxiliary/issue_45829_b.rs b/src/test/ui/issues/issue-45829/auxiliary/issue_45829_b.rs new file mode 100644 index 00000000000..56eb1541e1f --- /dev/null +++ b/src/test/ui/issues/issue-45829/auxiliary/issue_45829_b.rs @@ -0,0 +1,11 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +pub const FOO: usize = *&0; diff --git a/src/test/ui/issues/issue-45829/import-self.rs b/src/test/ui/issues/issue-45829/import-self.rs new file mode 100644 index 00000000000..8b13ffd0076 --- /dev/null +++ b/src/test/ui/issues/issue-45829/import-self.rs @@ -0,0 +1,22 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +mod foo { + pub struct A; + pub struct B; +} + +use foo::{self}; + +use foo as self; + +use foo::self; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/import-self.stderr b/src/test/ui/issues/issue-45829/import-self.stderr new file mode 100644 index 00000000000..985dc4e7131 --- /dev/null +++ b/src/test/ui/issues/issue-45829/import-self.stderr @@ -0,0 +1,31 @@ +error: expected identifier, found keyword `self` + --> $DIR/import-self.rs:18:12 + | +LL | use foo as self; + | ^^^^ expected identifier, found keyword + +error[E0429]: `self` imports are only allowed within a { } list + --> $DIR/import-self.rs:20:5 + | +LL | use foo::self; + | ^^^^^^^^^ + +error[E0255]: the name `foo` is defined multiple times + --> $DIR/import-self.rs:16:11 + | +LL | mod foo { + | ------- previous definition of the module `foo` here +... +LL | use foo::{self}; + | ^^^^ `foo` reimported here + | + = note: `foo` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | use foo::{self as other_foo}; + | ^^^^^^^^^^^^^^^^^ + +error: aborting due to 3 previous errors + +Some errors occurred: E0255, E0429. +For more information about an error, try `rustc --explain E0255`. diff --git a/src/test/ui/issues/issue-45829/import-twice.rs b/src/test/ui/issues/issue-45829/import-twice.rs new file mode 100644 index 00000000000..785932e5ef4 --- /dev/null +++ b/src/test/ui/issues/issue-45829/import-twice.rs @@ -0,0 +1,18 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +mod foo { + pub struct A; + pub struct B; +} + +use foo::{A, A}; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/import-twice.stderr b/src/test/ui/issues/issue-45829/import-twice.stderr new file mode 100644 index 00000000000..566d47965f8 --- /dev/null +++ b/src/test/ui/issues/issue-45829/import-twice.stderr @@ -0,0 +1,17 @@ +error[E0252]: the name `A` is defined multiple times + --> $DIR/import-twice.rs:16:14 + | +LL | use foo::{A, A}; + | - ^ `A` reimported here + | | + | previous import of the type `A` here + | + = note: `A` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | use foo::{A, A as OtherA}; + | ^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0252`. diff --git a/src/test/ui/issues/issue-45829/issue-45829.rs b/src/test/ui/issues/issue-45829/issue-45829.rs new file mode 100644 index 00000000000..eca46484699 --- /dev/null +++ b/src/test/ui/issues/issue-45829/issue-45829.rs @@ -0,0 +1,18 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +mod foo { + pub struct A; + pub struct B; +} + +use foo::{A, B as A}; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/issue-45829.stderr b/src/test/ui/issues/issue-45829/issue-45829.stderr new file mode 100644 index 00000000000..872379d9fc3 --- /dev/null +++ b/src/test/ui/issues/issue-45829/issue-45829.stderr @@ -0,0 +1,17 @@ +error[E0252]: the name `A` is defined multiple times + --> $DIR/issue-45829.rs:16:14 + | +LL | use foo::{A, B as A}; + | - ^^^^^^ `A` reimported here + | | + | previous import of the type `A` here + | + = note: `A` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | use foo::{A, B as OtherA}; + | ^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0252`. diff --git a/src/test/ui/issues/issue-45829/rename-extern-vs-use.rs b/src/test/ui/issues/issue-45829/rename-extern-vs-use.rs new file mode 100644 index 00000000000..5230cadf604 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-extern-vs-use.rs @@ -0,0 +1,20 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// aux-build:issue_45829_b.rs + +mod foo { + pub mod bar {} +} + +use foo::bar; +extern crate issue_45829_b as bar; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/rename-extern-vs-use.stderr b/src/test/ui/issues/issue-45829/rename-extern-vs-use.stderr new file mode 100644 index 00000000000..6a513e90d95 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-extern-vs-use.stderr @@ -0,0 +1,17 @@ +error[E0254]: the name `bar` is defined multiple times + --> $DIR/rename-extern-vs-use.rs:18:1 + | +LL | use foo::bar; + | -------- previous import of the module `bar` here +LL | extern crate issue_45829_b as bar; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `bar` reimported here + | + = note: `bar` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | extern crate issue_45829_b as other_bar; + | + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0254`. diff --git a/src/test/ui/issues/issue-45829/rename-extern-with-tab.rs b/src/test/ui/issues/issue-45829/rename-extern-with-tab.rs new file mode 100644 index 00000000000..7066ed65c78 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-extern-with-tab.rs @@ -0,0 +1,17 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// aux-build:issue_45829_a.rs +// aux-build:issue_45829_b.rs + +extern crate issue_45829_a; +extern crate issue_45829_b as issue_45829_a; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/rename-extern-with-tab.stderr b/src/test/ui/issues/issue-45829/rename-extern-with-tab.stderr new file mode 100644 index 00000000000..769be545706 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-extern-with-tab.stderr @@ -0,0 +1,17 @@ +error[E0259]: the name `issue_45829_a` is defined multiple times + --> $DIR/rename-extern-with-tab.rs:15:1 + | +LL | extern crate issue_45829_a; + | --------------------------- previous import of the extern crate `issue_45829_a` here +LL | extern crate issue_45829_b as issue_45829_a; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `issue_45829_a` reimported here + | + = note: `issue_45829_a` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | extern crate issue_45829_b as other_issue_45829_a; + | + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0259`. diff --git a/src/test/ui/issues/issue-45829/rename-extern.rs b/src/test/ui/issues/issue-45829/rename-extern.rs new file mode 100644 index 00000000000..7c3d9724005 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-extern.rs @@ -0,0 +1,17 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// aux-build:issue_45829_a.rs +// aux-build:issue_45829_b.rs + +extern crate issue_45829_a; +extern crate issue_45829_b as issue_45829_a; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/rename-extern.stderr b/src/test/ui/issues/issue-45829/rename-extern.stderr new file mode 100644 index 00000000000..ab77e592b4a --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-extern.stderr @@ -0,0 +1,17 @@ +error[E0259]: the name `issue_45829_a` is defined multiple times + --> $DIR/rename-extern.rs:15:1 + | +LL | extern crate issue_45829_a; + | --------------------------- previous import of the extern crate `issue_45829_a` here +LL | extern crate issue_45829_b as issue_45829_a; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `issue_45829_a` reimported here + | + = note: `issue_45829_a` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | extern crate issue_45829_b as other_issue_45829_a; + | + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0259`. diff --git a/src/test/ui/issues/issue-45829/rename-use-vs-extern.rs b/src/test/ui/issues/issue-45829/rename-use-vs-extern.rs new file mode 100644 index 00000000000..1cc261ed922 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-use-vs-extern.rs @@ -0,0 +1,16 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// aux-build:issue_45829_b.rs + +extern crate issue_45829_b; +use std as issue_45829_b; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/rename-use-vs-extern.stderr b/src/test/ui/issues/issue-45829/rename-use-vs-extern.stderr new file mode 100644 index 00000000000..1395fbeea3b --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-use-vs-extern.stderr @@ -0,0 +1,17 @@ +error[E0254]: the name `issue_45829_b` is defined multiple times + --> $DIR/rename-use-vs-extern.rs:14:5 + | +LL | extern crate issue_45829_b; + | --------------------------- previous import of the extern crate `issue_45829_b` here +LL | use std as issue_45829_b; + | ^^^^^^^^^^^^^^^^^^^^ `issue_45829_b` reimported here + | + = note: `issue_45829_b` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | use std as other_issue_45829_b; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0254`. diff --git a/src/test/ui/issues/issue-45829/rename-use-with-tabs.rs b/src/test/ui/issues/issue-45829/rename-use-with-tabs.rs new file mode 100644 index 00000000000..c1e4d908906 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-use-with-tabs.rs @@ -0,0 +1,21 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +mod foo { + pub struct A; + + pub mod bar { + pub struct B; + } +} + +use foo::{A, bar::B as A}; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/rename-use-with-tabs.stderr b/src/test/ui/issues/issue-45829/rename-use-with-tabs.stderr new file mode 100644 index 00000000000..b80a692028a --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-use-with-tabs.stderr @@ -0,0 +1,17 @@ +error[E0252]: the name `A` is defined multiple times + --> $DIR/rename-use-with-tabs.rs:19:14 + | +LL | use foo::{A, bar::B as A}; + | - ^^^^^^^^^^^^^^^^^ `A` reimported here + | | + | previous import of the type `A` here + | + = note: `A` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | use foo::{A, bar::B as OtherA}; + | ^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0252`. diff --git a/src/test/ui/issues/issue-45829/rename-with-path.rs b/src/test/ui/issues/issue-45829/rename-with-path.rs new file mode 100644 index 00000000000..dbe8733735e --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-with-path.rs @@ -0,0 +1,13 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use std::{collections::HashMap as A, sync::Arc as A}; + +fn main() {} diff --git a/src/test/ui/issues/issue-45829/rename-with-path.stderr b/src/test/ui/issues/issue-45829/rename-with-path.stderr new file mode 100644 index 00000000000..2bc45f0a62d --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename-with-path.stderr @@ -0,0 +1,17 @@ +error[E0252]: the name `A` is defined multiple times + --> $DIR/rename-with-path.rs:11:38 + | +LL | use std::{collections::HashMap as A, sync::Arc as A}; + | ------------------------- ^^^^^^^^^^^^^^ `A` reimported here + | | + | previous import of the type `A` here + | + = note: `A` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | use std::{collections::HashMap as A, sync::Arc as OtherA}; + | ^^^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0252`. diff --git a/src/test/ui/issues/issue-45829/rename.rs b/src/test/ui/issues/issue-45829/rename.rs new file mode 100644 index 00000000000..7c6d87b1d20 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename.rs @@ -0,0 +1,16 @@ +// Copyright 2018 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use core; +use std as core; + +fn main() { + 1 + 1; +} diff --git a/src/test/ui/issues/issue-45829/rename.stderr b/src/test/ui/issues/issue-45829/rename.stderr new file mode 100644 index 00000000000..ce13b457490 --- /dev/null +++ b/src/test/ui/issues/issue-45829/rename.stderr @@ -0,0 +1,17 @@ +error[E0252]: the name `core` is defined multiple times + --> $DIR/rename.rs:12:5 + | +LL | use core; + | ---- previous import of the module `core` here +LL | use std as core; + | ^^^^^^^^^^^ `core` reimported here + | + = note: `core` must be defined only once in the type namespace of this module +help: you can use `as` to change the binding name of the import + | +LL | use std as other_core; + | ^^^^^^^^^^^^^^^^^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0252`. diff --git a/src/test/ui/issues/issue-8640.stderr b/src/test/ui/issues/issue-8640.stderr index 68fdea6e228..029f76d152a 100644 --- a/src/test/ui/issues/issue-8640.stderr +++ b/src/test/ui/issues/issue-8640.stderr @@ -7,7 +7,7 @@ LL | mod bar {} | ^^^^^^^ `bar` redefined here | = note: `bar` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use baz::bar as other_bar; | ^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/no-std-inject.stderr b/src/test/ui/no-std-inject.stderr index c1ea823a9bd..fbc54124a08 100644 --- a/src/test/ui/no-std-inject.stderr +++ b/src/test/ui/no-std-inject.stderr @@ -5,7 +5,7 @@ LL | extern crate core; //~ ERROR: the name `core` is defined multiple times | ^^^^^^^^^^^^^^^^^^ `core` reimported here | = note: `core` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | extern crate core as other_core; //~ ERROR: the name `core` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr b/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr index 5f21b4413e7..83577b245b7 100644 --- a/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr +++ b/src/test/ui/resolve/resolve-conflict-extern-crate-vs-extern-crate.stderr @@ -5,7 +5,7 @@ LL | extern crate std; | ^^^^^^^^^^^^^^^^^ `std` reimported here | = note: `std` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | extern crate std as other_std; | diff --git a/src/test/ui/resolve/resolve-conflict-import-vs-extern-crate.stderr b/src/test/ui/resolve/resolve-conflict-import-vs-extern-crate.stderr index 9978e75af30..adb66b994db 100644 --- a/src/test/ui/resolve/resolve-conflict-import-vs-extern-crate.stderr +++ b/src/test/ui/resolve/resolve-conflict-import-vs-extern-crate.stderr @@ -5,10 +5,10 @@ LL | use std::slice as std; //~ ERROR the name `std` is defined multiple times | ^^^^^^^^^^^^^^^^^ `std` reimported here | = note: `std` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | -LL | use std::slice as std as other_std; //~ ERROR the name `std` is defined multiple times - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | use std::slice as other_std; //~ ERROR the name `std` is defined multiple times + | ^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error diff --git a/src/test/ui/resolve/resolve-conflict-import-vs-import.stderr b/src/test/ui/resolve/resolve-conflict-import-vs-import.stderr index 80ccb9aa2b3..15f826305bf 100644 --- a/src/test/ui/resolve/resolve-conflict-import-vs-import.stderr +++ b/src/test/ui/resolve/resolve-conflict-import-vs-import.stderr @@ -7,7 +7,7 @@ LL | use std::mem::transmute; | ^^^^^^^^^^^^^^^^^^^ `transmute` reimported here | = note: `transmute` must be defined only once in the value namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::mem::transmute as other_transmute; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/resolve/resolve-conflict-item-vs-extern-crate.stderr b/src/test/ui/resolve/resolve-conflict-item-vs-extern-crate.stderr index d9ad248c013..0b082c1105f 100644 --- a/src/test/ui/resolve/resolve-conflict-item-vs-extern-crate.stderr +++ b/src/test/ui/resolve/resolve-conflict-item-vs-extern-crate.stderr @@ -5,10 +5,6 @@ LL | mod std {} //~ ERROR the name `std` is defined multiple times | ^^^^^^^ `std` redefined here | = note: `std` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import - | -LL | as other_std// Copyright 2014 The Rust Project Developers. See the COPYRIGHT - | ^^^^^^^^^^^^ error: aborting due to previous error diff --git a/src/test/ui/resolve/resolve-conflict-item-vs-import.stderr b/src/test/ui/resolve/resolve-conflict-item-vs-import.stderr index 5ef4bdf4aad..5305ddbd2ef 100644 --- a/src/test/ui/resolve/resolve-conflict-item-vs-import.stderr +++ b/src/test/ui/resolve/resolve-conflict-item-vs-import.stderr @@ -8,7 +8,7 @@ LL | fn transmute() {} | ^^^^^^^^^^^^^^ `transmute` redefined here | = note: `transmute` must be defined only once in the value namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::mem::transmute as other_transmute; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/resolve/resolve-conflict-type-vs-import.stderr b/src/test/ui/resolve/resolve-conflict-type-vs-import.stderr index 1e8df8f8ea7..e5cafa3ac98 100644 --- a/src/test/ui/resolve/resolve-conflict-type-vs-import.stderr +++ b/src/test/ui/resolve/resolve-conflict-type-vs-import.stderr @@ -8,7 +8,7 @@ LL | struct Iter; | ^^^^^^^^^^^^ `Iter` redefined here | = note: `Iter` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::slice::Iter as OtherIter; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/unresolved/unresolved-extern-mod-suggestion.stderr b/src/test/ui/unresolved/unresolved-extern-mod-suggestion.stderr index 4e3ea573d27..86ea348ac47 100644 --- a/src/test/ui/unresolved/unresolved-extern-mod-suggestion.stderr +++ b/src/test/ui/unresolved/unresolved-extern-mod-suggestion.stderr @@ -7,7 +7,7 @@ LL | use core; | ^^^^ `core` reimported here | = note: `core` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use core as other_core; | ^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/use/use-mod.stderr b/src/test/ui/use/use-mod.stderr index dcdba6fce9a..adef47ac8fb 100644 --- a/src/test/ui/use/use-mod.stderr +++ b/src/test/ui/use/use-mod.stderr @@ -23,7 +23,7 @@ LL | self | ^^^^ `bar` reimported here | = note: `bar` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | self as other_bar | diff --git a/src/test/ui/use/use-paths-as-items.stderr b/src/test/ui/use/use-paths-as-items.stderr index 200cefc23af..56db03fd163 100644 --- a/src/test/ui/use/use-paths-as-items.stderr +++ b/src/test/ui/use/use-paths-as-items.stderr @@ -7,7 +7,7 @@ LL | use std::mem; //~ ERROR the name `mem` is defined multiple times | ^^^^^^^^ `mem` reimported here | = note: `mem` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | use std::mem as other_mem; //~ ERROR the name `mem` is defined multiple times | ^^^^^^^^^^^^^^^^^^^^^ diff --git a/src/test/ui/variants/variant-namespacing.stderr b/src/test/ui/variants/variant-namespacing.stderr index 322ea617f34..ce2fb7cb92c 100644 --- a/src/test/ui/variants/variant-namespacing.stderr +++ b/src/test/ui/variants/variant-namespacing.stderr @@ -8,7 +8,7 @@ LL | pub use variant_namespacing::XE::{XStruct, XTuple, XUnit}; | ^^^^^^^ `XStruct` reimported here | = note: `XStruct` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | pub use variant_namespacing::XE::{XStruct as OtherXStruct, XTuple, XUnit}; | ^^^^^^^^^^^^^^^^^^^^^^^ @@ -23,7 +23,7 @@ LL | pub use variant_namespacing::XE::{XStruct, XTuple, XUnit}; | ^^^^^^ `XTuple` reimported here | = note: `XTuple` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | pub use variant_namespacing::XE::{XStruct, XTuple as OtherXTuple, XUnit}; | ^^^^^^^^^^^^^^^^^^^^^ @@ -38,7 +38,7 @@ LL | pub use variant_namespacing::XE::{XStruct, XTuple, XUnit}; | ^^^^^ `XUnit` reimported here | = note: `XUnit` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | pub use variant_namespacing::XE::{XStruct, XTuple, XUnit as OtherXUnit}; | ^^^^^^^^^^^^^^^^^^^ @@ -53,7 +53,7 @@ LL | pub use E::{Struct, Tuple, Unit}; | ^^^^^^ `Struct` reimported here | = note: `Struct` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | pub use E::{Struct as OtherStruct, Tuple, Unit}; | ^^^^^^^^^^^^^^^^^^^^^ @@ -68,7 +68,7 @@ LL | pub use E::{Struct, Tuple, Unit}; | ^^^^^ `Tuple` reimported here | = note: `Tuple` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | pub use E::{Struct, Tuple as OtherTuple, Unit}; | ^^^^^^^^^^^^^^^^^^^ @@ -83,7 +83,7 @@ LL | pub use E::{Struct, Tuple, Unit}; | ^^^^ `Unit` reimported here | = note: `Unit` must be defined only once in the type namespace of this module -help: You can use `as` to change the binding name of the import +help: you can use `as` to change the binding name of the import | LL | pub use E::{Struct, Tuple, Unit as OtherUnit}; | ^^^^^^^^^^^^^^^^^