go/test/interface
David Chase d4bb72b485 cmd/internal/gc: improve "type *X has no field or method M" message
Try to provide hints for common areas, either *interface
were interface would have been better, and note incorrect
capitalization (but don't be more ambitious than that, at
least not today).

Added code and test for cases

  ptrInterface.ExistingMethod
  ptrInterface.unexportedMethod
  ptrInterface.MissingMethod
  ptrInterface.withwRongcASEdMethod
  interface.withwRongcASEdMethod
  ptrStruct.withwRongcASEdMethod
  struct.withwRongcASEdMethod

also included tests for related errors to check for
unintentional changes and consistent wording.

Somewhat simplified from previous versions to avoid second-
guessing user errors, yet also biased to point out most-likely
root cause.

Fixes #10700

Change-Id: I16693e93cc8d8ca195e7742a222d640c262105b4
Reviewed-on: https://go-review.googlesource.com/9731
Reviewed-by: Russ Cox <rsc@golang.org>
2015-05-07 16:21:57 +00:00
..
embed1.dir test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
private.dir test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
recursive1.dir test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
assertinline.go cmd/internal/gc: inline x := y.(*T) and x, ok := y.(*T) 2015-03-20 20:05:37 +00:00
bigdata.go test/interface: document tests 2012-02-19 17:33:41 +11:00
convert.go test/interface: document tests 2012-02-19 17:33:41 +11:00
convert1.go test/interface: document tests 2012-02-19 17:33:41 +11:00
convert2.go test/interface: document tests 2012-02-19 17:33:41 +11:00
embed.go test/interface: document tests 2012-02-19 17:33:41 +11:00
embed1.go test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
embed2.go cmd/internal/gc: improve "type *X has no field or method M" message 2015-05-07 16:21:57 +00:00
explicit.go cmd/gc: blank methods are not permitted in interface types 2014-10-15 09:55:13 -07:00
fail.go cmd/gc: blank methods are not permitted in interface types 2014-10-15 09:55:13 -07:00
fake.go test/interface: document tests 2012-02-19 17:33:41 +11:00
noeq.go test/interface: document tests 2012-02-19 17:33:41 +11:00
pointer.go test/interface: document tests 2012-02-19 17:33:41 +11:00
private.go test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
receiver.go test/interface: document tests 2012-02-19 17:33:41 +11:00
receiver1.go test/interface: document tests 2012-02-19 17:33:41 +11:00
recursive.go test: use testlib (another bunch). 2012-02-18 22:15:42 +01:00
recursive1.go test: convert tests to run.go whenever possible. 2012-10-10 22:35:27 +02:00
returntype.go test/interface: document tests 2012-02-19 17:33:41 +11:00
struct.go test/interface: document tests 2012-02-19 17:33:41 +11:00