diff --git a/vlib/v/checker/tests/struct_init_with_iface_embed_iface_with_incorrect_method_impl_ref_field_err.out b/vlib/v/checker/tests/struct_init_with_iface_embed_iface_with_incorrect_method_impl_ref_field_err.out new file mode 100644 index 0000000000..2f1301314e --- /dev/null +++ b/vlib/v/checker/tests/struct_init_with_iface_embed_iface_with_incorrect_method_impl_ref_field_err.out @@ -0,0 +1,9 @@ +vlib/v/checker/tests/struct_init_with_iface_embed_iface_with_incorrect_method_impl_ref_field_err.vv:21:3: error: `&Stream` incorrectly implements method `read` of interface `Refresher`: expected return type `!int` + 19 | s := &Stream{} + 20 | _ := &Server{ + 21 | refresher: s + | ~~~~~~~~~~~~ + 22 | } + 23 | } +Details: main.Refresher has `fn read(x main.Refresher, buf []u8) !int` + main.Stream has `fn read(a main.Stream, buf []u8)` diff --git a/vlib/v/checker/tests/struct_init_with_iface_embed_iface_with_incorrect_method_impl_ref_field_err.vv b/vlib/v/checker/tests/struct_init_with_iface_embed_iface_with_incorrect_method_impl_ref_field_err.vv new file mode 100644 index 0000000000..53993e395b --- /dev/null +++ b/vlib/v/checker/tests/struct_init_with_iface_embed_iface_with_incorrect_method_impl_ref_field_err.vv @@ -0,0 +1,23 @@ +interface Refresher { + Reader +} + +interface Reader { + read(buf []u8) !int +} + +struct Server { + refresher Refresher +} + +struct Stream {} + +// Implementation is missing the return type. +fn (a Stream) read(buf []u8) {} + +fn test_struct_init_with_interface_field() { + s := &Stream{} + _ := &Server{ + refresher: s + } +}