Skip to content

Commit

Permalink
cmd/compile, go/parser: disallow "type T = p.T" - must use "=>"
Browse files Browse the repository at this point in the history
I had added this originally so we can play with different notations
but it doesn't make sense to keep it around since gofmt will convert
a type alias declaration using "=" into one using "=>" anyhow. More
importantly, the spec doesn't permit it.

Change-Id: Icb010b5a9976aebf877e48b3ce9d7245559ca494
Reviewed-on: https://go-review.googlesource.com/32105
Run-TryBot: Robert Griesemer <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Matthew Dempsky <[email protected]>
  • Loading branch information
griesemer committed Oct 27, 2016
1 parent 8b07ec2 commit 89632aa
Show file tree
Hide file tree
Showing 6 changed files with 4 additions and 10 deletions.
2 changes: 1 addition & 1 deletion src/cmd/compile/internal/gc/bexport.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
The export data is a serialized description of the graph of exported
"objects": constants, types, variables, and functions. Aliases may be
directly reexported, and unaliased types may be indirectly reexported
(as part of the type of a directly exorted object). More generally,
(as part of the type of a directly exported object). More generally,
objects referred to from inlined function bodies can be reexported.
We need to know which package declares these reexported objects, and
therefore packages are also part of the export graph.
Expand Down
3 changes: 1 addition & 2 deletions src/cmd/compile/internal/syntax/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -365,8 +365,7 @@ func (p *parser) typeDecl(group *Group) Decl {
}

name := p.name()
// permit both: type T => p.T and: type T = p.T for now
if p.got(_Rarrow) || p.got(_Assign) {
if p.got(_Rarrow) {
return p.aliasDecl(Type, name, group)
}

Expand Down
3 changes: 1 addition & 2 deletions src/go/parser/parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -2343,8 +2343,7 @@ func (p *parser) parseTypeSpec(doc *ast.CommentGroup, _ token.Token, _ int) ast.
}

ident := p.parseIdent()
// permit both: type T => p.T and: type T = p.T for now
if p.tok == token.ALIAS || p.tok == token.ASSIGN {
if p.tok == token.ALIAS {
p.next()
return p.parseAliasSpec(doc, ast.Typ, ident)
}
Expand Down
2 changes: 1 addition & 1 deletion src/go/parser/short_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ var valids = []string{
`package p; var _ = map[P]int{P{}:0, {}:1}`,
`package p; var _ = map[*P]int{&P{}:0, {}:1}`,
`package p; const c => p.C; var x => X; type T => p.T; func F => p.F`,
`package p; var (_ int; x => p.X; y => Y); type (t => T; t1 = p.T1)`,
`package p; var (_ int; x => p.X; y => Y); type (t => T; t1 => p.T1)`,
}

func TestValid(t *testing.T) {
Expand Down
2 changes: 0 additions & 2 deletions src/go/printer/testdata/declarations.golden
Original file line number Diff line number Diff line change
Expand Up @@ -1015,8 +1015,6 @@ type c => p.C
type (
s struct{}
a => A
b => A
c => foo
ddd => p.Foo
)

Expand Down
2 changes: 0 additions & 2 deletions src/go/printer/testdata/declarations.input
Original file line number Diff line number Diff line change
Expand Up @@ -1029,8 +1029,6 @@ type c => p.C
type (
s struct{}
a => A
b = A
c = foo
ddd => p.Foo
)

Expand Down

0 comments on commit 89632aa

Please sign in to comment.