From 48e482ef0c23032affce7998e985dee6fcda14bc Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Thu, 12 Sep 2019 23:23:10 +0700 Subject: [PATCH] cmd/compile: do not mark export for send only chan No changes in compilebench, pass toolstash-check. Change-Id: I2688f7b45af0eaa0cf3b38e726bce6e68c20f69c Reviewed-on: https://go-review.googlesource.com/c/go/+/195077 Run-TryBot: Cuong Manh Le Reviewed-by: Matthew Dempsky --- src/cmd/compile/internal/gc/bexport.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/cmd/compile/internal/gc/bexport.go b/src/cmd/compile/internal/gc/bexport.go index 7c09ab5a34..e67506f4e1 100644 --- a/src/cmd/compile/internal/gc/bexport.go +++ b/src/cmd/compile/internal/gc/bexport.go @@ -43,11 +43,14 @@ func (p *exporter) markType(t *types.Type) { // the user already needs some way to construct values of // those types. switch t.Etype { - case TPTR, TARRAY, TSLICE, TCHAN: - // TODO(mdempsky): Skip marking element type for - // send-only channels? + case TPTR, TARRAY, TSLICE: p.markType(t.Elem()) + case TCHAN: + if t.ChanDir().CanRecv() { + p.markType(t.Elem()) + } + case TMAP: p.markType(t.Key()) p.markType(t.Elem()) -- 2.51.0