From 4930c22acac2cebf7e51662fb50e7b36b4c7274e Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Mon, 27 May 2024 16:33:51 -0400 Subject: Don't capture modules in closures (they're not real values) --- compile.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/compile.c b/compile.c index 891d22c8..d67715c0 100644 --- a/compile.c +++ b/compile.c @@ -1544,6 +1544,8 @@ CORD compile(env_t *env, ast_t *ast) userdata = CORD_all("new(", name, "$userdata_t"); for (int64_t i = 1; i <= Table$length(*fn_ctx.closed_vars); i++) { struct { const char *name; binding_t *b; } *entry = Table$entry(*fn_ctx.closed_vars, i); + if (entry->b->type->tag == ModuleType) + continue; def = CORD_all(def, compile_declaration(env, entry->b->type, entry->name), "; "); userdata = CORD_all(userdata, ", ", entry->b->code); } -- cgit v1.2.3