mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
local var
This commit is contained in:
parent
373785ae8d
commit
4bd23aefe7
@ -188,11 +188,11 @@ static AstNode *trans_create_node_array_type(Context *c, AstNode *size_node, Ast
|
||||
return node;
|
||||
}
|
||||
|
||||
static AstNode *trans_create_node_var_decl(Context *c, bool is_const, Buf *var_name, AstNode *type_node,
|
||||
AstNode *init_node)
|
||||
static AstNode *trans_create_node_var_decl(Context *c, VisibMod visib_mod, bool is_const, Buf *var_name,
|
||||
AstNode *type_node, AstNode *init_node)
|
||||
{
|
||||
AstNode *node = trans_create_node(c, NodeTypeVariableDeclaration);
|
||||
node->data.variable_declaration.visib_mod = c->visib_mod;
|
||||
node->data.variable_declaration.visib_mod = visib_mod;
|
||||
node->data.variable_declaration.symbol = var_name;
|
||||
node->data.variable_declaration.is_const = is_const;
|
||||
node->data.variable_declaration.type = type_node;
|
||||
@ -200,6 +200,18 @@ static AstNode *trans_create_node_var_decl(Context *c, bool is_const, Buf *var_n
|
||||
return node;
|
||||
}
|
||||
|
||||
static AstNode *trans_create_node_var_decl_global(Context *c, bool is_const, Buf *var_name, AstNode *type_node,
|
||||
AstNode *init_node)
|
||||
{
|
||||
return trans_create_node_var_decl(c, c->visib_mod, is_const, var_name, type_node, init_node);
|
||||
}
|
||||
|
||||
static AstNode *trans_create_node_var_decl_local(Context *c, bool is_const, Buf *var_name, AstNode *type_node,
|
||||
AstNode *init_node)
|
||||
{
|
||||
return trans_create_node_var_decl(c, VisibModPrivate, is_const, var_name, type_node, init_node);
|
||||
}
|
||||
|
||||
|
||||
static AstNode *trans_create_node_inline_fn(Context *c, Buf *fn_name, Buf *var_name, AstNode *src_proto_node) {
|
||||
AstNode *fn_def = trans_create_node(c, NodeTypeFnDef);
|
||||
@ -268,7 +280,7 @@ static AstNode *get_global(Context *c, Buf *name) {
|
||||
static AstNode *add_global_var(Context *c, Buf *var_name, AstNode *value_node) {
|
||||
bool is_const = true;
|
||||
AstNode *type_node = nullptr;
|
||||
AstNode *node = trans_create_node_var_decl(c, is_const, var_name, type_node, value_node);
|
||||
AstNode *node = trans_create_node_var_decl_global(c, is_const, var_name, type_node, value_node);
|
||||
c->root->data.root.top_level_decls.append(node);
|
||||
return node;
|
||||
}
|
||||
@ -1166,7 +1178,7 @@ static AstNode *trans_local_declaration(Context *c, AstNode *block, DeclStmt *st
|
||||
if (type_node == nullptr)
|
||||
return nullptr;
|
||||
|
||||
AstNode *node = trans_create_node_var_decl(c, qual_type.isConstQualified(),
|
||||
AstNode *node = trans_create_node_var_decl_local(c, qual_type.isConstQualified(),
|
||||
buf_create_from_str(decl_name(var_decl)), type_node, init_node);
|
||||
block->data.block.statements.append(node);
|
||||
continue;
|
||||
@ -2396,13 +2408,13 @@ static void visit_var_decl(Context *c, const VarDecl *var_decl) {
|
||||
init_node = trans_create_node_symbol_str(c, "undefined");
|
||||
}
|
||||
|
||||
AstNode *var_node = trans_create_node_var_decl(c, is_const, name, var_type, init_node);
|
||||
AstNode *var_node = trans_create_node_var_decl_global(c, is_const, name, var_type, init_node);
|
||||
c->root->data.root.top_level_decls.append(var_node);
|
||||
return;
|
||||
}
|
||||
|
||||
if (is_extern) {
|
||||
AstNode *var_node = trans_create_node_var_decl(c, is_const, name, var_type, nullptr);
|
||||
AstNode *var_node = trans_create_node_var_decl_global(c, is_const, name, var_type, nullptr);
|
||||
var_node->data.variable_declaration.is_extern = true;
|
||||
c->root->data.root.top_level_decls.append(var_node);
|
||||
return;
|
||||
|
||||
@ -776,7 +776,7 @@ pub const ParseCContext = struct {
|
||||
});
|
||||
}
|
||||
|
||||
pub fn addExpectedError(self: &TestCase, text: []const u8) {
|
||||
pub fn addExpectedLine(self: &TestCase, text: []const u8) {
|
||||
%%self.expected_lines.append(text);
|
||||
}
|
||||
};
|
||||
@ -901,7 +901,7 @@ pub const ParseCContext = struct {
|
||||
tc.addSourceFile("source.h", source);
|
||||
comptime var arg_i = 0;
|
||||
inline while (arg_i < expected_lines.len) : (arg_i += 1) {
|
||||
tc.addExpectedError(expected_lines[arg_i]);
|
||||
tc.addExpectedLine(expected_lines[arg_i]);
|
||||
}
|
||||
return tc;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user