From 0778d18bc7ec7990ac521ed71130f7f26a6907d3 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 1 Jan 2019 15:11:54 +0000 Subject: Fix `using` with `bit_field` --- src/check_type.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/check_type.cpp') diff --git a/src/check_type.cpp b/src/check_type.cpp index 7324e92ca..1acf379a7 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -40,7 +40,7 @@ void populate_using_entity_scope(CheckerContext *ctx, Ast *node, AstField *field GB_ASSERT(f->kind == Entity_Variable); String name = f->token.string; Entity *e = scope_lookup_current(ctx->scope, name); - if (e != nullptr && name != "_") { + if (e != nullptr && name != "_" && e != f) { // TODO(bill): Better type error if (str != nullptr) { error(e->token, "'%.*s' is already declared in '%s'", LIT(name), str); @@ -59,7 +59,7 @@ void populate_using_entity_scope(CheckerContext *ctx, Ast *node, AstField *field Entity *f = t->BitField.fields[i]; String name = f->token.string; Entity *e = scope_lookup_current(ctx->scope, name); - if (e != nullptr && name != "_") { + if (e != nullptr && name != "_" && e != f) { // TODO(bill): Better type error if (str != nullptr) { error(e->token, "'%.*s' is already declared in '%s'", LIT(name), str); -- cgit v1.2.3