I think you're right that (assuming x isn't a pointer type), the following would tell the compiler that 'String() string' is a value method of T.
contract stringer(x T) { var _ string = T.String(x) } However, in the following case: contract stringerp(x T) { var _ string = (*T).String(&x) } I don't think it wouldn't necessarily follow that 'String() string' was a pointer method because a value method could still be called with exactly the same syntax. Finally, I think you're also right that this: contract stringerField(x T) { unsafe.Offsetof(x.String) var _ string = x.String() } would tell the compiler that T is a struct with a field called String of function type 'func() string'. Alan -- 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.