diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-11-03 14:13:57 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-11-03 14:13:57 -0400 |
| commit | c8333d0cc9a2941ea35f1202073dabd9058beebc (patch) | |
| tree | 4af6d5e7611cfb3b1f24626a5c8618bde7550f78 /src/analyze.cpp | |
| parent | 1a0111d4c36578b64d8532724afd9be9ca61d3d1 (diff) | |
| download | zig-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.cpp | 9 |
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; |
