On Monday, October 3, 2016 at 2:42:30 PM UTC+8, Axel Wagner wrote:
>
> Which would imply that something like this
> type (
>     Foo int
>     Foo int
> )
> might be legal. I don't understand (and thusly disagree) why that would be 
> in any sense "less confusing".
>


I confuse again.

In your before comments, you interpretate "the same type-spec" must be the 
only occurrence of a type-spec, and can't be two occurrences of same type-spec 
in texts.
But now you interpretate "the same type-decl" can be two occurrences of 
same type-decl in texts.

I really don't know my English understanding is right or not, now, again.

 

>
> On Mon, Oct 3, 2016 at 7:26 AM, T L <tapi...@gmail.com <javascript:>> 
> wrote:
>
>>
>>
>> On Monday, October 3, 2016 at 1:52:10 AM UTC+8, Marvin Renich wrote:
>>>
>>> * Matt Harden <matt....@gmail.com> [161001 23:34]: 
>>> > I do think that T L has a point. The spec defines the syntax of the 
>>> > language, and TypeSpec refers to a syntactical construct. It is not 
>>> > possible in the syntax of the language to create two named types that 
>>> > originate in the same TypeSpec. We seem to be saying that uint8 and 
>>> byte 
>>> > originate in the same "TypeSpec", but the "TypeSpec" referred to there 
>>> is 
>>> > an implementation detail of the compiler, not the syntactical 
>>> construct 
>>> > defined in the Language Specification. 
>>>
>>> Does anyone remember if there was a time when TypeSpec was defined as 
>>>
>>>   TypeSpec = IdentifierList Type . 
>>>
>>> instead of the current 
>>>
>>>   TypeSpec = identifier Type . 
>>>
>>> This would give a clear reason why the wording under type identity is 
>>> the way it is.  I don't remember such a definition, and I've been 
>>> following Go since before Version 1, but not since the beginning, so 
>>> this is at least conceivable.  It's also possible that the Go authors 
>>> were considering such a definition, and part of the spec was written, 
>>> but the idea was thrown out as unnecessary and adding extra complexity, 
>>> accidentally leaving an artifact of a considered, but discarded, design 
>>> detail. 
>>>
>>> ...Marvin 
>>>
>>>
>> I just checked the history of go spec: 
>> https://github.com/golang/go/commits/master/doc/go_spec.html?after=mYQZV1%2BzTdUijP2zU6cxhOKduNorNTI0
>> It looks there is only one main change, from 
>>
>> TypeDecl = "type" ( TypeSpec | "(" [ TypeSpecList ] ")" ) .
>> TypeSpecList = TypeSpec { ";" TypeSpec } [ ";" ] .
>> TypeSpec = identifier Type .
>>
>> to
>>
>> TypeDecl = "type" ( TypeSpec | "(" { TypeSpec ";" } ")" ) .
>> TypeSpec = identifier Type .
>>
>> so go authors may really think "T0 and T0" is worth mentioning in go spec.
>>
>> BTW, I think it would be less confusing if "originate in the same 
>> TypeSpec <https://golang.org/ref/spec#Type_declarations>" changed to 
>> "originate in the same TypeDecl". 
>> <https://golang.org/ref/spec#Type_declarations>
>>
>>
>>
>> -- 
>> 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.

Reply via email to