gc: better error message for bad type in channel send
# test program
1 package main
2
3 type C chan int
4
5 func F(c C) {
6 c <- true
7 }
# old error
test.go:6: cannot use true (type bool) as type int in function argument
# new error
test.go:6: cannot use true (type bool) as type int in channel send
R=rsc, ejsherry
CC=golang-dev
https://golang.org/cl/3231042
diff --git a/src/cmd/gc/typecheck.c b/src/cmd/gc/typecheck.c
index 919d99e..70464a4 100644
--- a/src/cmd/gc/typecheck.c
+++ b/src/cmd/gc/typecheck.c
@@ -656,6 +656,7 @@
r = n->right;
if((t = r->type) == T)
goto error;
+ r = assignconv(r, l->type->type, "send");
// TODO: more aggressive
n->etype = 0;
n->type = T;