mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 06:51:58 +00:00
Stabilize uniform_paths
This commit is contained in:
parent
2f3db49c3d
commit
79134c0517
@ -831,13 +831,12 @@ 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),
|
||||
@ -845,18 +844,10 @@ impl<'a> Resolver<'a> {
|
||||
.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);
|
||||
|
@ -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
|
||||
|
@ -1,7 +1,5 @@
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
mod m { pub fn f() {} }
|
||||
mod n { pub fn g() {} }
|
||||
|
||||
|
@ -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
|
||||
|
@ -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`.
|
||||
|
@ -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
|
||||
|
@ -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`.
|
||||
|
@ -1,9 +1,6 @@
|
||||
// run-pass
|
||||
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
pub const A: usize = 0;
|
||||
|
||||
pub mod foo {
|
||||
|
@ -3,8 +3,6 @@
|
||||
// aux-build:edition-imports-2018.rs
|
||||
// aux-build:absolute.rs
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
#[macro_use]
|
||||
extern crate edition_imports_2018;
|
||||
|
||||
|
@ -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
|
||||
| ^^^^^^^^^^^^
|
||||
|
@ -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`.
|
||||
|
@ -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;
|
||||
}
|
@ -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`.
|
@ -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
|
||||
|
@ -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
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
@ -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`
|
||||
|
@ -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
|
||||
|
@ -1,6 +1,5 @@
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
#![allow(non_camel_case_types)]
|
||||
|
||||
mod T {
|
||||
|
@ -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
|
||||
| ^
|
||||
|
@ -2,8 +2,6 @@
|
||||
// compile-flags:--extern baz
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
mod foo {
|
||||
pub type Bar = u32;
|
||||
}
|
||||
|
@ -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`?
|
||||
|
@ -1,7 +1,5 @@
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
mod my {
|
||||
pub mod sub {
|
||||
pub fn bar() {}
|
||||
|
@ -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() {}
|
||||
|
@ -1,8 +1,6 @@
|
||||
// compile-pass
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
fn main() {
|
||||
enum E { A, B, C }
|
||||
|
||||
|
@ -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() {}
|
@ -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`.
|
@ -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.
|
||||
|
@ -1,7 +1,5 @@
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
// Built-in attribute
|
||||
use inline as imported_inline;
|
||||
mod builtin {
|
||||
|
@ -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;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -1,7 +1,5 @@
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
// Built-in macro
|
||||
use env as env_imported; //~ ERROR cannot import a built-in macro
|
||||
|
||||
|
@ -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`
|
||||
|
@ -1,8 +1,6 @@
|
||||
// compile-pass
|
||||
// edition:2018
|
||||
|
||||
#![feature(uniform_paths)]
|
||||
|
||||
// Macro imported with `#[macro_use] extern crate`
|
||||
use vec as imported_vec;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user