fix: review problems

This commit is contained in:
samsonium
2026-10-27 15:40:25 +03:00
parent c61322718d
commit dc80de66e4
21 changed files with 197 additions and 179 deletions
+9 -14
View File
@@ -7,11 +7,6 @@
#include <stdio.h>
#include <string.h>
char field_problem[256];
// defined in `compiler/analyzer/utility.c`
extern fzl_type_t an_toktotype(fzl_token_t *tok);
// Analyze field access
fzl_an_res_t analyze_field(fzl_analyzer_t *analyzer, fzl_node_t *field)
{
@@ -20,7 +15,7 @@ fzl_an_res_t analyze_field(fzl_analyzer_t *analyzer, fzl_node_t *field)
if (!field || field->type != FZL_NODETYPE_FIELD)
{
an_push_error(analyzer, NULL, "node is not typeof FIELD");
an_push_error(analyzer, NULL, "node is not field access");
return (fzl_an_res_t){.error = true};
}
@@ -30,9 +25,9 @@ fzl_an_res_t analyze_field(fzl_analyzer_t *analyzer, fzl_node_t *field)
if (parent.type != FZL_TYPE_OBJECT || parent.classname == NULL)
{
snprintf(field_problem, sizeof(field_problem),
"access to non-object value");
an_push_error(analyzer, field->token, field_problem);
snprintf(an_problem, sizeof(an_problem), "access to non-object value (%s)",
an_typetostr(parent.type, parent.classname));
an_push_error(analyzer, field->token, an_problem);
return (fzl_an_res_t){.error = true};
}
@@ -48,9 +43,9 @@ fzl_an_res_t analyze_field(fzl_analyzer_t *analyzer, fzl_node_t *field)
if (!sym_found)
{
snprintf(field_problem, sizeof(field_problem), "class '%s' not found",
snprintf(an_problem, sizeof(an_problem), "class '%s' not found",
parent.classname);
an_push_error(analyzer, field->parent->token, field_problem);
an_push_error(analyzer, field->parent->token, an_problem);
return (fzl_an_res_t){.error = true};
}
@@ -67,9 +62,9 @@ fzl_an_res_t analyze_field(fzl_analyzer_t *analyzer, fzl_node_t *field)
if (field_node == NULL)
{
snprintf(field_problem, sizeof(field_problem),
"field '%s.%s' does not exists", parent.classname, field_name);
an_push_error(analyzer, field->memb.field->token, field_problem);
snprintf(an_problem, sizeof(an_problem), "field '%s.%s' does not exists",
parent.classname, field_name);
an_push_error(analyzer, field->memb.field->token, an_problem);
return (fzl_an_res_t){.error = true};
}