Yep, this is exactly it. I missed this section when I was trying to figure this out.
Thank you! -Tim On Monday, February 5, 2018 at 11:53:32 AM UTC-8, Paul Jolly wrote: > > Hi Tim, > > Take a look at https://golang.org/ref/spec#Calls: > > "A method call x.m() is valid if the method set of (the type of) x > contains m and the argument list can be assigned to the parameter list of > m. If x is addressable and &x's method set contains m, x.m() is shorthand > for (&x).m()" > > > Paul > > On 5 February 2018 at 17:42, theckman via golang-nuts < > golan...@googlegroups.com <javascript:>> wrote: > >> Hey Gophers, >> >> I've run in to an interesting case regarding Method Sets that makes me >> wonder whether it should be disallowed by the spec[1]. Before opening an >> issue on GitHub I thought I'd reach out here to get some clarifications as >> I may be misreading the spec. >> >> Based on my understanding of method sets, a variable with the type *T should >> have a method set that contains methods on T and *T, while a variable of >> type T should only have methods with a receiver for T in the method set. >> To me this translates that if my variable is not a pointer type it should >> not be able to call a method that's receiving a pointer type. >> >> However, I've observed that to not be the case. If I have a variable of >> type T, I am able to invoke methods that are receiving *T[2]. Should >> that be permitted by the spec? It adds some inconsistency because I am able >> to invoke the method on my variable, but the variable won't satisfy an >> interface that has that method included[3]. I think it's acceptable that >> the interface isn't satisfied, but what makes it so that invoking the >> method directly is permitted? >> >> Cheers! >> -Tim >> >> [1] https://golang.org/ref/spec#Method_sets >> [2] https://play.golang.org/p/-OMAnD7U0Vl >> [3] https://play.golang.org/p/uP0_eMYqYEe >> >> -- >> 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...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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. For more options, visit https://groups.google.com/d/optout.