@@ -191,6 +191,9 @@ fn (mut g Gen) gen_alias_equality_fn(left_type ast.Type) string {
191
191
} else if sym.kind == .struct_ && ! left.typ.is_ptr () {
192
192
eq_fn := g.gen_struct_equality_fn (info.parent_type)
193
193
fn_builder.writeln ('\t return ${eq_fn} _struct_eq(a, b);' )
194
+ } else if sym.kind == .interface_ && ! left.typ.is_ptr () {
195
+ eq_fn := g.gen_interface_equality_fn (info.parent_type)
196
+ fn_builder.writeln ('\t return ${eq_fn} _interface_eq(a, b);' )
194
197
} else if sym.kind == .array && ! left.typ.is_ptr () {
195
198
eq_fn := g.gen_array_equality_fn (info.parent_type)
196
199
fn_builder.writeln ('\t return ${eq_fn} _arr_eq(a, b);' )
@@ -289,6 +292,9 @@ fn (mut g Gen) gen_fixed_array_equality_fn(left_type ast.Type) string {
289
292
} else if elem.sym.kind == .struct_ && ! elem.typ.is_ptr () {
290
293
eq_fn := g.gen_struct_equality_fn (elem.typ)
291
294
fn_builder.writeln ('\t\t if (!${eq_fn} _struct_eq(a[i], b[i])) {' )
295
+ } else if elem.sym.kind == .interface_ && ! elem.typ.is_ptr () {
296
+ eq_fn := g.gen_interface_equality_fn (elem.typ)
297
+ fn_builder.writeln ('\t\t if (!${eq_fn} _interface_eq(a[i], b[i])) {' )
292
298
} else if elem.sym.kind == .array && ! elem.typ.is_ptr () {
293
299
eq_fn := g.gen_array_equality_fn (elem.typ)
294
300
fn_builder.writeln ('\t\t if (!${eq_fn} _arr_eq(a[i], b[i])) {' )
@@ -364,6 +370,10 @@ fn (mut g Gen) gen_map_equality_fn(left_type ast.Type) string {
364
370
eq_fn := g.gen_struct_equality_fn (value.typ)
365
371
fn_builder.writeln ('\t\t if (!${eq_fn} _struct_eq(*($ptr_value_styp *)map_get(&b, k, &($ptr_value_styp []){ 0 }), v)) {' )
366
372
}
373
+ .interface_ {
374
+ eq_fn := g.gen_interface_equality_fn (value.typ)
375
+ fn_builder.writeln ('\t\t if (!${eq_fn} _interface_eq(*($ptr_value_styp *)map_get(&b, k, &($ptr_value_styp []){ 0 }), v)) {' )
376
+ }
367
377
.array {
368
378
eq_fn := g.gen_array_equality_fn (value.typ)
369
379
fn_builder.writeln ('\t\t if (!${eq_fn} _arr_eq(*($ptr_value_styp *)map_get(&b, k, &($ptr_value_styp []){ 0 }), v)) {' )
0 commit comments