1
0
mirror of https://github.com/golang/go synced 2024-11-26 04:58:00 -07:00

cmd/compile/internal/types2: add test case for issue 45985

This is a port of https://golang.org/cl/317471.

Updates #45985.

Change-Id: I539d0fa6f9a77eb2fc169a21c5db9921f8eceb03
Reviewed-on: https://go-review.googlesource.com/c/go/+/317732
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
This commit is contained in:
Robert Griesemer 2021-05-06 14:46:40 -07:00
parent 832c70e33d
commit f5423ea615
2 changed files with 15 additions and 1 deletions

View File

@ -417,7 +417,7 @@ func (check *Checker) inferB(tparams []*TypeName, targs []Type, report bool) (ty
// was given, unification produced the type list [int, []C, *A]. We eliminate the
// remaining type parameters by substituting the type parameters in this type list
// until nothing changes anymore.
types, index = u.x.types()
types, _ = u.x.types()
if debug {
for i, targ := range targs {
assert(targ == nil || types[i] == targ)

View File

@ -0,0 +1,14 @@
// Copyright 2021 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package issue45985
// TODO(gri): this error should be on app[int] below.
func app[S /* ERROR "type S = S does not match" */ interface{ type []T }, T any](s S, e T) S {
return append(s, e)
}
func _() {
_ = app[int]
}