authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-02-01 17:05:07-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-02-01 17:05:07-07:00
log122b7b99660f2ce354930749ca545b363bf7849d
tree08cd9acef8f4a8d0a6fc1fca34bee043723eaa23
parentc7eb8aaec566588048965e3ebecb1bb792656427

c_import top level decl supports pub

See #88

1 files changed, 10 insertions(+), 1 deletions(-)

src/analyze.cpp+10-1
...@@ -1252,6 +1252,13 @@ static void resolve_c_import_decl(CodeGen *g, ImportTableEntry *parent_import, A...@@ -1252,6 +1252,13 @@ static void resolve_c_import_decl(CodeGen *g, ImportTableEntry *parent_import, A
1252 child_import->block_context = new_block_context(child_import->root, nullptr);1252 child_import->block_context = new_block_context(child_import->root, nullptr);
1253 child_import->importers.append({parent_import, node});1253 child_import->importers.append({parent_import, node});
12541254
1255 if (node->data.c_import.visib_mod != VisibModPrivate) {
1256 for (int i = 0; i < parent_import->importers.length; i += 1) {
1257 ImporterInfo importer = parent_import->importers.at(i);
1258 child_import->importers.append(importer);
1259 }
1260 }
1261
1255 detect_top_level_decl_deps(g, child_import, child_import->root);1262 detect_top_level_decl_deps(g, child_import, child_import->root);
1256 analyze_top_level_decls_root(g, child_import, child_import->root);1263 analyze_top_level_decls_root(g, child_import, child_import->root);
1257}1264}
...@@ -4743,7 +4750,9 @@ static void collect_expr_decl_deps(CodeGen *g, ImportTableEntry *import, AstNode...@@ -4743,7 +4750,9 @@ static void collect_expr_decl_deps(CodeGen *g, ImportTableEntry *import, AstNode
4743 collect_expr_decl_deps(g, import, node->data.prefix_op_expr.primary_expr, decl_node);4750 collect_expr_decl_deps(g, import, node->data.prefix_op_expr.primary_expr, decl_node);
4744 break;4751 break;
4745 case NodeTypeFnCallExpr:4752 case NodeTypeFnCallExpr:
4746 collect_expr_decl_deps(g, import, node->data.fn_call_expr.fn_ref_expr, decl_node);4753 if (!node->data.fn_call_expr.is_builtin) {
4754 collect_expr_decl_deps(g, import, node->data.fn_call_expr.fn_ref_expr, decl_node);
4755 }
4747 for (int i = 0; i < node->data.fn_call_expr.params.length; i += 1) {4756 for (int i = 0; i < node->data.fn_call_expr.params.length; i += 1) {
4748 AstNode *arg_node = node->data.fn_call_expr.params.at(i);4757 AstNode *arg_node = node->data.fn_call_expr.params.at(i);
4749 collect_expr_decl_deps(g, import, arg_node, decl_node);4758 collect_expr_decl_deps(g, import, arg_node, decl_node);