diff options
author | Keith Randall <khr@golang.org> | 2021-04-20 15:36:11 -0700 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2021-04-20 23:41:54 +0000 |
commit | e12b0afa5454c7683cb27bef0b6979f964dd0e96 (patch) | |
tree | e6bde57c389b6ed24e92548d08a20cdf0fcce39f /src/cmd/compile/internal/typecheck/iexport.go | |
parent | 48e3d924548ce6b96f55ff74e40f9a16449ac659 (diff) | |
download | go-e12b0afa5454c7683cb27bef0b6979f964dd0e96.tar.gz go-e12b0afa5454c7683cb27bef0b6979f964dd0e96.zip |
cmd/compile: separate out parameter and field export encoding
These two types of *types.Field encode different concepts, so we
encode them separately (and ignore fields that don't matter for
each concept).
Change-Id: I9d1608413949a109f12a3ebd52cd7af5f476e415
Reviewed-on: https://go-review.googlesource.com/c/go/+/312130
Trust: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/typecheck/iexport.go')
-rw-r--r-- | src/cmd/compile/internal/typecheck/iexport.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/typecheck/iexport.go b/src/cmd/compile/internal/typecheck/iexport.go index b59a610cf7..6a56abb1b9 100644 --- a/src/cmd/compile/internal/typecheck/iexport.go +++ b/src/cmd/compile/internal/typecheck/iexport.go @@ -749,8 +749,16 @@ func (w *exportWriter) exoticParam(f *types.Field) { w.uint64(uint64(f.Offset)) w.exoticType(f.Type) w.bool(f.IsDDD()) +} + +func (w *exportWriter) exoticField(f *types.Field) { + w.pos(f.Pos) + w.exoticSym(f.Sym) + w.uint64(uint64(f.Offset)) + w.exoticType(f.Type) w.string(f.Note) } + func (w *exportWriter) exoticSym(s *types.Sym) { if s == nil { w.string("") @@ -1593,7 +1601,7 @@ func (w *exportWriter) expr(n ir.Node) { if go117ExportTypes { w.exoticType(n.Type()) if n.Op() == ir.ODOT || n.Op() == ir.ODOTPTR || n.Op() == ir.ODOTINTER { - w.exoticParam(n.Selection) + w.exoticField(n.Selection) } // n.Selection is not required for OMETHEXPR, ODOTMETH, and OCALLPART. It will // be reconstructed during import. |