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".

On Mon, Oct 3, 2016 at 7:26 AM, T L <tapir....@gmail.com> 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+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