From 0bd7b99fbf813415b9a0217eaa2a4e8f6f74e1ea Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sun, 25 Jan 2026 13:44:24 +0000 Subject: Fix for #111 --- src/codegen/codegen.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/codegen') diff --git a/src/codegen/codegen.c b/src/codegen/codegen.c index b375bbb..689c4dc 100644 --- a/src/codegen/codegen.c +++ b/src/codegen/codegen.c @@ -464,6 +464,32 @@ void codegen_expression(ParserContext *ctx, ASTNode *node, FILE *out) ref = ref->next; } + if (!resolved_method_suffix) + { + GenericImplTemplate *it = ctx->impl_templates; + while (it) + { + char *tname = NULL; + if (it->impl_node && it->impl_node->type == NODE_IMPL_TRAIT) + { + tname = it->impl_node->impl_trait.trait_name; + } + if (tname) + { + char trait_mangled[512]; + sprintf(trait_mangled, "%s__%s_%s", base, tname, method); + if (find_func(ctx, trait_mangled)) + { + char *suffix = xmalloc(strlen(tname) + strlen(method) + 2); + sprintf(suffix, "%s_%s", tname, method); + resolved_method_suffix = suffix; + break; + } + } + it = it->next; + } + } + if (resolved_method_suffix) { method = resolved_method_suffix; -- cgit v1.2.3