Skip to content

Commit

Permalink
go/types, types2: add missing Unalias call to type string functionality
Browse files Browse the repository at this point in the history
For #67547.

Change-Id: I999cd31f9a01f91e7984b4e7012c81e8bd9c6b06
Reviewed-on: https://go-review.googlesource.com/c/go/+/587940
Reviewed-by: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
  • Loading branch information
griesemer authored and Robert Griesemer committed May 23, 2024
1 parent acc93da commit 13e3068
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/cmd/compile/internal/types2/operand.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ func operandString(x *operand, qf Qualifier) string {
}
buf.WriteString(intro)
WriteType(&buf, x.typ, qf)
if tpar, _ := x.typ.(*TypeParam); tpar != nil {
if tpar, _ := Unalias(x.typ).(*TypeParam); tpar != nil {
buf.WriteString(" constrained by ")
WriteType(&buf, tpar.bound, qf) // do not compute interface type sets here
// If we have the type set and it's empty, say so for better error messages.
Expand Down
2 changes: 1 addition & 1 deletion src/go/types/operand.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions src/internal/types/testdata/fixedbugs/issue67547.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,13 @@ func _[P []int | struct{}]() {
_ = a
}

func _[P any]() {
type A = P
var x A
// keep "constrained by" for aliased type parameters in error messages
var _ int = x // ERRORx `cannot use x \(variable of type (A|P) constrained by any\) as int value in variable declaration`
}

// Test case for go.dev/issue/67540.
func _() {
type (
Expand Down

0 comments on commit 13e3068

Please sign in to comment.