about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-02-16 13:14:32 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-03-04 20:48:54 +0000
commit51ca449f74f5d35677ce58988354994299ab45dd (patch)
tree76e7817ca1cd5dbb5f946e92673ab0efb12cb4ca
parent20b99d303d0fb70c98d8c460324c8e1824fef482 (diff)
downloadrust-51ca449f74f5d35677ce58988354994299ab45dd.tar.gz
rust-51ca449f74f5d35677ce58988354994299ab45dd.zip
Refactor away define
-rw-r--r--src/librustc_resolve/resolve_imports.rs18
1 files changed, 6 insertions, 12 deletions
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index 226b6559e68..4e6ea6e5259 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -502,7 +502,11 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
                     None
                 };
 
-                self.define(module_, target, ns, directive.import(binding, privacy_error));
+                let imported_binding = directive.import(binding, privacy_error);
+                let conflict = module_.try_define_child(target, ns, imported_binding);
+                if let Err(old_binding) = conflict {
+                    self.report_conflict(target, ns, &directive.import(binding, None), old_binding);
+                }
             }
             module_.decrement_outstanding_references_for(target, ns);
         }
@@ -613,7 +617,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
         for (&(name, ns), resolution) in target_module.resolutions.borrow().iter() {
             if let Some(Success(binding)) = resolution.try_result() {
                 if binding.defined_with(DefModifiers::IMPORTABLE | DefModifiers::PUBLIC) {
-                    self.define(module_, name, ns, directive.import(binding, None));
+                    let _ = module_.try_define_child(name, ns, directive.import(binding, None));
                 }
             }
         }
@@ -631,16 +635,6 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
         return Success(());
     }
 
-    fn define(&mut self,
-              parent: Module<'b>,
-              name: Name,
-              ns: Namespace,
-              binding: NameBinding<'b>) {
-        if let Err(old_binding) = parent.try_define_child(name, ns, binding.clone()) {
-            self.report_conflict(name, ns, &binding, old_binding);
-        }
-    }
-
     fn report_conflict(&mut self,
                        name: Name,
                        ns: Namespace,