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;