diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-10-08 11:08:15 +0100 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-10-08 11:08:15 +0100 |
| commit | 580ee5cc4afb6ee15785e57747559d885af16d55 (patch) | |
| tree | f76d11974faa7a1a77b5a9c17aceb342518b26f9 /src | |
| parent | 56a98a483f34cf5a76d583a6b55a586ceb83084b (diff) | |
Fix `using` on import names
Diffstat (limited to 'src')
| -rw-r--r-- | src/check_stmt.cpp | 4 | ||||
| -rw-r--r-- | src/checker.cpp | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/check_stmt.cpp b/src/check_stmt.cpp index 0d8a4fb24..d7caae280 100644 --- a/src/check_stmt.cpp +++ b/src/check_stmt.cpp @@ -482,6 +482,8 @@ bool check_using_stmt_entity(Checker *c, AstNodeUsingStmt *us, AstNode *expr, bo if (t->kind == Type_Enum) { for (isize i = 0; i < t->Enum.field_count; i++) { Entity *f = t->Enum.fields[i]; + if (!is_entity_exported(f)) continue; + Entity *found = scope_insert_entity(c->context.scope, f); if (found != nullptr) { gbString expr_str = expr_to_string(expr); @@ -502,6 +504,8 @@ bool check_using_stmt_entity(Checker *c, AstNodeUsingStmt *us, AstNode *expr, bo Scope *scope = e->ImportName.scope; for_array(i, scope->elements.entries) { Entity *decl = scope->elements.entries[i].value; + if (!is_entity_exported(decl)) continue; + Entity *found = scope_insert_entity(c->context.scope, decl); if (found != nullptr) { gbString expr_str = expr_to_string(expr); diff --git a/src/checker.cpp b/src/checker.cpp index b8893cccd..0dcebc546 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -2521,9 +2521,6 @@ void check_add_import_decl(Checker *c, AstNodeImportDecl *id) { Entity *e = scope->elements.entries[elem_index].value; if (e->scope == parent_scope) return; - if (!is_entity_kind_exported(e->kind)) { - return; - } if (is_entity_exported(e)) { // TODO(bill): Should these entities be imported but cause an error when used? bool ok = add_entity(c, parent_scope, e->identifier, e); |