aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/noder
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/noder')
-rw-r--r--src/cmd/compile/internal/noder/writer.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/noder/writer.go b/src/cmd/compile/internal/noder/writer.go
index e7f7df76a9..a42b11f6fa 100644
--- a/src/cmd/compile/internal/noder/writer.go
+++ b/src/cmd/compile/internal/noder/writer.go
@@ -852,6 +852,19 @@ func (w *writer) doObj(wext *writer, obj types2.Object) pkgbits.CodeObj {
sig := obj.Type().(*types2.Signature)
w.pos(obj)
+ if isGenericMethod(sig) {
+ // otherwise the reader won't know to expect the flag
+ assert(w.Version().Has(pkgbits.GenericMethods))
+ w.Bool(true) // generic method
+
+ w.selector(obj)
+ w.typeParamNames(sig.RecvTypeParams())
+ w.param(sig.Recv())
+ } else {
+ if w.Version().Has(pkgbits.GenericMethods) {
+ w.Bool(false) // function
+ }
+ }
w.typeParamNames(sig.TypeParams())
w.signature(sig)
w.pos(decl)