aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2023-01-26 11:22:26 -0800
committerGopher Robot <gobot@golang.org>2023-01-26 19:45:22 +0000
commit627f12868c4c3e714bbb4ce4a418f918c1935dc2 (patch)
treef8363367f0bff8d49d124bc33c93200db1f9dce2 /src
parente9c5e60cfd602f0d9aa257793a802b0180efadd9 (diff)
downloadgo-627f12868c4c3e714bbb4ce4a418f918c1935dc2.tar.xz
go/types, types2: remove misleading example from comment
Before this CL, the comment used the case of a recursive generic function call as an example for uni-directional unification. However, such cases are now more generally (and correctly) addressed through renaming of the type parameters. Change-Id: I69e94f53418e1fb4ca9431aeb27c639c40d19b09 Reviewed-on: https://go-review.googlesource.com/c/go/+/463735 Reviewed-by: Robert Findley <rfindley@google.com> Run-TryBot: Robert Griesemer <gri@google.com> Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src')
-rw-r--r--src/cmd/compile/internal/types2/unify.go10
-rw-r--r--src/go/types/unify.go10
2 files changed, 2 insertions, 18 deletions
diff --git a/src/cmd/compile/internal/types2/unify.go b/src/cmd/compile/internal/types2/unify.go
index 08508c0e60..381093c574 100644
--- a/src/cmd/compile/internal/types2/unify.go
+++ b/src/cmd/compile/internal/types2/unify.go
@@ -17,15 +17,7 @@ import (
// provided to the unify call. For unidirectional unification, only
// one of these sets (say x) is provided, and then type parameters are
// only resolved for the x argument passed to unify, not the y argument
-// (even if that also contains possibly the same type parameters). This
-// is crucial to infer the type parameters of self-recursive calls:
-//
-// func f[P any](a P) { f(a) }
-//
-// For the call f(a) we want to infer that the type argument for P is P.
-// During unification, the parameter type P must be resolved to the type
-// parameter P ("x" side), but the argument type P must be left alone so
-// that unification resolves the type parameter P to P.
+// (even if that also contains possibly the same type parameters).
//
// For bidirectional unification, both sets are provided. This enables
// unification to go from argument to parameter type and vice versa.
diff --git a/src/go/types/unify.go b/src/go/types/unify.go
index 9fb0c75893..206ec69d59 100644
--- a/src/go/types/unify.go
+++ b/src/go/types/unify.go
@@ -19,15 +19,7 @@ import (
// provided to the unify call. For unidirectional unification, only
// one of these sets (say x) is provided, and then type parameters are
// only resolved for the x argument passed to unify, not the y argument
-// (even if that also contains possibly the same type parameters). This
-// is crucial to infer the type parameters of self-recursive calls:
-//
-// func f[P any](a P) { f(a) }
-//
-// For the call f(a) we want to infer that the type argument for P is P.
-// During unification, the parameter type P must be resolved to the type
-// parameter P ("x" side), but the argument type P must be left alone so
-// that unification resolves the type parameter P to P.
+// (even if that also contains possibly the same type parameters).
//
// For bidirectional unification, both sets are provided. This enables
// unification to go from argument to parameter type and vice versa.