resolve: Extern prelude is for type namespace only

This commit is contained in:
Vadim Petrochenkov 2018-11-27 03:26:37 +03:00
parent 45205f2ac1
commit cd2e98dbd3
2 changed files with 11 additions and 1 deletions

View File

@ -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.

View File

@ -0,0 +1,8 @@
// compile-pass
// edition:2018
use ::std;
fn main() {
let std = 10;
}