diff --git a/vlib/v/ast/types.v b/vlib/v/ast/types.v index 832521cb1f..ee1e4f168e 100644 --- a/vlib/v/ast/types.v +++ b/vlib/v/ast/types.v @@ -1006,16 +1006,6 @@ pub fn (t &Struct) is_unresolved_generic() bool { return t.generic_types.len > 0 && t.concrete_types.len == 0 } -pub fn (t &TypeSymbol) is_primitive_fixed_array() bool { - if t.info is ArrayFixed { - return global_table.final_sym(t.info.elem_type).is_primitive() - } else if t.info is Alias { - return global_table.final_sym(t.info.parent_type).is_primitive_fixed_array() - } else { - return false - } -} - pub fn (t &TypeSymbol) is_array_fixed() bool { if t.info is ArrayFixed { return true diff --git a/vlib/v/gen/c/auto_eq_methods.v b/vlib/v/gen/c/auto_eq_methods.v index 330fbb3b98..429319702a 100644 --- a/vlib/v/gen/c/auto_eq_methods.v +++ b/vlib/v/gen/c/auto_eq_methods.v @@ -437,11 +437,6 @@ fn (mut g Gen) gen_fixed_array_equality_fn(left_type ast.Type) string { mut fn_builder := strings.new_builder(512) fn_builder.writeln('inline bool ${ptr_styp}_arr_eq(${arg_styp} a, ${arg_styp} b) {') - if left_typ.sym.is_primitive_fixed_array() { - fn_builder.writeln('\tif (!memcmp(${left}, ${right}, sizeof(${arg_styp}))) {') - fn_builder.writeln('\t\treturn true;') - fn_builder.writeln('\t}') - } fn_builder.writeln('\tfor (int i = 0; i < ${size}; ++i) {') // compare every pair of elements of the two fixed arrays if elem.sym.kind == .string { diff --git a/vlib/v/gen/c/infix.v b/vlib/v/gen/c/infix.v index c33b40a131..9a50f45c6e 100644 --- a/vlib/v/gen/c/infix.v +++ b/vlib/v/gen/c/infix.v @@ -216,17 +216,8 @@ fn (mut g Gen) infix_expr_eq_op(node ast.InfixExpr) { if left.typ.is_ptr() { g.write('*'.repeat(left.typ.nr_muls())) } - if node.left is ast.StructInit && left.unaliased_sym.is_primitive_fixed_array() { - s := g.styp(left.unaliased) - g.write('(${s})') - } g.expr(node.left) g.write(', ') - if node.right is ast.StructInit - && right.unaliased_sym.is_primitive_fixed_array() { - s := g.styp(right.unaliased) - g.write('(${s})') - } if right.typ.is_ptr() { g.write('*'.repeat(right.typ.nr_muls())) } @@ -275,10 +266,6 @@ fn (mut g Gen) infix_expr_eq_op(node ast.InfixExpr) { s := g.styp(left.unaliased) g.write('(${s})') } - } else if node.left is ast.StructInit - && left.unaliased_sym.is_primitive_fixed_array() { - s := g.styp(left.unaliased) - g.write('(${s})') } g.expr(node.left) g.write(', ') @@ -287,10 +274,6 @@ fn (mut g Gen) infix_expr_eq_op(node ast.InfixExpr) { s := g.styp(right.unaliased) g.write('(${s})') } - } else if node.right is ast.StructInit - && right.unaliased_sym.is_primitive_fixed_array() { - s := g.styp(right.unaliased) - g.write('(${s})') } g.expr(node.right) g.write(')') diff --git a/vlib/v/gen/c/str.v b/vlib/v/gen/c/str.v index 37c6bc80f8..b3b818fc98 100644 --- a/vlib/v/gen/c/str.v +++ b/vlib/v/gen/c/str.v @@ -234,10 +234,6 @@ fn (mut g Gen) gen_expr_to_string(expr ast.Expr, etype ast.Type) { if temp_var_needed { g.write(tmp_var) } else { - if expr is ast.StructInit && g.table.final_sym(expr.typ).is_primitive_fixed_array() { - s := g.styp(expr.typ) - g.write('(${s})') - } g.expr_with_cast(expr, typ, typ) } } else if typ.has_flag(.option) { diff --git a/vlib/v/tests/assert_alias_array_test.v b/vlib/v/tests/assert_alias_array_test.v deleted file mode 100644 index c89aa00d78..0000000000 --- a/vlib/v/tests/assert_alias_array_test.v +++ /dev/null @@ -1,18 +0,0 @@ -type Arr = [4]u8 -type Arr2 = []u8 -type ArrStr = [4]string - -fn test_main() { - a := Arr{} - b := Arr{} - - assert a == b - assert Arr{} == Arr{} - assert Arr{} == [4]u8{} - assert Arr{} == [u8(0), 0, 0, 0]! - - assert Arr2{} == Arr2{} - assert Arr2{} == []u8{} - - assert ArrStr{} == ArrStr{} -}