diff options
| author | Bruce Hill <bitbucket@bruce-hill.com> | 2018-05-26 15:04:31 -0700 |
|---|---|---|
| committer | Bruce Hill <bitbucket@bruce-hill.com> | 2018-05-26 15:04:38 -0700 |
| commit | 8cb2788e0dc514e6d6436a7a03e87e414327ec94 (patch) | |
| tree | 47c76bbc2d142c200262d3beaf4ad59fc56ca385 /code_obj.moon | |
| parent | 0b4a81191ae61d53832d85614f0bb0f2912d7a39 (diff) | |
Re-added sources.
Diffstat (limited to 'code_obj.moon')
| -rw-r--r-- | code_obj.moon | 6 |
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' |
