diff --git a/src/parser.cpp b/src/parser.cpp index 101167e45..584979064 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -792,6 +792,7 @@ gb_internal Ast *ast_uninit(AstFile *f, Token token) { gb_internal ExactValue exact_value_from_token(AstFile *f, Token const &token) { String s = token.string; + string_interner_insert(s); switch (token.kind) { case Token_Rune: if (!unquote_string(ast_allocator(f), &s, 0)) { @@ -848,6 +849,7 @@ gb_internal Ast *ast_basic_directive(AstFile *f, Token token, Token name) { Ast *result = alloc_ast_node(f, Ast_BasicDirective); result->BasicDirective.token = token; result->BasicDirective.name = name; + string_interner_insert(name.string); if (string_starts_with(name.string, str_lit("load"))) { f->seen_load_directive_count++; } diff --git a/src/types.cpp b/src/types.cpp index f82e54802..abe7b104c 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -3048,9 +3048,9 @@ gb_internal bool are_types_identical_unique_tuples(Type *x, Type *y) { return false; } - if (x->canonical_hash && y->canonical_hash && x->canonical_hash != y->canonical_hash) { - return false; - } + // if (x->canonical_hash && y->canonical_hash && x->canonical_hash != y->canonical_hash) { + // return false; + // } // MUTEX_GUARD(&g_type_mutex); return are_types_identical_internal(x, y, true); @@ -3066,9 +3066,9 @@ gb_internal bool are_types_identical_internal(Type *x, Type *y, bool check_tuple return false; } - if (x->canonical_hash && y->canonical_hash && x->canonical_hash != y->canonical_hash) { - return false; - } + // if (x->canonical_hash && y->canonical_hash && x->canonical_hash != y->canonical_hash) { + // return false; + // } #if 0 if (x->kind == Type_Named) {