diff options
Diffstat (limited to 'src/cmd/compile/internal/noder')
| -rw-r--r-- | src/cmd/compile/internal/noder/writer.go | 13 |
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) |
