From 69aaea030e08e083151aa25b8080eddd0d4c1683 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 9 Nov 2018 16:40:36 -0800 Subject: No longer passing `tree` to every compile action. Now, you can just return a LuaCode object, and it will automatically get a source from `tree` if it didn't already have a source. Plus some fixes/cleanup. --- containers.lua | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'containers.lua') diff --git a/containers.lua b/containers.lua index 17d37a2..f33c2ff 100644 --- a/containers.lua +++ b/containers.lua @@ -210,19 +210,21 @@ local _list_mt = { end, from_1_to = function(self, start, stop) local n = #self - if n < 0 then + if start < 0 then start = (n + 1 - start) end - if n < 0 then + if stop < 0 then stop = (n + 1 - stop) end - local _accum_0 = { } - local _len_0 = 1 - for i = start, stop do - _accum_0[_len_0] = self[i] - _len_0 = _len_0 + 1 - end - return _accum_0 + return List((function() + local _accum_0 = { } + local _len_0 = 1 + for i = start, stop do + _accum_0[_len_0] = self[i] + _len_0 = _len_0 + 1 + end + return _accum_0 + end)()) end }, __newindex = function(self, k, v) -- cgit v1.2.3