Fixes #5172.
R=golang-dev, bradfitz, r
CC=golang-dev
https://golang.org/cl/
9614044
break;
default:
conv:
+ // type is broken or missing, most likely a method call on a broken type
+ // we will warn about the broken type elsewhere. no need to emit a potentially confusing error
+ if(n->left->type == T || n->left->type->broke)
+ break;
+
if(!n->diag) {
// The syntax made sure it was a call, so this must be
// a conversion.
--- /dev/null
+// errorcheck
+
+// Copyright 2013 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.
+
+// issue 5172: spurious warn about type conversion on broken type inside go and defer
+
+package main
+
+type foo struct {
+ x bar // ERROR "undefined"
+}
+
+func main() {
+ var f foo
+ go f.bar()
+ defer f.bar()
+}