Skip to content

Commit 894a8d5

Browse files
committed
resolve: Scale back hard-coded extern prelude additions
1 parent 5229488 commit 894a8d5

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

src/librustc_resolve/lib.rs

+9-7
Original file line numberDiff line numberDiff line change
@@ -1680,13 +1680,15 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> {
16801680
let mut extern_prelude: FxHashSet<Name> =
16811681
session.opts.externs.iter().map(|kv| Symbol::intern(kv.0)).collect();
16821682

1683-
// HACK(eddyb) this ignore the `no_{core,std}` attributes.
1684-
// FIXME(eddyb) warn (elsewhere) if core/std is used with `no_{core,std}`.
1685-
// if !attr::contains_name(&krate.attrs, "no_core") {
1686-
// if !attr::contains_name(&krate.attrs, "no_std") {
1687-
extern_prelude.insert(Symbol::intern("core"));
1688-
extern_prelude.insert(Symbol::intern("std"));
1689-
extern_prelude.insert(Symbol::intern("meta"));
1683+
if !attr::contains_name(&krate.attrs, "no_core") {
1684+
extern_prelude.insert(Symbol::intern("core"));
1685+
if !attr::contains_name(&krate.attrs, "no_std") {
1686+
extern_prelude.insert(Symbol::intern("std"));
1687+
if session.rust_2018() {
1688+
extern_prelude.insert(Symbol::intern("meta"));
1689+
}
1690+
}
1691+
}
16901692

16911693
let mut invocations = FxHashMap();
16921694
invocations.insert(Mark::root(),

src/test/ui/rust-2018/issue-54006.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ error[E0432]: unresolved import `alloc`
22
--> $DIR/issue-54006.rs:16:5
33
|
44
LL | use alloc::vec;
5-
| ^^^^^ Did you mean `std::alloc`?
5+
| ^^^^^ Did you mean `core::alloc`?
66

77
error: cannot determine resolution for the macro `vec`
88
--> $DIR/issue-54006.rs:20:18

0 commit comments

Comments
 (0)