summaryrefslogtreecommitdiff
path: root/src/parser/parser_utils.c
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-21 17:22:39 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-21 17:22:39 +0000
commit5923e5f9560f3b60349965393cf81ba56c1c65ec (patch)
tree651fc8e44c59da16da7cff5cfff7c4ebe7dc9f74 /src/parser/parser_utils.c
parent9c3e1b3c55c677206e6f70919f81484a7f0fe0c5 (diff)
Fix for #76
Diffstat (limited to 'src/parser/parser_utils.c')
-rw-r--r--src/parser/parser_utils.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/parser/parser_utils.c b/src/parser/parser_utils.c
index 4973111..afd6f33 100644
--- a/src/parser/parser_utils.c
+++ b/src/parser/parser_utils.c
@@ -2666,8 +2666,10 @@ char *rewrite_expr_methods(ParserContext *ctx, char *raw)
char mangled[256];
- // Resolve alias
- Module *mod = find_module(ctx, func_name);
+ const char *aliased = find_type_alias(ctx, func_name);
+ const char *use_name = aliased ? aliased : func_name;
+
+ Module *mod = find_module(ctx, use_name);
if (mod)
{
if (mod->is_c_header)
@@ -2681,14 +2683,14 @@ char *rewrite_expr_methods(ParserContext *ctx, char *raw)
}
else
{
- ASTNode *sdef = find_struct_def(ctx, func_name);
+ ASTNode *sdef = find_struct_def(ctx, use_name);
if (sdef)
{
- snprintf(mangled, sizeof(mangled), "%s__%s", func_name, method);
+ snprintf(mangled, sizeof(mangled), "%s__%s", use_name, method);
}
else
{
- snprintf(mangled, sizeof(mangled), "%s_%s", func_name, method);
+ snprintf(mangled, sizeof(mangled), "%s_%s", use_name, method);
}
}