From dbfba9dfcdd4f070411316c20b0cc529aa39621c Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Sat, 13 Oct 2018 21:24:50 +0300 Subject: [PATCH] resolve: Scale back hard-coded extern prelude additions --- src/librustc_resolve/lib.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index d479b6e2d806c..f448eb3254c6d 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -1678,13 +1678,15 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> { let mut extern_prelude: FxHashSet = session.opts.externs.iter().map(|kv| Symbol::intern(kv.0)).collect(); - // HACK(eddyb) this ignore the `no_{core,std}` attributes. - // FIXME(eddyb) warn (elsewhere) if core/std is used with `no_{core,std}`. - // if !attr::contains_name(&krate.attrs, "no_core") { - // if !attr::contains_name(&krate.attrs, "no_std") { - extern_prelude.insert(Symbol::intern("core")); - extern_prelude.insert(Symbol::intern("std")); - extern_prelude.insert(Symbol::intern("meta")); + if !attr::contains_name(&krate.attrs, "no_core") { + extern_prelude.insert(Symbol::intern("core")); + if !attr::contains_name(&krate.attrs, "no_std") { + extern_prelude.insert(Symbol::intern("std")); + if session.rust_2018() { + extern_prelude.insert(Symbol::intern("meta")); + } + } + } let mut invocations = FxHashMap(); invocations.insert(Mark::root(),