aboutsummaryrefslogtreecommitdiff
path: root/code_obj.moon
diff options
context:
space:
mode:
authorBruce Hill <bitbucket@bruce-hill.com>2018-05-26 15:04:31 -0700
committerBruce Hill <bitbucket@bruce-hill.com>2018-05-26 15:04:38 -0700
commit8cb2788e0dc514e6d6436a7a03e87e414327ec94 (patch)
tree47c76bbc2d142c200262d3beaf4ad59fc56ca385 /code_obj.moon
parent0b4a81191ae61d53832d85614f0bb0f2912d7a39 (diff)
Re-added sources.
Diffstat (limited to 'code_obj.moon')
-rw-r--r--code_obj.moon6
1 files changed, 4 insertions, 2 deletions
diff --git a/code_obj.moon b/code_obj.moon
index 66b7978..3f9e37a 100644
--- a/code_obj.moon
+++ b/code_obj.moon
@@ -72,6 +72,7 @@ class Code
@source = Source(filename, tonumber(start), tonumber(stop))
else
@source = Source(@source, 1, #tostring(self)+1)
+ assert(@source)
sub: (start,stop)=>
-- TODO: implement this better
@@ -86,6 +87,7 @@ class Code
for i=1,n
b = select(i, ...)
assert(b != self, "No recursion please.")
+ assert(not Source\is_instance(b))
bits[#bits+1] = b
if type(b) == 'string'
if spaces = match(b, "\n([ ]*)[^\n]*$")
@@ -139,13 +141,13 @@ class Lua extends Code
removals = {}
for var in *vars
assert(type(var) == 'userdata' and var.type == "Var")
- removals[var] = true
+ removals[var.value] = true
stack = {self}
while #stack > 0
lua, stack[#stack] = stack[#stack], nil
for i=#lua.free_vars,1,-1
- if removals[lua.free_vars[i]]
+ if removals[lua.free_vars[i].value]
remove lua.free_vars, i
for b in *lua.bits
if type(b) != 'string'