This check for BADWIDTH might happen while in defercheckwidth, making it raise errors for non-erroneous situations.
Fixes #4495.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/
6927043
if(f1 == T)
return 0;
- if(f1->width == BADWIDTH)
- fatal("lookdot badwidth %T %p", f1, f1);
n->right = methodname(n->right, t);
n->xoffset = f1->width;
n->type = f1->type;
--- /dev/null
+// run
+
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+type I interface {
+ m() int
+}
+
+type T struct{}
+
+func (T) m() int {
+ return 3
+}
+
+var t T
+
+var ret = I.m(t)
+
+func main() {
+ if ret != 3 {
+ println("ret = ", ret)
+ panic("ret != 3")
+ }
+}
+