mirror of
https://github.com/vlang/v.git
synced 2025-09-09 07:15:50 -04:00
This reverts commit 9e71e324eb487fc70806131ceebd8a1070035763 , because of failing CI.
This commit is contained in:
parent
9e71e324eb
commit
3d5f81b0e6
@ -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
|
||||
|
@ -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 {
|
||||
|
@ -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(')')
|
||||
|
@ -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) {
|
||||
|
@ -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{}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user