aboutsummaryrefslogtreecommitdiff
path: root/src/compile/files.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-09-06 13:51:18 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-09-06 13:51:18 -0400
commitaa15f0f78214cefa9fabace61c119e01812a3050 (patch)
treec6df00685eca8ca2f9626ea8777b0ecee3828e15 /src/compile/files.c
parent94ff047dd74cd3ad793f68503729a0fe004c10f4 (diff)
Refactor a bit in order to catch issue with ConvertDefs creating
infinite loops
Diffstat (limited to 'src/compile/files.c')
-rw-r--r--src/compile/files.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compile/files.c b/src/compile/files.c
index a6af2300..c250e6cc 100644
--- a/src/compile/files.c
+++ b/src/compile/files.c
@@ -95,13 +95,13 @@ static Text_t compile_top_level_code(env_t *env, ast_t *ast) {
return compile_function(env, name_code, ast, &env->code->staticdefs);
}
case ConvertDef: {
- type_t *type = get_function_def_type(env, ast);
- const char *name = get_type_name(Match(type, FunctionType)->ret);
+ type_t *type = get_function_return_type(env, ast);
+ const char *name = get_type_name(type);
if (!name)
code_err(ast,
"Conversions are only supported for text, struct, and enum "
"types, not ",
- type_to_str(Match(type, FunctionType)->ret));
+ type_to_str(type));
Text_t name_code =
namespace_name(env, env->namespace, Texts(name, "$", get_line_number(ast->file, ast->start)));
return compile_function(env, name_code, ast, &env->code->staticdefs);