aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-12-02 00:03:41 -0500
committerGitHub <noreply@github.com>2019-12-02 00:03:41 -0500
commitfecd540826b14275784f10fe429ed147543377b6 (patch)
treecb2e096bd1b4ec17f7badc7ac73e706d66c99df1 /src/analyze.cpp
parent4b6740e19d57454f3c4eac0c2e9a92ce08e7ec04 (diff)
parente7ee6647a16738d344173d0482028dc5578cc6c2 (diff)
downloadzig-fecd540826b14275784f10fe429ed147543377b6.tar.gz
zig-fecd540826b14275784f10fe429ed147543377b6.zip
Merge pull request #3787 from ziglang/remove-array-type-coercion
Remove array type coercion and fix result location bugs
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp29
1 files changed, 6 insertions, 23 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index 0f2df5835c..dece277c03 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -5909,12 +5909,7 @@ ZigValue *create_const_arg_tuple(CodeGen *g, size_t arg_index_start, size_t arg_
ZigValue *create_const_vals(size_t count) {
- ConstGlobalRefs *global_refs = allocate<ConstGlobalRefs>(count, "ConstGlobalRefs");
- ZigValue *vals = allocate<ZigValue>(count, "ZigValue");
- for (size_t i = 0; i < count; i += 1) {
- vals[i].global_refs = &global_refs[i];
- }
- return vals;
+ return allocate<ZigValue>(count, "ZigValue");
}
ZigValue **alloc_const_vals_ptrs(size_t count) {
@@ -6492,20 +6487,14 @@ bool const_values_equal_ptr(ZigValue *a, ZigValue *b) {
return false;
return true;
case ConstPtrSpecialBaseArray:
- if (a->data.x_ptr.data.base_array.array_val != b->data.x_ptr.data.base_array.array_val &&
- a->data.x_ptr.data.base_array.array_val->global_refs !=
- b->data.x_ptr.data.base_array.array_val->global_refs)
- {
+ if (a->data.x_ptr.data.base_array.array_val != b->data.x_ptr.data.base_array.array_val) {
return false;
}
if (a->data.x_ptr.data.base_array.elem_index != b->data.x_ptr.data.base_array.elem_index)
return false;
return true;
case ConstPtrSpecialBaseStruct:
- if (a->data.x_ptr.data.base_struct.struct_val != b->data.x_ptr.data.base_struct.struct_val &&
- a->data.x_ptr.data.base_struct.struct_val->global_refs !=
- b->data.x_ptr.data.base_struct.struct_val->global_refs)
- {
+ if (a->data.x_ptr.data.base_struct.struct_val != b->data.x_ptr.data.base_struct.struct_val) {
return false;
}
if (a->data.x_ptr.data.base_struct.field_index != b->data.x_ptr.data.base_struct.field_index)
@@ -6513,27 +6502,21 @@ bool const_values_equal_ptr(ZigValue *a, ZigValue *b) {
return true;
case ConstPtrSpecialBaseErrorUnionCode:
if (a->data.x_ptr.data.base_err_union_code.err_union_val !=
- b->data.x_ptr.data.base_err_union_code.err_union_val &&
- a->data.x_ptr.data.base_err_union_code.err_union_val->global_refs !=
- b->data.x_ptr.data.base_err_union_code.err_union_val->global_refs)
+ b->data.x_ptr.data.base_err_union_code.err_union_val)
{
return false;
}
return true;
case ConstPtrSpecialBaseErrorUnionPayload:
if (a->data.x_ptr.data.base_err_union_payload.err_union_val !=
- b->data.x_ptr.data.base_err_union_payload.err_union_val &&
- a->data.x_ptr.data.base_err_union_payload.err_union_val->global_refs !=
- b->data.x_ptr.data.base_err_union_payload.err_union_val->global_refs)
+ b->data.x_ptr.data.base_err_union_payload.err_union_val)
{
return false;
}
return true;
case ConstPtrSpecialBaseOptionalPayload:
if (a->data.x_ptr.data.base_optional_payload.optional_val !=
- b->data.x_ptr.data.base_optional_payload.optional_val &&
- a->data.x_ptr.data.base_optional_payload.optional_val->global_refs !=
- b->data.x_ptr.data.base_optional_payload.optional_val->global_refs)
+ b->data.x_ptr.data.base_optional_payload.optional_val)
{
return false;
}