[dev.typeparams] cmd/compile/internal/syntax: accept embedded type literals

The parser accepted embedded elements but the first term
of an element had to be a ~-term or a type name. This CL
fixes that.

Change-Id: I013b6cdc5963fb228867ca6597f9139db2be7ec5
Reviewed-on: https://go-review.googlesource.com/c/go/+/321109
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
Robert Griesemer 2021-05-18 17:37:54 -07:00
parent f3fc8b5779
commit 81b22480cf
2 changed files with 57 additions and 1 deletions

View file

@ -1443,6 +1443,18 @@ func (p *parser) interfaceType() *InterfaceType {
}
return false
}
default:
if p.mode&AllowGenerics != 0 {
pos := p.pos()
if t := p.typeOrNil(); t != nil {
f := new(Field)
f.pos = pos
f.Type = t
typ.MethodList = append(typ.MethodList, p.embeddedElem(f))
return false
}
}
}
if p.mode&AllowGenerics != 0 {