From 8cb2788e0dc514e6d6436a7a03e87e414327ec94 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 26 May 2018 15:04:31 -0700 Subject: Re-added sources. --- code_obj.moon | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'code_obj.moon') 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' -- cgit v1.2.3