rename internal names regarding usingnamespace

This commit is contained in:
Andrew Kelley 2019-07-16 16:20:54 -04:00
parent 158e2312ea
commit b1f8b53d20
No known key found for this signature in database
GPG Key ID: 7C5F548F728501A9
3 changed files with 23 additions and 23 deletions

View File

@ -712,7 +712,7 @@ struct AstNodeArrayType {
bool is_volatile;
};
struct AstNodeUse {
struct AstNodeUsingNamespace {
VisibMod visib_mod;
AstNode *expr;
@ -977,7 +977,7 @@ struct AstNode {
AstNodeFnCallExpr fn_call_expr;
AstNodeArrayAccessExpr array_access_expr;
AstNodeSliceExpr slice_expr;
AstNodeUse use;
AstNodeUsingNamespace using_namespace;
AstNodeIfBoolExpr if_bool_expr;
AstNodeTryExpr if_err_expr;
AstNodeTestExpr test_expr;

View File

@ -3306,10 +3306,10 @@ void resolve_top_level_decl(CodeGen *g, Tld *tld, AstNode *source_node) {
}
Tld *find_container_decl(CodeGen *g, ScopeDecls *decls_scope, Buf *name) {
// resolve all the use decls
// resolve all the using_namespace decls
for (size_t i = 0; i < decls_scope->use_decls.length; i += 1) {
AstNode *use_decl_node = decls_scope->use_decls.at(i);
if (use_decl_node->data.use.resolution == TldResolutionUnresolved) {
if (use_decl_node->data.using_namespace.resolution == TldResolutionUnresolved) {
preview_use_decl(g, use_decl_node, decls_scope);
resolve_use_decl(g, use_decl_node, decls_scope);
}
@ -3753,17 +3753,17 @@ static void analyze_fn_body(CodeGen *g, ZigFn *fn_table_entry) {
}
static void add_symbols_from_container(CodeGen *g, AstNode *src_use_node, AstNode *dst_use_node, ScopeDecls* decls_scope) {
if (src_use_node->data.use.resolution == TldResolutionUnresolved) {
if (src_use_node->data.using_namespace.resolution == TldResolutionUnresolved) {
preview_use_decl(g, src_use_node, decls_scope);
}
ConstExprValue *use_expr = src_use_node->data.use.using_namespace_value;
ConstExprValue *use_expr = src_use_node->data.using_namespace.using_namespace_value;
if (type_is_invalid(use_expr->type)) {
decls_scope->any_imports_failed = true;
return;
}
dst_use_node->data.use.resolution = TldResolutionOk;
dst_use_node->data.using_namespace.resolution = TldResolutionOk;
assert(use_expr->special != ConstValSpecialRuntime);
@ -3821,7 +3821,7 @@ static void add_symbols_from_container(CodeGen *g, AstNode *src_use_node, AstNod
for (size_t i = 0; i < src_scope->use_decls.length; i += 1) {
AstNode *use_decl_node = src_scope->use_decls.at(i);
if (use_decl_node->data.use.visib_mod != VisibModPrivate)
if (use_decl_node->data.using_namespace.visib_mod != VisibModPrivate)
add_symbols_from_container(g, use_decl_node, dst_use_node, decls_scope);
}
}
@ -3829,8 +3829,8 @@ static void add_symbols_from_container(CodeGen *g, AstNode *src_use_node, AstNod
void resolve_use_decl(CodeGen *g, AstNode *node, ScopeDecls *decls_scope) {
assert(node->type == NodeTypeUse);
if (node->data.use.resolution == TldResolutionOk ||
node->data.use.resolution == TldResolutionInvalid)
if (node->data.using_namespace.resolution == TldResolutionOk ||
node->data.using_namespace.resolution == TldResolutionInvalid)
{
return;
}
@ -3840,20 +3840,20 @@ void resolve_use_decl(CodeGen *g, AstNode *node, ScopeDecls *decls_scope) {
void preview_use_decl(CodeGen *g, AstNode *node, ScopeDecls *decls_scope) {
assert(node->type == NodeTypeUse);
if (node->data.use.resolution == TldResolutionOk ||
node->data.use.resolution == TldResolutionInvalid)
if (node->data.using_namespace.resolution == TldResolutionOk ||
node->data.using_namespace.resolution == TldResolutionInvalid)
{
return;
}
node->data.use.resolution = TldResolutionResolving;
node->data.using_namespace.resolution = TldResolutionResolving;
ConstExprValue *result = analyze_const_value(g, &decls_scope->base,
node->data.use.expr, g->builtin_types.entry_type, nullptr);
node->data.using_namespace.expr, g->builtin_types.entry_type, nullptr);
if (type_is_invalid(result->type))
decls_scope->any_imports_failed = true;
node->data.use.using_namespace_value = result;
node->data.using_namespace.using_namespace_value = result;
}
ZigType *add_source_file(CodeGen *g, ZigPackage *package, Buf *resolved_path, Buf *source_code,
@ -3980,9 +3980,9 @@ void semantic_analyze(CodeGen *g) {
{
for (; g->use_queue_index < g->use_queue.length; g->use_queue_index += 1) {
AstNode *use_decl_node = g->use_queue.at(g->use_queue_index);
// Get the top-level scope where `use` is used
// Get the top-level scope where `using_namespace` is used
ScopeDecls *decls_scope = get_container_scope(use_decl_node->owner);
if (use_decl_node->data.use.resolution == TldResolutionUnresolved) {
if (use_decl_node->data.using_namespace.resolution == TldResolutionUnresolved) {
preview_use_decl(g, use_decl_node, decls_scope);
resolve_use_decl(g, use_decl_node, decls_scope);
}

View File

@ -671,14 +671,14 @@ static AstNode *ast_parse_top_level_decl(ParseContext *pc, VisibMod visib_mod) {
return res;
}
Token *use = eat_token_if(pc, TokenIdKeywordUsingNamespace);
if (use != nullptr) {
Token *usingnamespace = eat_token_if(pc, TokenIdKeywordUsingNamespace);
if (usingnamespace != nullptr) {
AstNode *expr = ast_expect(pc, ast_parse_expr);
expect_token(pc, TokenIdSemicolon);
AstNode *res = ast_create_node(pc, NodeTypeUse, use);
res->data.use.visib_mod = visib_mod;
res->data.use.expr = expr;
AstNode *res = ast_create_node(pc, NodeTypeUse, usingnamespace);
res->data.using_namespace.visib_mod = visib_mod;
res->data.using_namespace.expr = expr;
return res;
}
@ -2939,7 +2939,7 @@ void ast_visit_node_children(AstNode *node, void (*visit)(AstNode **, void *cont
visit_field(&node->data.unwrap_optional.expr, visit, context);
break;
case NodeTypeUse:
visit_field(&node->data.use.expr, visit, context);
visit_field(&node->data.using_namespace.expr, visit, context);
break;
case NodeTypeBoolLiteral:
// none