aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/predicates.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2023-10-02 15:47:08 -0700
committerGopher Robot <gobot@golang.org>2023-10-03 21:21:52 +0000
commit51cb717d272545c2d4160f76a9f13741aa1e7abd (patch)
treeac8d453f9be40c6070741e9fe2ddfb62e7bd7227 /src/cmd/compile/internal/types2/predicates.go
parentdc523c8ddf5b0ce985ea90c65cbaa097c9e3ee09 (diff)
downloadgo-51cb717d272545c2d4160f76a9f13741aa1e7abd.tar.gz
go-51cb717d272545c2d4160f76a9f13741aa1e7abd.zip
go/types, types2: don't implicitly modify an argument function's type
See the comment in the (very small) fix for a detailed description. Use the opportunity to introduce a generic clone function which may be useful elsewhere. Fixes #63260. Change-Id: Ic63c6b8bc443011b1a201908254f7d062e1aec71 Reviewed-on: https://go-review.googlesource.com/c/go/+/532157 Run-TryBot: Robert Griesemer <gri@google.com> Reviewed-by: Robert Findley <rfindley@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/cmd/compile/internal/types2/predicates.go')
-rw-r--r--src/cmd/compile/internal/types2/predicates.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cmd/compile/internal/types2/predicates.go b/src/cmd/compile/internal/types2/predicates.go
index c48f926bf8..11f543f475 100644
--- a/src/cmd/compile/internal/types2/predicates.go
+++ b/src/cmd/compile/internal/types2/predicates.go
@@ -533,3 +533,9 @@ func maxType(x, y Type) Type {
}
return nil
}
+
+// clone makes a "flat copy" of *p and returns a pointer to the copy.
+func clone[P *T, T any](p P) P {
+ c := *p
+ return &c
+}