mozilla/rust — pull request #10649 by sfackler (2013-11-25 08:14:13+00:00)
Title: Support macros with multiple expressions and statements

It's prohibitively expensive to allocate a `~[Foo]` every time a statement, declaration, item, etc is visited, especially since the vast majority will have 0 or 1 elements. I've added a `SmallVector` class that avoids allocation in the 0 and 1 element cases to take care of that.