about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVictor Berger <victor.berger@m4x.org>2015-08-06 12:47:10 +0200
committerVictor Berger <victor.berger@m4x.org>2015-08-06 12:47:10 +0200
commit8e24091f98675390620172ba25fbfbbea87d150b (patch)
tree94e2528e8eb662afed6d5492d50a71b88643bb70
parent751675938edef0e904086b29dc4d15bdaf519a41 (diff)
Factor inc/dec count methods.
-rw-r--r--src/librustc_resolve/build_reduced_graph.rs6
-rw-r--r--src/librustc_resolve/lib.rs24
-rw-r--r--src/librustc_resolve/resolve_imports.rs9
3 files changed, 30 insertions, 9 deletions
diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs
index 355578ddccf..75b99bed431 100644
--- a/src/librustc_resolve/build_reduced_graph.rs
+++ b/src/librustc_resolve/build_reduced_graph.rs
@@ -928,7 +928,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
         self.unresolved_imports += 1;
 
         if is_public {
-            module_.pub_count.set(module_.pub_count.get() + 1);
+            module_.inc_pub_count();
         }
 
         // Bump the reference count on the name. Or, if this is a glob, set
@@ -963,9 +963,9 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> {
                 // Set the glob flag. This tells us that we don't know the
                 // module's exports ahead of time.
 
-                module_.glob_count.set(module_.glob_count.get() + 1);
+                module_.inc_glob_count();
                 if is_public {
-                    module_.pub_glob_count.set(module_.pub_glob_count.get() + 1);
+                    module_.inc_pub_glob_count();
                 }
             }
         }
diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs
index 1dd26fe7c58..50a8c588533 100644
--- a/src/librustc_resolve/lib.rs
+++ b/src/librustc_resolve/lib.rs
@@ -749,6 +749,30 @@ impl Module {
     }
 }
 
+impl Module {
+    pub fn inc_glob_count(&self) {
+        self.glob_count.set(self.glob_count.get() + 1);
+    }
+    pub fn dec_glob_count(&self) {
+        assert!(self.glob_count.get() > 0);
+        self.glob_count.set(self.glob_count.get() - 1);
+    }
+    pub fn inc_pub_count(&self) {
+        self.pub_count.set(self.pub_count.get() + 1);
+    }
+    pub fn dec_pub_count(&self) {
+        assert!(self.pub_count.get() > 0);
+        self.pub_count.set(self.pub_count.get() - 1);
+    }
+    pub fn inc_pub_glob_count(&self) {
+        self.pub_glob_count.set(self.pub_glob_count.get() + 1);
+    }
+    pub fn dec_pub_glob_count(&self) {
+        assert!(self.pub_glob_count.get() > 0);
+        self.pub_glob_count.set(self.pub_glob_count.get() - 1);
+    }
+}
+
 impl fmt::Debug for Module {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
         write!(f, "{:?}, kind: {:?}, {}",
diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs
index 18fefa967ea..bab9f19bbff 100644
--- a/src/librustc_resolve/resolve_imports.rs
+++ b/src/librustc_resolve/resolve_imports.rs
@@ -407,11 +407,9 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
         if resolution_result.success() {
             match import_directive.subclass {
                 GlobImport => {
-                    assert!(module_.glob_count.get() >= 1);
-                    module_.glob_count.set(module_.glob_count.get() - 1);
+                    module_.dec_glob_count();
                     if import_directive.is_public {
-                        assert!(module_.pub_glob_count.get() >= 1);
-                        module_.pub_glob_count.set(module_.pub_glob_count.get() - 1);
+                        module_.dec_pub_glob_count();
                     }
                 }
                 SingleImport(..) => {
@@ -419,8 +417,7 @@ impl<'a, 'b:'a, 'tcx:'b> ImportResolver<'a, 'b, 'tcx> {
                 }
             }
             if import_directive.is_public {
-                assert!(module_.pub_count.get() >= 1);
-                module_.pub_count.set(module_.pub_count.get() - 1);
+                module_.dec_pub_count();
             }
         }