aboutsummaryrefslogtreecommitdiff
path: root/src/database/sql/sql_test.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2022-01-11 15:36:38 -0800
committerRobert Griesemer <gri@golang.org>2022-01-12 19:03:10 +0000
commit68b3d36ff4e71d68f25d36caff8b4ba2b3b9c980 (patch)
tree8ec99692a646e2f385ba24221da6020ba5e77e80 /src/database/sql/sql_test.go
parent83bfdb6561c06bd890446af01b0f0c735360a8df (diff)
downloadgo-68b3d36ff4e71d68f25d36caff8b4ba2b3b9c980.tar.xz
go/types, types2: make function type inference argument-order independent
If we have more than 2 arguments, we may have arguments with named and unnamed types. If that is the case, permutate params and args such that the arguments with named types are first in the list. This doesn't affect type inference if all types are taken as is. But when we have inexact unification enabled (as is the case for function type inference), when a named type is unified with an unnamed type, unification proceeds with the underlying type of the named type because otherwise unification would fail right away. This leads to an asymmetry in type inference: in cases where arguments of named and unnamed types are passed to parameters with identical type, different types (named vs underlying) may be inferred depending on the order of the arguments. By ensuring that named types are seen first, order dependence is avoided and unification succeeds where it can. This CL implements the respectice code but keeps it disabled for now, pending decision whether we want to address this issue in the first place. For #43056. Change-Id: Ibe3b08ec2afe90a24a8c30cd1875d504bcc2ef39 Reviewed-on: https://go-review.googlesource.com/c/go/+/377894 Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
Diffstat (limited to 'src/database/sql/sql_test.go')
0 files changed, 0 insertions, 0 deletions