[dev.typeparams] cmd/compile/internal/types2: print constraint info for type param operands

Change-Id: Ic7a249fc150b526835db744431bef500c20fbd26
Reviewed-on: https://go-review.googlesource.com/c/go/+/338309
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
Robert Griesemer 2021-07-29 11:14:54 -07:00
parent aa3d54da07
commit 283991bd7f

View file

@ -176,16 +176,20 @@ func operandString(x *operand, qf Qualifier) string {
if hasType {
if x.typ != Typ[Invalid] {
var intro string
switch {
case isGeneric(x.typ):
intro = " of generic type "
case asTypeParam(x.typ) != nil:
intro = " of type parameter type "
default:
var tpar *TypeParam
if isGeneric(x.typ) {
intro = " of parameterized type "
} else if tpar = asTypeParam(x.typ); tpar != nil {
intro = " of type parameter "
} else {
intro = " of type "
}
buf.WriteString(intro)
WriteType(&buf, x.typ, qf)
if tpar != nil {
buf.WriteString(" constrained by ")
WriteType(&buf, tpar.bound, qf) // do not compute interface type sets here
}
} else {
buf.WriteString(" with invalid type")
}