about summary refs log tree commit diff
path: root/src/librustc_resolve
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2018-09-06 15:04:21 +0300
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2018-09-06 15:04:21 +0300
commitc34dd37f854dc4fcb8c2e3eebe4f9dae6b24784a (patch)
tree5721dc9a3bda7b512553c43ff5ab974299d309cd /src/librustc_resolve
parent27e5457f3fa6c6e322e05352f0109f2cd511396c (diff)
downloadrust-c34dd37f854dc4fcb8c2e3eebe4f9dae6b24784a.tar.gz
rust-c34dd37f854dc4fcb8c2e3eebe4f9dae6b24784a.zip
rustc_resolve: don't record uniform_paths canaries as reexports.
Diffstat (limited to 'src/librustc_resolve')
-rw-r--r--src/librustc_resolve/resolve_imports.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index c60f9293d58..3e7f33265d1 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -1155,7 +1155,15 @@ impl<'a, 'b:'a, 'c: 'b> ImportResolver<'a, 'b, 'c> {
                 None => continue,
             };
 
-            if binding.is_import() || binding.is_macro_def() {
+            // Don't reexport `uniform_path` canaries.
+            let non_canary_import = match binding.kind {
+                NameBindingKind::Import { directive, .. } => {
+                    !directive.is_uniform_paths_canary
+                }
+                _ => false,
+            };
+
+            if non_canary_import || binding.is_macro_def() {
                 let def = binding.def();
                 if def != Def::Err {
                     if !def.def_id().is_local() {