diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-10-13 21:24:50 +0300 |
|---|---|---|
| committer | Pietro Albini <pietro@pietroalbini.org> | 2018-10-18 16:58:20 +0200 |
| commit | dbfba9dfcdd4f070411316c20b0cc529aa39621c (patch) | |
| tree | 022b45833708523fe89fe3e30d055af4811d3e40 | |
| parent | 8b2e8dc8de8d3c72282dab072c2147adf179c8b2 (diff) | |
| download | rust-dbfba9dfcdd4f070411316c20b0cc529aa39621c.tar.gz rust-dbfba9dfcdd4f070411316c20b0cc529aa39621c.zip | |
resolve: Scale back hard-coded extern prelude additions
| -rw-r--r-- | src/librustc_resolve/lib.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index d479b6e2d80..f448eb3254c 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<Name> = 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(), |
