X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Flet_stmt.c;h=c64856b121da7b6d8858a3a3a28018b7843be2ab;hp=9ada4635e63696a128cbf33ac348fb59852b12cd;hb=a7ac1c0a3c855321f21682c127a4b707de33a303;hpb=c9384515a81cb64d345b299908b2852f51bb8e6e diff --git a/src/types/let_stmt.c b/src/types/let_stmt.c index 9ada463..c64856b 100644 --- a/src/types/let_stmt.c +++ b/src/types/let_stmt.c @@ -28,7 +28,7 @@ struct psi_let_stmt *psi_let_stmt_init(struct psi_let_exp *exp) { - struct psi_let_stmt *let = calloc(1, sizeof(*let)); + struct psi_let_stmt *let = pecalloc(1, sizeof(*let), 1); let->exp = exp; return let; @@ -43,9 +43,7 @@ void psi_let_stmt_free(struct psi_let_stmt **stmt_ptr) if (stmt->exp) { psi_let_exp_free(&stmt->exp); } - if (stmt->token) { - free(stmt->token); - } + psi_token_free(&stmt->token); free(stmt); } } @@ -77,14 +75,14 @@ bool psi_let_stmts_validate(struct psi_data *data, struct psi_validate_scope *sc if (!let->exp->var) { data->error(data, let->token, PSI_WARNING, "Missing variable in `let` statement for implementation %s", - scope->impl->func->name); + scope->impl->func->name->val); return false; } if (!psi_impl_get_decl_arg(scope->impl, let_var)) { data->error(data, let_var->token, PSI_WARNING, "Unknown variable '%s' in `let` statement of implementation '%s'", - let_var->name, scope->impl->func->name); + let_var->name->val, scope->impl->func->name->val); return false; } switch (let->exp->kind) { @@ -100,7 +98,7 @@ bool psi_let_stmts_validate(struct psi_data *data, struct psi_validate_scope *sc if (let_ivar && !psi_impl_get_arg(scope->impl, let_ivar)) { data->error(data, let_var->token, PSI_WARNING, "Unknown variable '%s' in `let` statement of implementation '%s'", - let_ivar->name, scope->impl->func->name); + let_ivar->name->val, scope->impl->func->name->val); return false; } @@ -120,10 +118,11 @@ bool psi_let_stmts_validate(struct psi_data *data, struct psi_validate_scope *sc data->error(data, scope->impl->func->token, PSI_WARNING, "Missing `let` statement for arg '%s %s%s'" " of declaration '%s' for implementation '%s'", - darg->type->name, + darg->type->name->val, psi_t_indirection(darg->var->pointer_level), - darg->var->name, scope->impl->decl->func->var->name, - scope->impl->func->name); + darg->var->name->val, + scope->impl->decl->func->var->name->val, + scope->impl->func->name->val); return false; } }