1
0
mirror of https://github.com/golang/go synced 2024-09-23 19:20:13 -06:00

cmd/gc: blank methods are not permitted in interface types

Fixes #6606.

LGTM=rsc
R=rsc
CC=golang-codereviews, gri
https://golang.org/cl/156210044
This commit is contained in:
Chris Manghane 2014-10-15 09:55:13 -07:00
parent 42c3130780
commit db4dad7fd7
3 changed files with 5 additions and 16 deletions

View File

@ -558,6 +558,9 @@ ifacedcl(Node *n)
if(n->op != ODCLFIELD || n->right == N)
fatal("ifacedcl");
if(isblank(n->left))
yyerror("methods must have a unique non-blank name");
dclcontext = PPARAM;
markdcl();
funcdepth++;

View File

@ -83,12 +83,12 @@ var m4 = M(jj) // ERROR "invalid|wrong type for M method"
type B1 interface {
_()
_() // ERROR "methods must have a unique non-blank name"
}
type B2 interface {
M()
_()
_() // ERROR "methods must have a unique non-blank name"
}
type T2 struct{}

View File

@ -14,7 +14,6 @@ type I interface {
func main() {
shouldPanic(p1)
shouldPanic(p2)
}
func p1() {
@ -30,19 +29,6 @@ type S struct{}
func (s *S) _() {}
type B interface {
_()
}
func p2() {
var s *S
var b B
var e interface{}
e = s
b = e.(B)
_ = b
}
func shouldPanic(f func()) {
defer func() {
if recover() == nil {