about summary refs log tree commit diff
path: root/src/libsyntax/util/small_vector.rs
diff options
context:
space:
mode:
authorChristopher Chambers <chris.chambers@peanutcode.com>2015-04-10 23:06:34 -0500
committerChristopher Chambers <chris.chambers@peanutcode.com>2015-04-10 23:42:40 -0500
commit22eb3193a62fa01e97bf53d5f5aa74ca8ea57a67 (patch)
tree04d19566becd5f46a167f8117ad881bbc5d58748 /src/libsyntax/util/small_vector.rs
parentfae29e497c08fcdde8a429a7e2b656e7a8b6cc17 (diff)
downloadrust-22eb3193a62fa01e97bf53d5f5aa74ca8ea57a67.tar.gz
rust-22eb3193a62fa01e97bf53d5f5aa74ca8ea57a67.zip
Simplifications to statement macro handling.
SmallVector::pop no longer worries about converting a Many repr downward
to One or Zero.

expand_stmt makes use of `if let` for style purposes.
Diffstat (limited to 'src/libsyntax/util/small_vector.rs')
-rw-r--r--src/libsyntax/util/small_vector.rs24
1 files changed, 1 insertions, 23 deletions
diff --git a/src/libsyntax/util/small_vector.rs b/src/libsyntax/util/small_vector.rs
index c4b096d656f..6b864d52947 100644
--- a/src/libsyntax/util/small_vector.rs
+++ b/src/libsyntax/util/small_vector.rs
@@ -79,29 +79,7 @@ impl<T> SmallVector<T> {
                     _ => unreachable!()
                 }
             }
-            Many(..) => {
-                let mut many = mem::replace(&mut self.repr, Zero);
-                let item =
-                    match many {
-                        Many(ref mut vs) if vs.len() == 1 => {
-                            // self.repr is already Zero
-                            vs.pop()
-                        },
-                        Many(ref mut vs) if vs.len() == 2 => {
-                            let item = vs.pop();
-                            mem::replace(&mut self.repr, One(vs.pop().unwrap()));
-                            item
-                        },
-                        Many(ref mut vs) if vs.len() > 2 => {
-                            let item = vs.pop();
-                            let rest = mem::replace(vs, vec!());
-                            mem::replace(&mut self.repr, Many(rest));
-                            item
-                        },
-                        _ => unreachable!()
-                    };
-                item
-            }
+            Many(ref mut vs) => vs.pop(),
         }
     }