This definitely needs a better error message. Ian
On Tue, Jan 5, 2021 at 12:27 PM roger peppe <rogpe...@gmail.com> wrote: > > You can do this with type-list interfaces: > https://go2goplay.golang.org/p/wfHnVHOMcyK > > This is one of the harder parts of the proposal to understand IMHO, but > perhaps it will become easier with familiarity. > > On Tue, 5 Jan 2021, 17:32 Brian Candler, <b.cand...@pobox.com> wrote: >> >> Question: how to make a generic function which takes a type T where the >> constraint is "*T satisfies a given interface"? >> >> func (m *MyMap[KT, VT]) init() { >> m.data = make(map[KT]VT) >> } >> >> type Initializer interface { >> init() >> } >> >> func mynew[T Initializer]() *T { >> t := new(T) >> t.init() >> return t >> } >> >> /* or: >> func mynew[T Initializer]() *T { >> var t T >> t.init() >> return &t >> } >> */ >> >> func main() { >> m := mynew[MyMap[string, int]]() >> } >> >> gives: >> >> type checking failed for main prog.go2:34:13: MyMap[string, int] does not >> satisfy Initializer: wrong method signature >> got func (*MyMap[KT, VT]).init() >> want func (Initializer).init() >> >> Full code: https://go2goplay.golang.org/p/INcenfcInSl >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/13dcb9b5-da98-49b9-abf7-05c95b1d4ebdn%40googlegroups.com. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CAJhgacgvJ%3D6eoH_Uh%2B69SdDk3C0nMep35SUhpv4QnsgAQw3kcA%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcVnKTsEsqMUP7_WsjcXCf%3DrjV1OcNNxtXSO32Lw3v5Mkg%40mail.gmail.com.