aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/compile/internal/types2/infer.go7
-rw-r--r--src/cmd/compile/internal/types2/testdata/examples/functions.go2
-rw-r--r--src/cmd/compile/internal/types2/testdata/fixedbugs/issue43056.go4
3 files changed, 5 insertions, 8 deletions
diff --git a/src/cmd/compile/internal/types2/infer.go b/src/cmd/compile/internal/types2/infer.go
index b0c6a4fcea..8425cd6034 100644
--- a/src/cmd/compile/internal/types2/infer.go
+++ b/src/cmd/compile/internal/types2/infer.go
@@ -128,11 +128,8 @@ func (check *Checker) infer(pos syntax.Pos, tparams []*TypeParam, targs []Type,
// 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 code is disabled for now pending decision whether we want to address cases like
- // these and make the spec on type inference more complicated (see issue #43056).
- const enableArgSorting = false
+ // succeeds where it can (issue #43056).
+ const enableArgSorting = true
if m := len(args); m >= 2 && enableArgSorting {
// Determine indices of arguments with named and unnamed types.
var named, unnamed []int
diff --git a/src/cmd/compile/internal/types2/testdata/examples/functions.go b/src/cmd/compile/internal/types2/testdata/examples/functions.go
index ef8953cb43..d50f79d11f 100644
--- a/src/cmd/compile/internal/types2/testdata/examples/functions.go
+++ b/src/cmd/compile/internal/types2/testdata/examples/functions.go
@@ -182,7 +182,7 @@ func _() {
type myString string
var s1 string
g3(nil, "1", myString("2"), "3")
- g3(&s1, "1", myString /* ERROR does not match */ ("2"), "3")
+ g3(& /* ERROR does not match */ s1, "1", myString("2"), "3")
_ = s1
type myStruct struct{x int}
diff --git a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue43056.go b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue43056.go
index 35c7ef592d..8ff4e7f9b4 100644
--- a/src/cmd/compile/internal/types2/testdata/fixedbugs/issue43056.go
+++ b/src/cmd/compile/internal/types2/testdata/fixedbugs/issue43056.go
@@ -14,7 +14,7 @@ func _() {
var j func(F)
f(i, j)
- // f(j, i) // disabled for now
+ f(j, i)
}
// example from issue
@@ -27,5 +27,5 @@ func _() {
var j interface{ Equal(I) bool }
g(i, j)
- // g(j, i) // disabled for now
+ g(j, i)
}