So, I don't really get what's the problem here, tbh. The spec seams perfectly fine as it is right now to me.
* If two named types come from different type-specs, they are not treated as identical. We covered how that can happen. * If two named types come from the same type-spec, then they are identical. The necessity of this should also be clear: https://play.golang.org/p/grhDxuVjeP So, what exactly is the issue here? Yes, it is not possible to declare two distinct types with the same type-spec or two identical types with the same type-spec, but clearly, if that sentence wasn't in the spec, above comparison would need to equal false (as the types would not be identical). I don't think there is any ambiguity or lack of clarity here. On Sun, Oct 2, 2016 at 7:08 AM, T L <tapir....@gmail.com> wrote: > > > On Sunday, October 2, 2016 at 12:24:24 PM UTC+8, Ian Lance Taylor wrote: > >> On Sat, Oct 1, 2016 at 9:21 PM, T L <tapi...@gmail.com> wrote: >> > >> > On Sunday, October 2, 2016 at 12:17:05 PM UTC+8, Ian Lance Taylor >> wrote: >> >> >> >> On Sat, Oct 1, 2016 at 10:56 AM, T L <tapi...@gmail.com> wrote: >> >> > >> >> > On Sunday, October 2, 2016 at 12:38:00 AM UTC+8, Ian Lance Taylor >> wrote: >> >> >> >> >> >> On Sat, Oct 1, 2016 at 8:55 AM, T L <tapi...@gmail.com> wrote: >> >> >> > >> >> >> > On Saturday, October 1, 2016 at 11:29:35 PM UTC+8, Axel Wagner >> wrote: >> >> >> >> >> >> >> >> It *is* possible to define two named types with the same name >> (which >> >> >> >> are >> >> >> >> not identical according to the spec): >> >> >> >> https://play.golang.org/p/PmkcvdNQnx >> >> >> > >> >> >> > >> >> >> > Oh, never know we can define local types! >> >> >> > >> >> >> > But, from my understanding, according to the spec, the two local >> X >> >> >> > types >> >> >> > are >> >> >> > identical. >> >> >> > But the compiler doesn't think so. >> >> >> > A compiler bug? >> >> >> >> >> >> I'm sorry, I don't follow your argument. The spec says, as you've >> >> >> already quoted, "Two named types are identical if their type names >> >> >> originate in the same TypeSpec." In the playground example above, >> the >> >> >> two types named "X" do not originate in the same TypeSpec, so they >> are >> >> >> not identical. >> >> > >> >> > Then could you provide an example two identical custom named types >> >> > originate >> >> > in the same TypeSpec? >> >> >> >> I don't know what it means to have two identical custom named types. >> >> When type T1 and type T2 are identical, they are the same type. When >> >> they are identical named types, they have the same name, so we are >> >> talking about types T and T. The question is: when is type T >> >> identical to type T? The answer is: when both instances of T >> >> originate in the same TypeSpec. And that answer makes sense, because >> >> as we saw above it is entirely possible to have two types named T that >> >> do not originate in the same TypeSpec, and those types are not >> >> identical. >> > >> > >> > Copied from this issue thread, https://github.com/golang/go/ >> issues/17310 >> > >> > My English is really not good,..., I think the text "originate in the >> same >> > TypeSpec" should be changed to "originate in same one TypeSpec" >> >> I'm sorry, in my opinion that would not be good English. >> >> Ian >> > > ;D > > ok, my current understanding is, the whole meaningfulness of this line in > go spec > > Two named types <https://golang.org/ref/spec#Types> are identical if > their type names originate in the same TypeSpec > <https://golang.org/ref/spec#Type_declarations>. > > is to explain in the following code > > type T0 AnotherType > > > T0 and T0 are identical. > > > -- > 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. > -- 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.