Commit db4dad7f authored by Chris Manghane's avatar Chris Manghane

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
parent 42c31307
......@@ -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++;
......
......@@ -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{}
......
......@@ -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 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment