From d453b9a5b126584464ca09a2529ad7d72251f7f4 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 10 Jan 2019 11:22:52 +0000 Subject: [PATCH] Fix checking `_` constant declarations with a procedure --- src/check_stmt.cpp | 14 +++++++++++++- src/checker.cpp | 6 +++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index 5243642e6..2a3d81642 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -1845,7 +1845,19 @@ void check_stmt_internal(CheckerContext *ctx, Ast *node, u32 flags) { } } } else { - // constant value declarations + // constant value declaration + // NOTE(bill): Check `_` declarations + for_array(i, vd->names) { + Ast *name = vd->names[i]; + if (is_blank_ident(name)) { + Entity *e = name->Ident.entity; + DeclInfo *d = decl_info_of_entity(e); + if (d != nullptr) { + check_entity_decl(ctx, e, d, nullptr); + } + } + } + } case_end; } diff --git a/src/checker.cpp b/src/checker.cpp index 92ff0270e..a3b912e6f 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -962,9 +962,9 @@ void add_type_and_value(CheckerInfo *i, Ast *expr, AddressingMode mode, Type *ty void add_entity_definition(CheckerInfo *i, Ast *identifier, Entity *entity) { GB_ASSERT(identifier != nullptr); GB_ASSERT(identifier->kind == Ast_Ident); - if (is_blank_ident(identifier)) { - return; - } + // if (is_blank_ident(identifier)) { + // return; + // } if (identifier->Ident.entity != nullptr) { // NOTE(bill): Identifier has already been handled return;