We know the type argument against which constraint type inference fails:
print the type argument instead of the corresponding type parameter.
Fixes #57096.
Change-Id: Ia1da9c87fac6f8062e4d534b82e895fa4617fddc
Reviewed-on: https://go-review.googlesource.com/c/go/+/455278
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Run-TryBot: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
if core.tilde {
tilde = "~"
}
- check.errorf(pos, InvalidTypeArg, "%s does not match %s%s", tpar, tilde, core.typ)
+ check.errorf(pos, InvalidTypeArg, "%s does not match %s%s", tx, tilde, core.typ)
return nil, 0
}
if core.tilde {
tilde = "~"
}
- check.errorf(posn, InvalidTypeArg, "%s does not match %s%s", tpar, tilde, core.typ)
+ check.errorf(posn, InvalidTypeArg, "%s does not match %s%s", tx, tilde, core.typ)
return nil, 0
}
package issue45985
func app[S interface{ ~[]T }, T any](s S, e T) S {
- return append(s, e)
+ return append(s, e)
}
func _() {
- _ = app/* ERROR "S does not match" */[int]
+ _ = app /* ERROR "int does not match" */ [int]
}