zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 122b7b99660f2ce354930749ca545b363bf7849d (tree)
parent c7eb8aaec566588048965e3ebecb1bb792656427
Author: Andrew Kelley <superjoe30@gmail.com>
Date:   Mon,  1 Feb 2016 17:05:07 -0700

c_import top level decl supports pub

See #88

Diffstat:
Msrc/analyze.cpp | 11++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/analyze.cpp b/src/analyze.cpp @@ -1252,6 +1252,13 @@ static void resolve_c_import_decl(CodeGen *g, ImportTableEntry *parent_import, A child_import->block_context = new_block_context(child_import->root, nullptr); child_import->importers.append({parent_import, node}); + if (node->data.c_import.visib_mod != VisibModPrivate) { + for (int i = 0; i < parent_import->importers.length; i += 1) { + ImporterInfo importer = parent_import->importers.at(i); + child_import->importers.append(importer); + } + } + detect_top_level_decl_deps(g, child_import, child_import->root); analyze_top_level_decls_root(g, child_import, child_import->root); } @@ -4743,7 +4750,9 @@ static void collect_expr_decl_deps(CodeGen *g, ImportTableEntry *import, AstNode collect_expr_decl_deps(g, import, node->data.prefix_op_expr.primary_expr, decl_node); break; case NodeTypeFnCallExpr: - collect_expr_decl_deps(g, import, node->data.fn_call_expr.fn_ref_expr, decl_node); + if (!node->data.fn_call_expr.is_builtin) { + collect_expr_decl_deps(g, import, node->data.fn_call_expr.fn_ref_expr, decl_node); + } for (int i = 0; i < node->data.fn_call_expr.params.length; i += 1) { AstNode *arg_node = node->data.fn_call_expr.params.at(i); collect_expr_decl_deps(g, import, arg_node, decl_node);