aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2017-10-08 11:08:15 +0100
committerGinger Bill <bill@gingerbill.org>2017-10-08 11:08:15 +0100
commit580ee5cc4afb6ee15785e57747559d885af16d55 (patch)
treef76d11974faa7a1a77b5a9c17aceb342518b26f9 /src
parent56a98a483f34cf5a76d583a6b55a586ceb83084b (diff)
Fix `using` on import names
Diffstat (limited to 'src')
-rw-r--r--src/check_stmt.cpp4
-rw-r--r--src/checker.cpp3
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);