about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-08-17 00:22:03 +0000
committerJeffrey Seyfried <jeffrey.seyfried@gmail.com>2016-08-18 03:13:39 +0000
commitd107d2259098a2d683bb7c92876ec0abdf4716ca (patch)
tree57744e273a6c328c2d23c0b6e9df3a5e5f3f69fb /src
parentaef6971ca96be5f04291420cc773b8bfacb8b36d (diff)
downloadrust-d107d2259098a2d683bb7c92876ec0abdf4716ca.tar.gz
rust-d107d2259098a2d683bb7c92876ec0abdf4716ca.zip
Refactor `module.add_import_directive()` -> `resolver.add_import_directive()`.
Diffstat (limited to 'src')
-rw-r--r--src/librustc_resolve/build_reduced_graph.rs6
-rw-r--r--src/librustc_resolve/resolve_imports.rs15
2 files changed, 11 insertions, 10 deletions
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs
index 116c1b7a6d0..ea946d0117b 100644
--- a/src/librustc_resolve/build_reduced_graph.rs
+++ b/src/librustc_resolve/build_reduced_graph.rs
@@ -130,7 +130,7 @@ impl<'b> Resolver<'b> {
 
                         let subclass = ImportDirectiveSubclass::single(binding.name, source_name);
                         let span = view_path.span;
-                        parent.add_import_directive(module_path, subclass, span, item.id, vis);
+                        self.add_import_directive(module_path, subclass, span, item.id, vis);
                         self.unresolved_imports += 1;
                     }
                     ViewPathList(_, ref source_items) => {
@@ -176,14 +176,14 @@ impl<'b> Resolver<'b> {
                             };
                             let subclass = ImportDirectiveSubclass::single(rename, name);
                             let (span, id) = (source_item.span, source_item.node.id());
-                            parent.add_import_directive(module_path, subclass, span, id, vis);
+                            self.add_import_directive(module_path, subclass, span, id, vis);
                             self.unresolved_imports += 1;
                         }
                     }
                     ViewPathGlob(_) => {
                         let subclass = GlobImport { is_prelude: is_prelude };
                         let span = view_path.span;
-                        parent.add_import_directive(module_path, subclass, span, item.id, vis);
+                        self.add_import_directive(module_path, subclass, span, item.id, vis);
                         self.unresolved_imports += 1;
                     }
                 }
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index e08a30e40d3..a0539206fa4 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -212,8 +212,11 @@ impl<'a> ::ModuleS<'a> {
 
         Failed(None)
     }
+}
 
-    pub fn add_import_directive(&self,
+impl<'a> Resolver<'a> {
+    // Add an import directive to the current module.
+    pub fn add_import_directive(&mut self,
                                 module_path: Vec<Name>,
                                 subclass: ImportDirectiveSubclass,
                                 span: Span,
@@ -228,23 +231,21 @@ impl<'a> ::ModuleS<'a> {
             vis: vis,
         });
 
-        self.unresolved_imports.borrow_mut().push(directive);
+        self.current_module.unresolved_imports.borrow_mut().push(directive);
         match directive.subclass {
             SingleImport { target, .. } => {
                 for &ns in &[ValueNS, TypeNS] {
-                    self.resolution(target, ns).borrow_mut().single_imports
-                                                            .add_directive(directive);
+                    let mut resolution = self.current_module.resolution(target, ns).borrow_mut();
+                    resolution.single_imports.add_directive(directive);
                 }
             }
             // We don't add prelude imports to the globs since they only affect lexical scopes,
             // which are not relevant to import resolution.
             GlobImport { is_prelude: true } => {}
-            GlobImport { .. } => self.globs.borrow_mut().push(directive),
+            GlobImport { .. } => self.current_module.globs.borrow_mut().push(directive),
         }
     }
-}
 
-impl<'a> Resolver<'a> {
     // Given a binding and an import directive that resolves to it,
     // return the corresponding binding defined by the import directive.
     fn import(&mut self, binding: &'a NameBinding<'a>, directive: &'a ImportDirective<'a>)