# HG changeset patch
# User Matthew Wild <mwild1@gmail.com>
# Date 1344422971 -3600
# Node ID cbc7eb5cfa8c1f2159cf340abdd76f98895a7b4b
# Parent  82b9fe0c79c540620b7227ccc8399a82e5a9b592
util.array: Accept an iterator to the array constructor

diff -r 82b9fe0c79c5 -r cbc7eb5cfa8c util/array.lua
--- a/util/array.lua	Tue Aug 07 17:01:07 2012 +0200
+++ b/util/array.lua	Wed Aug 08 11:49:31 2012 +0100
@@ -19,7 +19,10 @@
 local array_methods = {};
 local array_mt = { __index = array_methods, __tostring = function (array) return array:concat(", "); end };
 
-local function new_array(_, t)
+local function new_array(self, t, _s, _var)
+	if type(t) == "function" then -- Assume iterator
+		t = self.collect(t, _s, _var);
+	end
 	return setmetatable(t or {}, array_mt);
 end