diff options
author | Dan Scales <danscales@google.com> | 2021-05-10 10:17:51 -0700 |
---|---|---|
committer | Dan Scales <danscales@google.com> | 2021-05-21 17:14:19 +0000 |
commit | b1a398cf0f04ac911be204d3c0ee001a94621683 (patch) | |
tree | 46dc3881562f151d261423b87b60f19ef51c816f /src/cmd/compile/internal/typecheck/iexport.go | |
parent | ccbfbb1c3327fffe88dd6b6da550f4a0cd37db6e (diff) | |
download | go-b1a398cf0f04ac911be204d3c0ee001a94621683.tar.gz go-b1a398cf0f04ac911be204d3c0ee001a94621683.zip |
[dev.typeparams] cmd/compile: add import/export of calls to builtin functions
For generic functions, we have to leave the builtins in OCALL form,
rather than transform to specific ops, since we don't know the exact
types involved. Allow export/import of builtins in OCALL form.
Added new export/import test mapimp.go.
Change-Id: I571f8eeaa13b4f69389dbdb9afb6cc61924b9bf2
Reviewed-on: https://go-review.googlesource.com/c/go/+/321750
Trust: Dan Scales <danscales@google.com>
Reviewed-by: Keith Randall <khr@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, 10 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/typecheck/iexport.go b/src/cmd/compile/internal/typecheck/iexport.go index d125dadd88..802a8c3839 100644 --- a/src/cmd/compile/internal/typecheck/iexport.go +++ b/src/cmd/compile/internal/typecheck/iexport.go @@ -1579,6 +1579,16 @@ func (w *exportWriter) expr(n ir.Node) { // We don't need a type here, as the type will be provided at the // declaration of n. w.op(ir.ONAME) + + // This handles the case where we haven't yet transformed a call + // to a builtin, so we must write out the builtin as a name in the + // builtin package. + isBuiltin := n.BuiltinOp != ir.OXXX + w.bool(isBuiltin) + if isBuiltin { + w.string(n.Sym().Name) + break + } w.localName(n) // case OPACK, ONONAME: |