Core: New unique_name scheme, more human friendly

This commit is contained in:
Krzosa Karol
2023-04-21 14:44:13 +02:00
parent 2578a2a31a
commit 32cda2b59e
12 changed files with 109 additions and 59 deletions

View File

@@ -371,9 +371,8 @@ gen_try_any_or_slice(Ast_Expr *expr, Ast_Type *decl_type) {
CORE_Static void
gen_var(Ast_Decl *decl, B32 emit_value, B32 scope_names) {
if (decl->name == pctx->internf("HERE_IT_IS")) __debugbreak();
if (is_flag_set(decl->flags, AST_FOREIGN)) gen("extern ");
gen_simple_decl(decl->type, decl->name);
gen_simple_decl(decl->type, decl->unique_name);
if (is_flag_set(decl->flags, AST_FOREIGN)) return;
if (emit_value == DONT_EMIT_VALUE) {
@@ -428,7 +427,8 @@ gen_expr(Ast_Expr *ast) {
if (node->resolved_decl->kind == AST_NAMESPACE)
return false;
if (node->resolved_decl->kind == AST_LAMBDA) {
bool is_global_variable = is_flag_set(node->resolved_decl->flags, AST_GLOBAL);
if (is_global_variable) {
gen("%Q", node->resolved_decl->unique_name);
}
@@ -661,13 +661,18 @@ gen_ast(Ast *ast) {
gen("continue;");
BREAK();
}
CASE(BREAK, Break) {
unused(node);
gen("break;");
BREAK();
}
CASE(COMPILER_BREAKPOINT, Break) {
unused(node);
__debugbreak();
BREAK();
}
CASE(PASS, Pass) {
unused(node);
gen("//pass");