diff options
author | Robert Griesemer <gri@golang.org> | 2023-10-02 15:47:08 -0700 |
---|---|---|
committer | Gopher Robot <gobot@golang.org> | 2023-10-03 21:21:52 +0000 |
commit | 51cb717d272545c2d4160f76a9f13741aa1e7abd (patch) | |
tree | ac8d453f9be40c6070741e9fe2ddfb62e7bd7227 /src/go/types/predicates.go | |
parent | dc523c8ddf5b0ce985ea90c65cbaa097c9e3ee09 (diff) | |
download | go-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/go/types/predicates.go')
-rw-r--r-- | src/go/types/predicates.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/go/types/predicates.go b/src/go/types/predicates.go index 331a8f69aa..01804c69c5 100644 --- a/src/go/types/predicates.go +++ b/src/go/types/predicates.go @@ -535,3 +535,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 +} |