about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_resolve/macros.rs29
-rw-r--r--src/libsyntax/feature_gate.rs5
-rw-r--r--src/test/run-pass/uniform-paths/auxiliary/issue-53691.rs2
-rw-r--r--src/test/run-pass/uniform-paths/basic-nested.rs10
-rw-r--r--src/test/run-pass/uniform-paths/basic.rs6
-rw-r--r--src/test/run-pass/uniform-paths/macros-nested.rs8
-rw-r--r--src/test/run-pass/uniform-paths/macros.rs8
-rw-r--r--src/test/run-pass/uniform-paths/same-crate.rs3
-rw-r--r--src/test/ui/editions/edition-imports-2015.rs2
-rw-r--r--src/test/ui/editions/edition-imports-2015.stderr2
-rw-r--r--src/test/ui/editions/edition-imports-virtual-2015-gated.stderr4
-rw-r--r--src/test/ui/feature-gates/feature-gate-uniform-paths.rs19
-rw-r--r--src/test/ui/feature-gates/feature-gate-uniform-paths.stderr50
-rw-r--r--src/test/ui/imports/issue-56125.rs2
-rw-r--r--src/test/ui/imports/issue-56125.stderr14
-rw-r--r--src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.rs2
-rw-r--r--src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.stderr4
-rw-r--r--src/test/ui/rust-2018/future-proofing-locals.rs1
-rw-r--r--src/test/ui/rust-2018/future-proofing-locals.stderr16
-rw-r--r--src/test/ui/rust-2018/local-path-suggestions-2018.rs2
-rw-r--r--src/test/ui/rust-2018/local-path-suggestions-2018.stderr4
-rw-r--r--src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.rs2
-rw-r--r--src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.stderr6
-rw-r--r--src/test/ui/rust-2018/uniform-paths/fn-local-enum.rs2
-rw-r--r--src/test/ui/rust-2018/uniform-paths/issue-54390.rs11
-rw-r--r--src/test/ui/rust-2018/uniform-paths/issue-54390.stderr32
-rw-r--r--src/test/ui/rust-2018/uniform-paths/macro-rules.rs3
-rw-r--r--src/test/ui/rust-2018/uniform-paths/prelude-fail-2.rs2
-rw-r--r--src/test/ui/rust-2018/uniform-paths/prelude-fail-2.stderr14
-rw-r--r--src/test/ui/rust-2018/uniform-paths/prelude-fail.rs2
-rw-r--r--src/test/ui/rust-2018/uniform-paths/prelude-fail.stderr4
-rw-r--r--src/test/ui/rust-2018/uniform-paths/prelude.rs2
32 files changed, 60 insertions, 213 deletions
diff --git a/src/librustc_resolve/macros.rs b/src/librustc_resolve/macros.rs
index 037ade13c20..bb679d340ea 100644
--- a/src/librustc_resolve/macros.rs
+++ b/src/librustc_resolve/macros.rs
@@ -831,32 +831,23 @@ impl<'a> Resolver<'a> {
             // but its `Def` should coincide with a crate passed with `--extern`
             // (otherwise there would be ambiguity) and we can skip feature error in this case.
             'ok: {
-                if !is_import || (!rust_2015 && self.session.features_untracked().uniform_paths) {
+                if !is_import || !rust_2015 {
                     break 'ok;
                 }
                 if ns == TypeNS && use_prelude && self.extern_prelude_get(ident, true).is_some() {
                     break 'ok;
                 }
-                if rust_2015 {
-                    let root_ident = Ident::new(keywords::PathRoot.name(), orig_ident.span);
-                    let root_module = self.resolve_crate_root(root_ident);
-                    if self.resolve_ident_in_module_ext(ModuleOrUniformRoot::Module(root_module),
-                                                        orig_ident, ns, None, false, path_span)
-                                                        .is_ok() {
-                        break 'ok;
-                    }
+                let root_ident = Ident::new(keywords::PathRoot.name(), orig_ident.span);
+                let root_module = self.resolve_crate_root(root_ident);
+                if self.resolve_ident_in_module_ext(ModuleOrUniformRoot::Module(root_module),
+                                                    orig_ident, ns, None, false, path_span)
+                                                    .is_ok() {
+                    break 'ok;
                 }
 
-                let reason = if rust_2015 {
-                    "in macros originating from 2015 edition"
-                } else {
-                    "on stable channel"
-                };
-                let msg = format!("imports can only refer to extern crate names \
-                                   passed with `--extern` {}", reason);
-                let mut err = feature_err(&self.session.parse_sess, "uniform_paths",
-                                          ident.span, GateIssue::Language, &msg);
-
+                let msg = "imports can only refer to extern crate names passed with \
+                           `--extern` in macros originating from 2015 edition";
+                let mut err = self.session.struct_span_err(ident.span, msg);
                 let what = self.binding_description(binding, ident,
                                                     flags.contains(Flags::MISC_FROM_PRELUDE));
                 let note_msg = format!("this import refers to {what}", what = what);
diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs
index 45b3ba604c6..19b8df80a6a 100644
--- a/src/libsyntax/feature_gate.rs
+++ b/src/libsyntax/feature_gate.rs
@@ -440,9 +440,6 @@ declare_features! (
     // support for arbitrary delimited token streams in non-macro attributes
     (active, unrestricted_attribute_tokens, "1.30.0", Some(55208), None),
 
-    // Allows `use x::y;` to resolve through `self::x`, not just `::x`.
-    (active, uniform_paths, "1.30.0", Some(53130), None),
-
     // Allows unsized rvalues at arguments and parameters.
     (active, unsized_locals, "1.30.0", Some(48055), None),
 
@@ -687,6 +684,8 @@ declare_features! (
     (accepted, cfg_attr_multi, "1.33.0", Some(54881), None),
     // Top level or-patterns (`p | q`) in `if let` and `while let`.
     (accepted, if_while_or_patterns, "1.33.0", Some(48215), None),
+    // Allows `use x::y;` to search `x` in the current scope.
+    (accepted, uniform_paths, "1.32.0", Some(53130), None),
 );
 
 // If you change this, please modify `src/doc/unstable-book` as well. You must
diff --git a/src/test/run-pass/uniform-paths/auxiliary/issue-53691.rs b/src/test/run-pass/uniform-paths/auxiliary/issue-53691.rs
index e8e25d87747..a4653317860 100644
--- a/src/test/run-pass/uniform-paths/auxiliary/issue-53691.rs
+++ b/src/test/run-pass/uniform-paths/auxiliary/issue-53691.rs
@@ -1,7 +1,5 @@
 // edition:2018
 
-#![feature(uniform_paths)]
-
 mod m { pub fn f() {} }
 mod n { pub fn g() {} }
 
diff --git a/src/test/run-pass/uniform-paths/basic-nested.rs b/src/test/run-pass/uniform-paths/basic-nested.rs
index 0b95618ded5..e4e8b32c70e 100644
--- a/src/test/run-pass/uniform-paths/basic-nested.rs
+++ b/src/test/run-pass/uniform-paths/basic-nested.rs
@@ -1,12 +1,12 @@
-// run-pass
-#![allow(unused_imports)]
-#![allow(non_camel_case_types)]
+// This test is similar to `basic.rs`, but nested in modules.
 
+// run-pass
 // edition:2018
 
-#![feature(decl_macro, uniform_paths)]
+#![feature(decl_macro)]
 
-// This test is similar to `basic.rs`, but nested in modules.
+#![allow(unused_imports)]
+#![allow(non_camel_case_types)]
 
 mod foo {
     // Test that ambiguity errors are not emitted between `self::test` and
diff --git a/src/test/run-pass/uniform-paths/basic.rs b/src/test/run-pass/uniform-paths/basic.rs
index 347e0bc00f1..4e2e2dedef6 100644
--- a/src/test/run-pass/uniform-paths/basic.rs
+++ b/src/test/run-pass/uniform-paths/basic.rs
@@ -1,10 +1,8 @@
 // run-pass
-#![allow(unused_imports)]
-#![allow(non_camel_case_types)]
-
 // edition:2018
 
-#![feature(uniform_paths)]
+#![allow(unused_imports)]
+#![allow(non_camel_case_types)]
 
 // Test that ambiguity errors are not emitted between `self::test` and
 // `::test`, assuming the latter (crate) is not in `extern_prelude`.
diff --git a/src/test/run-pass/uniform-paths/macros-nested.rs b/src/test/run-pass/uniform-paths/macros-nested.rs
index cf33c4860a1..a62a28bb94d 100644
--- a/src/test/run-pass/uniform-paths/macros-nested.rs
+++ b/src/test/run-pass/uniform-paths/macros-nested.rs
@@ -1,11 +1,9 @@
-// run-pass
-#![allow(non_camel_case_types)]
+// This test is similar to `macros.rs`, but nested in modules.
 
+// run-pass
 // edition:2018
 
-#![feature(uniform_paths)]
-
-// This test is similar to `macros.rs`, but nested in modules.
+#![allow(non_camel_case_types)]
 
 mod foo {
     // Test that ambiguity errors are not emitted between `self::test` and
diff --git a/src/test/run-pass/uniform-paths/macros.rs b/src/test/run-pass/uniform-paths/macros.rs
index 332c2266e32..31b809f0cfd 100644
--- a/src/test/run-pass/uniform-paths/macros.rs
+++ b/src/test/run-pass/uniform-paths/macros.rs
@@ -1,11 +1,9 @@
-// run-pass
-#![allow(non_camel_case_types)]
+// This test is similar to `basic.rs`, but with macros defining local items.
 
+// run-pass
 // edition:2018
 
-#![feature(uniform_paths)]
-
-// This test is similar to `basic.rs`, but with macros defining local items.
+#![allow(non_camel_case_types)]
 
 // Test that ambiguity errors are not emitted between `self::test` and
 // `::test`, assuming the latter (crate) is not in `extern_prelude`.
diff --git a/src/test/run-pass/uniform-paths/same-crate.rs b/src/test/run-pass/uniform-paths/same-crate.rs
index 18a7d089a9b..ce4cc13d9ec 100644
--- a/src/test/run-pass/uniform-paths/same-crate.rs
+++ b/src/test/run-pass/uniform-paths/same-crate.rs
@@ -1,9 +1,6 @@
 // run-pass
-
 // edition:2018
 
-#![feature(uniform_paths)]
-
 pub const A: usize = 0;
 
 pub mod foo {
diff --git a/src/test/ui/editions/edition-imports-2015.rs b/src/test/ui/editions/edition-imports-2015.rs
index b89ca28e279..5ba45b19dde 100644
--- a/src/test/ui/editions/edition-imports-2015.rs
+++ b/src/test/ui/editions/edition-imports-2015.rs
@@ -3,8 +3,6 @@
 // aux-build:edition-imports-2018.rs
 // aux-build:absolute.rs
 
-#![feature(uniform_paths)]
-
 #[macro_use]
 extern crate edition_imports_2018;
 
diff --git a/src/test/ui/editions/edition-imports-2015.stderr b/src/test/ui/editions/edition-imports-2015.stderr
index fb6b2e64ef5..816ab21d814 100644
--- a/src/test/ui/editions/edition-imports-2015.stderr
+++ b/src/test/ui/editions/edition-imports-2015.stderr
@@ -1,5 +1,5 @@
 error: cannot glob-import all possible crates
-  --> $DIR/edition-imports-2015.rs:25:5
+  --> $DIR/edition-imports-2015.rs:23:5
    |
 LL |     gen_glob!(); //~ ERROR cannot glob-import all possible crates
    |     ^^^^^^^^^^^^
diff --git a/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr b/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr
index 3cf967dbf70..7c78fbb26a1 100644
--- a/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr
+++ b/src/test/ui/editions/edition-imports-virtual-2015-gated.stderr
@@ -1,4 +1,4 @@
-error[E0658]: imports can only refer to extern crate names passed with `--extern` in macros originating from 2015 edition (see issue #53130)
+error: imports can only refer to extern crate names passed with `--extern` in macros originating from 2015 edition
   --> <::edition_imports_2015::gen_gated macros>:1:50
    |
 LL | (  ) => { fn check_gated (  ) { enum E { A } use E :: * ; } }
@@ -9,7 +9,6 @@ LL | (  ) => { fn check_gated (  ) { enum E { A } use E :: * ; } }
 LL |     gen_gated!();
    |     ------------- not an extern crate passed with `--extern`
    |
-   = help: add #![feature(uniform_paths)] to the crate attributes to enable
 note: this import refers to the enum defined here
   --> $DIR/edition-imports-virtual-2015-gated.rs:9:5
    |
@@ -19,4 +18,3 @@ LL |     gen_gated!();
 
 error: aborting due to previous error
 
-For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-uniform-paths.rs b/src/test/ui/feature-gates/feature-gate-uniform-paths.rs
deleted file mode 100644
index 71f880aae2c..00000000000
--- a/src/test/ui/feature-gates/feature-gate-uniform-paths.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-// edition:2018
-
-pub mod foo {
-    pub use bar::Bar; //~ ERROR imports can only refer to extern crate names
-
-    pub mod bar {
-        pub struct Bar;
-    }
-}
-
-use inline; //~ ERROR imports can only refer to extern crate names
-
-use Vec; //~ ERROR imports can only refer to extern crate names
-
-use vec; //~ ERROR imports can only refer to extern crate names
-
-fn main() {
-    let _ = foo::Bar;
-}
diff --git a/src/test/ui/feature-gates/feature-gate-uniform-paths.stderr b/src/test/ui/feature-gates/feature-gate-uniform-paths.stderr
deleted file mode 100644
index 8b79e597e63..00000000000
--- a/src/test/ui/feature-gates/feature-gate-uniform-paths.stderr
+++ /dev/null
@@ -1,50 +0,0 @@
-error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130)
-  --> $DIR/feature-gate-uniform-paths.rs:4:13
-   |
-LL |       pub use bar::Bar; //~ ERROR imports can only refer to extern crate names
-   |               ^^^
-LL | 
-LL | /     pub mod bar {
-LL | |         pub struct Bar;
-LL | |     }
-   | |_____- not an extern crate passed with `--extern`
-   |
-   = help: add #![feature(uniform_paths)] to the crate attributes to enable
-note: this import refers to the module defined here
-  --> $DIR/feature-gate-uniform-paths.rs:6:5
-   |
-LL | /     pub mod bar {
-LL | |         pub struct Bar;
-LL | |     }
-   | |_____^
-
-error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130)
-  --> $DIR/feature-gate-uniform-paths.rs:11:5
-   |
-LL | use inline; //~ ERROR imports can only refer to extern crate names
-   |     ^^^^^^ not an extern crate passed with `--extern`
-   |
-   = help: add #![feature(uniform_paths)] to the crate attributes to enable
-   = note: this import refers to a built-in attribute
-
-error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130)
-  --> $DIR/feature-gate-uniform-paths.rs:13:5
-   |
-LL | use Vec; //~ ERROR imports can only refer to extern crate names
-   |     ^^^ not an extern crate passed with `--extern`
-   |
-   = help: add #![feature(uniform_paths)] to the crate attributes to enable
-   = note: this import refers to a struct from prelude
-
-error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130)
-  --> $DIR/feature-gate-uniform-paths.rs:15:5
-   |
-LL | use vec; //~ ERROR imports can only refer to extern crate names
-   |     ^^^ not an extern crate passed with `--extern`
-   |
-   = help: add #![feature(uniform_paths)] to the crate attributes to enable
-   = note: this import refers to a macro from prelude
-
-error: aborting due to 4 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/imports/issue-56125.rs b/src/test/ui/imports/issue-56125.rs
index 0327522e4b8..ec5747b4bca 100644
--- a/src/test/ui/imports/issue-56125.rs
+++ b/src/test/ui/imports/issue-56125.rs
@@ -2,8 +2,6 @@
 // compile-flags:--extern issue_56125
 // aux-build:issue-56125.rs
 
-#![feature(uniform_paths)]
-
 mod m1 {
     use issue_56125::last_segment::*;
     //~^ ERROR `issue_56125` is ambiguous
diff --git a/src/test/ui/imports/issue-56125.stderr b/src/test/ui/imports/issue-56125.stderr
index 210f6a43996..13d4068b562 100644
--- a/src/test/ui/imports/issue-56125.stderr
+++ b/src/test/ui/imports/issue-56125.stderr
@@ -1,11 +1,11 @@
 error[E0432]: unresolved import `empty::issue_56125`
-  --> $DIR/issue-56125.rs:19:9
+  --> $DIR/issue-56125.rs:17:9
    |
 LL |     use empty::issue_56125; //~ ERROR unresolved import `empty::issue_56125`
    |         ^^^^^^^^^^^^^^^^^^ no `issue_56125` in `m3::empty`
 
 error[E0659]: `issue_56125` is ambiguous (name vs any other name during import resolution)
-  --> $DIR/issue-56125.rs:8:9
+  --> $DIR/issue-56125.rs:6:9
    |
 LL |     use issue_56125::last_segment::*;
    |         ^^^^^^^^^^^ ambiguous name
@@ -13,14 +13,14 @@ LL |     use issue_56125::last_segment::*;
    = note: `issue_56125` could refer to an extern crate passed with `--extern`
    = help: use `::issue_56125` to refer to this extern crate unambiguously
 note: `issue_56125` could also refer to the module imported here
-  --> $DIR/issue-56125.rs:8:9
+  --> $DIR/issue-56125.rs:6:9
    |
 LL |     use issue_56125::last_segment::*;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = help: use `self::issue_56125` to refer to this module unambiguously
 
 error[E0659]: `issue_56125` is ambiguous (name vs any other name during import resolution)
-  --> $DIR/issue-56125.rs:13:9
+  --> $DIR/issue-56125.rs:11:9
    |
 LL |     use issue_56125::non_last_segment::non_last_segment::*;
    |         ^^^^^^^^^^^ ambiguous name
@@ -28,14 +28,14 @@ LL |     use issue_56125::non_last_segment::non_last_segment::*;
    = note: `issue_56125` could refer to an extern crate passed with `--extern`
    = help: use `::issue_56125` to refer to this extern crate unambiguously
 note: `issue_56125` could also refer to the module imported here
-  --> $DIR/issue-56125.rs:13:9
+  --> $DIR/issue-56125.rs:11:9
    |
 LL |     use issue_56125::non_last_segment::non_last_segment::*;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = help: use `self::issue_56125` to refer to this module unambiguously
 
 error[E0659]: `issue_56125` is ambiguous (name vs any other name during import resolution)
-  --> $DIR/issue-56125.rs:20:9
+  --> $DIR/issue-56125.rs:18:9
    |
 LL |     use issue_56125::*; //~ ERROR `issue_56125` is ambiguous
    |         ^^^^^^^^^^^ ambiguous name
@@ -43,7 +43,7 @@ LL |     use issue_56125::*; //~ ERROR `issue_56125` is ambiguous
    = note: `issue_56125` could refer to an extern crate passed with `--extern`
    = help: use `::issue_56125` to refer to this extern crate unambiguously
 note: `issue_56125` could also refer to the module imported here
-  --> $DIR/issue-56125.rs:20:9
+  --> $DIR/issue-56125.rs:17:9
    |
 LL |     use issue_56125::*; //~ ERROR `issue_56125` is ambiguous
    |         ^^^^^^^^^^^^^^
diff --git a/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.rs b/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.rs
index 1dd428b7c83..dd21de75aaf 100644
--- a/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.rs
+++ b/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.rs
@@ -1,7 +1,5 @@
 // edition:2018
 
-#![feature(uniform_paths)]
-
 // Tests that arbitrary crates (other than `core`, `std` and `meta`)
 // aren't allowed without `--extern`, even if they're in the sysroot.
 use alloc; //~ ERROR unresolved import `alloc`
diff --git a/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.stderr b/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.stderr
index e4eaa1dc3d2..3bea7816b30 100644
--- a/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.stderr
+++ b/src/test/ui/rfc-2126-extern-absolute-paths/not-whitelisted.stderr
@@ -1,11 +1,11 @@
 error: cannot import a built-in macro
-  --> $DIR/not-whitelisted.rs:8:5
+  --> $DIR/not-whitelisted.rs:6:5
    |
 LL | use test; //~ ERROR cannot import a built-in macro
    |     ^^^^
 
 error[E0432]: unresolved import `alloc`
-  --> $DIR/not-whitelisted.rs:7:5
+  --> $DIR/not-whitelisted.rs:5:5
    |
 LL | use alloc; //~ ERROR unresolved import `alloc`
    |     ^^^^^ no `alloc` external crate
diff --git a/src/test/ui/rust-2018/future-proofing-locals.rs b/src/test/ui/rust-2018/future-proofing-locals.rs
index d777b1165f3..5c377dda7c6 100644
--- a/src/test/ui/rust-2018/future-proofing-locals.rs
+++ b/src/test/ui/rust-2018/future-proofing-locals.rs
@@ -1,6 +1,5 @@
 // edition:2018
 
-#![feature(uniform_paths)]
 #![allow(non_camel_case_types)]
 
 mod T {
diff --git a/src/test/ui/rust-2018/future-proofing-locals.stderr b/src/test/ui/rust-2018/future-proofing-locals.stderr
index 594b22496e7..68354b332a9 100644
--- a/src/test/ui/rust-2018/future-proofing-locals.stderr
+++ b/src/test/ui/rust-2018/future-proofing-locals.stderr
@@ -1,47 +1,47 @@
 error: imports cannot refer to type parameters
-  --> $DIR/future-proofing-locals.rs:14:9
+  --> $DIR/future-proofing-locals.rs:13:9
    |
 LL |     use T as _; //~ ERROR imports cannot refer to type parameters
    |         ^
 
 error: imports cannot refer to type parameters
-  --> $DIR/future-proofing-locals.rs:15:9
+  --> $DIR/future-proofing-locals.rs:14:9
    |
 LL |     use T::U; //~ ERROR imports cannot refer to type parameters
    |         ^
 
 error: imports cannot refer to type parameters
-  --> $DIR/future-proofing-locals.rs:16:9
+  --> $DIR/future-proofing-locals.rs:15:9
    |
 LL |     use T::*; //~ ERROR imports cannot refer to type parameters
    |         ^
 
 error: imports cannot refer to local variables
-  --> $DIR/future-proofing-locals.rs:26:9
+  --> $DIR/future-proofing-locals.rs:25:9
    |
 LL |     use x as _; //~ ERROR imports cannot refer to local variables
    |         ^
 
 error: imports cannot refer to local variables
-  --> $DIR/future-proofing-locals.rs:32:9
+  --> $DIR/future-proofing-locals.rs:31:9
    |
 LL |     use x; //~ ERROR imports cannot refer to local variables
    |         ^
 
 error: imports cannot refer to local variables
-  --> $DIR/future-proofing-locals.rs:38:17
+  --> $DIR/future-proofing-locals.rs:37:17
    |
 LL |             use x; //~ ERROR imports cannot refer to local variables
    |                 ^
 
 error: imports cannot refer to type parameters
-  --> $DIR/future-proofing-locals.rs:46:10
+  --> $DIR/future-proofing-locals.rs:45:10
    |
 LL |     use {T as _, x}; //~ ERROR imports cannot refer to type parameters
    |          ^
 
 error: imports cannot refer to local variables
-  --> $DIR/future-proofing-locals.rs:46:18
+  --> $DIR/future-proofing-locals.rs:45:18
    |
 LL |     use {T as _, x}; //~ ERROR imports cannot refer to type parameters
    |                  ^
diff --git a/src/test/ui/rust-2018/local-path-suggestions-2018.rs b/src/test/ui/rust-2018/local-path-suggestions-2018.rs
index 824405074ab..5eafbb2c2fc 100644
--- a/src/test/ui/rust-2018/local-path-suggestions-2018.rs
+++ b/src/test/ui/rust-2018/local-path-suggestions-2018.rs
@@ -2,8 +2,6 @@
 // compile-flags:--extern baz
 // edition:2018
 
-#![feature(uniform_paths)]
-
 mod foo {
     pub type Bar = u32;
 }
diff --git a/src/test/ui/rust-2018/local-path-suggestions-2018.stderr b/src/test/ui/rust-2018/local-path-suggestions-2018.stderr
index 8425ee0752e..71c8289264f 100644
--- a/src/test/ui/rust-2018/local-path-suggestions-2018.stderr
+++ b/src/test/ui/rust-2018/local-path-suggestions-2018.stderr
@@ -1,5 +1,5 @@
 error[E0432]: unresolved import `foo`
-  --> $DIR/local-path-suggestions-2018.rs:12:9
+  --> $DIR/local-path-suggestions-2018.rs:10:9
    |
 LL |     use foo::Bar; //~ ERROR unresolved import `foo`
    |         ^^^ did you mean `crate::foo`?
@@ -7,7 +7,7 @@ LL |     use foo::Bar; //~ ERROR unresolved import `foo`
    = note: `use` statements changed in Rust 2018; read more at <https://doc.rust-lang.org/edition-guide/rust-2018/module-system/path-clarity.html>
 
 error[E0432]: unresolved import `foobar`
-  --> $DIR/local-path-suggestions-2018.rs:21:5
+  --> $DIR/local-path-suggestions-2018.rs:19:5
    |
 LL | use foobar::Baz; //~ ERROR unresolved import `foobar`
    |     ^^^^^^ did you mean `baz::foobar`?
diff --git a/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.rs b/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.rs
index 19be7dc9640..3f5897901a0 100644
--- a/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.rs
+++ b/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.rs
@@ -1,7 +1,5 @@
 // edition:2018
 
-#![feature(uniform_paths)]
-
 mod my {
     pub mod sub {
         pub fn bar() {}
diff --git a/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.stderr b/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.stderr
index 0088296b1a4..4a01ba5088f 100644
--- a/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.stderr
+++ b/src/test/ui/rust-2018/uniform-paths/block-scoped-shadow-nested.stderr
@@ -1,16 +1,16 @@
 error[E0659]: `sub` is ambiguous (name vs any other name during import resolution)
-  --> $DIR/block-scoped-shadow-nested.rs:18:13
+  --> $DIR/block-scoped-shadow-nested.rs:16:13
    |
 LL |         use sub::bar; //~ ERROR `sub` is ambiguous
    |             ^^^ ambiguous name
    |
 note: `sub` could refer to the module imported here
-  --> $DIR/block-scoped-shadow-nested.rs:16:9
+  --> $DIR/block-scoped-shadow-nested.rs:14:9
    |
 LL |     use my::sub;
    |         ^^^^^^^
 note: `sub` could also refer to the module defined here
-  --> $DIR/block-scoped-shadow-nested.rs:11:1
+  --> $DIR/block-scoped-shadow-nested.rs:9:1
    |
 LL | / mod sub {
 LL | |     pub fn bar() {}
diff --git a/src/test/ui/rust-2018/uniform-paths/fn-local-enum.rs b/src/test/ui/rust-2018/uniform-paths/fn-local-enum.rs
index a7bc625bbf0..0c2da1884b7 100644
--- a/src/test/ui/rust-2018/uniform-paths/fn-local-enum.rs
+++ b/src/test/ui/rust-2018/uniform-paths/fn-local-enum.rs
@@ -1,8 +1,6 @@
 // compile-pass
 // edition:2018
 
-#![feature(uniform_paths)]
-
 fn main() {
     enum E { A, B, C }
 
diff --git a/src/test/ui/rust-2018/uniform-paths/issue-54390.rs b/src/test/ui/rust-2018/uniform-paths/issue-54390.rs
deleted file mode 100644
index 536cc25e35a..00000000000
--- a/src/test/ui/rust-2018/uniform-paths/issue-54390.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// edition:2018
-
-#![deny(unused)]
-
-use std::fmt;
-
-// No "unresolved import" + "unused import" combination here.
-use fmt::Write; //~ ERROR imports can only refer to extern crate names
-                //~| ERROR unused import: `fmt::Write`
-
-fn main() {}
diff --git a/src/test/ui/rust-2018/uniform-paths/issue-54390.stderr b/src/test/ui/rust-2018/uniform-paths/issue-54390.stderr
deleted file mode 100644
index 8f86698c9c1..00000000000
--- a/src/test/ui/rust-2018/uniform-paths/issue-54390.stderr
+++ /dev/null
@@ -1,32 +0,0 @@
-error[E0658]: imports can only refer to extern crate names passed with `--extern` on stable channel (see issue #53130)
-  --> $DIR/issue-54390.rs:8:5
-   |
-LL | use std::fmt;
-   |     -------- not an extern crate passed with `--extern`
-...
-LL | use fmt::Write; //~ ERROR imports can only refer to extern crate names
-   |     ^^^
-   |
-   = help: add #![feature(uniform_paths)] to the crate attributes to enable
-note: this import refers to the module imported here
-  --> $DIR/issue-54390.rs:5:5
-   |
-LL | use std::fmt;
-   |     ^^^^^^^^
-
-error: unused import: `fmt::Write`
-  --> $DIR/issue-54390.rs:8:5
-   |
-LL | use fmt::Write; //~ ERROR imports can only refer to extern crate names
-   |     ^^^^^^^^^^
-   |
-note: lint level defined here
-  --> $DIR/issue-54390.rs:3:9
-   |
-LL | #![deny(unused)]
-   |         ^^^^^^
-   = note: #[deny(unused_imports)] implied by #[deny(unused)]
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/rust-2018/uniform-paths/macro-rules.rs b/src/test/ui/rust-2018/uniform-paths/macro-rules.rs
index e3c1b4e8ab3..6c3f1892cb3 100644
--- a/src/test/ui/rust-2018/uniform-paths/macro-rules.rs
+++ b/src/test/ui/rust-2018/uniform-paths/macro-rules.rs
@@ -1,6 +1,6 @@
 // edition:2018
 
-#![feature(decl_macro, uniform_paths)]
+#![feature(decl_macro)]
 
 mod m1 {
     // Non-exported legacy macros are treated as `pub(crate)`.
@@ -14,6 +14,7 @@ mod m1 {
 mod m2 {
     macro_rules! legacy_macro { () => () }
 
+    #[allow(non_camel_case_types)]
     type legacy_macro = u8;
 
     // Legacy macro imports don't prevent names from other namespaces from being imported.
diff --git a/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.rs b/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.rs
index e153e868b31..541fc1be4e8 100644
--- a/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.rs
+++ b/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.rs
@@ -1,7 +1,5 @@
 // edition:2018
 
-#![feature(uniform_paths)]
-
 // Built-in attribute
 use inline as imported_inline;
 mod builtin {
diff --git a/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.stderr b/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.stderr
index 4c49cd89bdc..40b8fcf7158 100644
--- a/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.stderr
+++ b/src/test/ui/rust-2018/uniform-paths/prelude-fail-2.stderr
@@ -1,41 +1,41 @@
 error: cannot use a built-in attribute through an import
-  --> $DIR/prelude-fail-2.rs:17:3
+  --> $DIR/prelude-fail-2.rs:15:3
    |
 LL | #[imported_inline] //~ ERROR cannot use a built-in attribute through an import
    |   ^^^^^^^^^^^^^^^
    |
 note: the built-in attribute imported here
-  --> $DIR/prelude-fail-2.rs:6:5
+  --> $DIR/prelude-fail-2.rs:4:5
    |
 LL | use inline as imported_inline;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: cannot use a built-in attribute through an import
-  --> $DIR/prelude-fail-2.rs:18:3
+  --> $DIR/prelude-fail-2.rs:16:3
    |
 LL | #[builtin::imported_inline] //~ ERROR cannot use a built-in attribute through an import
    |   ^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: cannot use a tool module through an import
-  --> $DIR/prelude-fail-2.rs:19:3
+  --> $DIR/prelude-fail-2.rs:17:3
    |
 LL | #[imported_rustfmt::skip] //~ ERROR cannot use a tool module through an import
    |   ^^^^^^^^^^^^^^^^
    |
 note: the tool module imported here
-  --> $DIR/prelude-fail-2.rs:12:5
+  --> $DIR/prelude-fail-2.rs:10:5
    |
 LL | use rustfmt as imported_rustfmt;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: cannot use a tool module through an import
-  --> $DIR/prelude-fail-2.rs:20:13
+  --> $DIR/prelude-fail-2.rs:18:13
    |
 LL | #[tool_mod::imported_rustfmt::skip] //~ ERROR cannot use a tool module through an import
    |             ^^^^^^^^^^^^^^^^
    |
 note: the tool module imported here
-  --> $DIR/prelude-fail-2.rs:14:13
+  --> $DIR/prelude-fail-2.rs:12:13
    |
 LL |     pub use rustfmt as imported_rustfmt;
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/rust-2018/uniform-paths/prelude-fail.rs b/src/test/ui/rust-2018/uniform-paths/prelude-fail.rs
index c5bd50f2f56..d717884c901 100644
--- a/src/test/ui/rust-2018/uniform-paths/prelude-fail.rs
+++ b/src/test/ui/rust-2018/uniform-paths/prelude-fail.rs
@@ -1,7 +1,5 @@
 // edition:2018
 
-#![feature(uniform_paths)]
-
 // Built-in macro
 use env as env_imported; //~ ERROR cannot import a built-in macro
 
diff --git a/src/test/ui/rust-2018/uniform-paths/prelude-fail.stderr b/src/test/ui/rust-2018/uniform-paths/prelude-fail.stderr
index 794d986b82e..fdfea416b12 100644
--- a/src/test/ui/rust-2018/uniform-paths/prelude-fail.stderr
+++ b/src/test/ui/rust-2018/uniform-paths/prelude-fail.stderr
@@ -1,11 +1,11 @@
 error: cannot import a built-in macro
-  --> $DIR/prelude-fail.rs:6:5
+  --> $DIR/prelude-fail.rs:4:5
    |
 LL | use env as env_imported; //~ ERROR cannot import a built-in macro
    |     ^^^^^^^^^^^^^^^^^^^
 
 error[E0432]: unresolved import `rustfmt`
-  --> $DIR/prelude-fail.rs:9:5
+  --> $DIR/prelude-fail.rs:7:5
    |
 LL | use rustfmt::skip as imported_rustfmt_skip; //~ ERROR unresolved import `rustfmt`
    |     ^^^^^^^ not a module `rustfmt`
diff --git a/src/test/ui/rust-2018/uniform-paths/prelude.rs b/src/test/ui/rust-2018/uniform-paths/prelude.rs
index 1a6027f30d7..9a326b4c728 100644
--- a/src/test/ui/rust-2018/uniform-paths/prelude.rs
+++ b/src/test/ui/rust-2018/uniform-paths/prelude.rs
@@ -1,8 +1,6 @@
 // compile-pass
 // edition:2018
 
-#![feature(uniform_paths)]
-
 // Macro imported with `#[macro_use] extern crate`
 use vec as imported_vec;