diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-11-27 03:26:37 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2018-11-27 14:35:36 +0300 |
| commit | cd2e98dbd35f078fa14fbe021f1fb3861257e9a6 (patch) | |
| tree | b23b6eb5fe1909029a9759b1495e162d6bd59fd5 | |
| parent | 45205f2ac18e926ec61f2672d16ec3b955de5652 (diff) | |
| download | rust-cd2e98dbd35f078fa14fbe021f1fb3861257e9a6.tar.gz rust-cd2e98dbd35f078fa14fbe021f1fb3861257e9a6.zip | |
resolve: Extern prelude is for type namespace only
| -rw-r--r-- | src/librustc_resolve/resolve_imports.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/imports/issue-56263.rs | 8 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs index 3bfa862f0dc..e7cd32f4e81 100644 --- a/src/librustc_resolve/resolve_imports.rs +++ b/src/librustc_resolve/resolve_imports.rs @@ -173,7 +173,9 @@ impl<'a, 'crateloader> Resolver<'a, 'crateloader> { } ModuleOrUniformRoot::ExternPrelude => { assert!(!restricted_shadowing); - return if let Some(binding) = self.extern_prelude_get(ident, !record_used) { + return if ns != TypeNS { + Err((Determined, Weak::No)) + } else if let Some(binding) = self.extern_prelude_get(ident, !record_used) { Ok(binding) } else if !self.graph_root.unresolved_invocations.borrow().is_empty() { // Macro-expanded `extern crate` items can add names to extern prelude. diff --git a/src/test/ui/imports/issue-56263.rs b/src/test/ui/imports/issue-56263.rs new file mode 100644 index 00000000000..4113d4390c3 --- /dev/null +++ b/src/test/ui/imports/issue-56263.rs @@ -0,0 +1,8 @@ +// compile-pass +// edition:2018 + +use ::std; + +fn main() { + let std = 10; +} |
