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.