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.

Reply via email to