aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-11-03 14:13:57 -0400
committerAndrew Kelley <superjoe30@gmail.com>2016-11-03 14:13:57 -0400
commitc8333d0cc9a2941ea35f1202073dabd9058beebc (patch)
tree4af6d5e7611cfb3b1f24626a5c8618bde7550f78 /src/analyze.cpp
parent1a0111d4c36578b64d8532724afd9be9ca61d3d1 (diff)
downloadzig-c8333d0cc9a2941ea35f1202073dabd9058beebc.tar.gz
zig-c8333d0cc9a2941ea35f1202073dabd9058beebc.zip
add concept of inline for, inline while, inline var
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index 0ecd4065f0..71c3ed4be1 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -3026,7 +3026,7 @@ static bool var_is_pure(VariableTableEntry *var, BlockContext *context) {
// variable was declared in the current function, so it's OK.
return true;
}
- return var->is_const && var->type->deep_const;
+ return var->src_is_const && var->type->deep_const;
}
static TypeTableEntry *analyze_var_ref(CodeGen *g, AstNode *source_node, VariableTableEntry *var,
@@ -3036,7 +3036,7 @@ static TypeTableEntry *analyze_var_ref(CodeGen *g, AstNode *source_node, Variabl
if (!var_is_pure(var, context)) {
mark_impure_fn(g, context, source_node);
}
- if (var->is_const && var->val_node) {
+ if (var->src_is_const && var->val_node) {
ConstExprValue *other_const_val = &get_resolved_expr(var->val_node)->const_val;
if (other_const_val->ok) {
return resolve_expr_const_val_as_other_expr(g, source_node, var->val_node,
@@ -3188,7 +3188,7 @@ static TypeTableEntry *analyze_lvalue(CodeGen *g, ImportTableEntry *import, Bloc
Buf *name = lhs_node->data.symbol_expr.symbol;
VariableTableEntry *var = find_variable(g, block_context, name);
if (var) {
- if (var->is_const) {
+ if (var->src_is_const) {
add_node_error(g, lhs_node, buf_sprintf("cannot assign to constant"));
expected_rhs_type = g->builtin_types.entry_invalid;
} else {
@@ -3736,7 +3736,8 @@ static VariableTableEntry *add_local_var_shadowable(CodeGen *g, AstNode *source_
context->fn_entry->variable_list.append(variable_entry);
}
- variable_entry->is_const = is_const;
+ variable_entry->src_is_const = is_const;
+ variable_entry->gen_is_const = is_const;
variable_entry->decl_node = source_node;
variable_entry->val_node = val_node;