Current implementation checks whether it has to generate a stub method for a
promoted method of an embedded struct field in Type::build_stub_methods(). If
the promoted method is ambiguous it's simply skipped. But struct types that
can fit in an interface value (e.g. structs that consist of a single pointer
field) get a second chance in Type::build_direct_iface_stub_methods().
This patch adds the same check used by Type::build_stub_methods() to
Type::build_direct_iface_stub_methods().
Fixes golang/go#52870
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/405974
-bbb3a4347714faee620dc205674510a0f20b81ae
+8db6b78110f84e22c409f334aeaefb80a8b39917
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
need_stub = true;
if (!in_heap && !m->is_value_method())
need_stub = true;
- if (!need_stub)
+ if (!need_stub || m->is_ambiguous())
continue;
Type* receiver_type = const_cast<Type*>(type);