From 5131fdff6294b075cc760a8014ef8c9b6d1bf5d8 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 9 Mar 2024 18:47:56 -0500 Subject: Improve handling of secret text --- typecheck.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'typecheck.c') diff --git a/typecheck.c b/typecheck.c index bab1920b..9c9b3b19 100644 --- a/typecheck.c +++ b/typecheck.c @@ -182,13 +182,16 @@ void bind_statement(env_t *env, ast_t *statement) case LangDef: { auto def = Match(statement, LangDef); - type_t *type = Type(TextType, .lang=def->name); + type_t *type = Type(TextType, .lang=def->name, .secret=def->secret); Table_str_set(env->types, def->name, type); env_t *ns_env = namespace_env(env, def->name); set_binding(ns_env, "from_unsafe_text", new(binding_t, .type=Type(FunctionType, .args=new(arg_t, .name="text", .type=Type(TextType)), .ret=type), .code=CORD_all("(", def->name, "_t)"))); + set_binding(ns_env, "text_content", + new(binding_t, .type=Type(FunctionType, .args=new(arg_t, .name="text", .type=Type(TextType)), .ret=type), + .code="(Text_t)")); for (ast_list_t *stmt = def->namespace ? Match(def->namespace, Block)->statements : NULL; stmt; stmt = stmt->next) bind_statement(ns_env, stmt->ast); -- cgit v1.2.3