types/ptr: deprecate ptr.To, use Go 1.26 new
Updates #18682 Change-Id: I62f6aa0de2a15ef8c1435032c6aa74a181c25f8f Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
8cfbaa717d
commit
2a64c03c95
+1
-2
@@ -9,7 +9,6 @@ import (
|
||||
jsonv2 "github.com/go-json-experiment/json"
|
||||
"github.com/go-json-experiment/json/jsontext"
|
||||
"tailscale.com/types/opt"
|
||||
"tailscale.com/types/ptr"
|
||||
"tailscale.com/types/views"
|
||||
"tailscale.com/util/must"
|
||||
)
|
||||
@@ -47,7 +46,7 @@ func (i *Item[T]) SetManagedValue(val T) {
|
||||
// It is a runtime error to call [Item.Clone] if T contains pointers
|
||||
// but does not implement [views.Cloner].
|
||||
func (i Item[T]) Clone() *Item[T] {
|
||||
res := ptr.To(i)
|
||||
res := new(i)
|
||||
if v, ok := i.ValueOk(); ok {
|
||||
res.s.Value.Set(must.Get(deepClone(v)))
|
||||
}
|
||||
|
||||
+1
-2
@@ -12,7 +12,6 @@ import (
|
||||
"github.com/go-json-experiment/json/jsontext"
|
||||
"golang.org/x/exp/constraints"
|
||||
"tailscale.com/types/opt"
|
||||
"tailscale.com/types/ptr"
|
||||
"tailscale.com/types/views"
|
||||
)
|
||||
|
||||
@@ -62,7 +61,7 @@ func (ls *List[T]) View() ListView[T] {
|
||||
|
||||
// Clone returns a copy of l that aliases no memory with l.
|
||||
func (ls List[T]) Clone() *List[T] {
|
||||
res := ptr.To(ls)
|
||||
res := new(ls)
|
||||
if v, ok := ls.s.Value.GetOk(); ok {
|
||||
res.s.Value.Set(append(v[:0:0], v...))
|
||||
}
|
||||
|
||||
+1
-2
@@ -11,7 +11,6 @@ import (
|
||||
"github.com/go-json-experiment/json/jsontext"
|
||||
"golang.org/x/exp/constraints"
|
||||
"tailscale.com/types/opt"
|
||||
"tailscale.com/types/ptr"
|
||||
"tailscale.com/types/views"
|
||||
)
|
||||
|
||||
@@ -44,7 +43,7 @@ func (m *Map[K, V]) View() MapView[K, V] {
|
||||
|
||||
// Clone returns a copy of m that aliases no memory with m.
|
||||
func (m Map[K, V]) Clone() *Map[K, V] {
|
||||
res := ptr.To(m)
|
||||
res := new(m)
|
||||
if v, ok := m.s.Value.GetOk(); ok {
|
||||
res.s.Value.Set(maps.Clone(v))
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ package prefs
|
||||
|
||||
import (
|
||||
"net/netip"
|
||||
|
||||
"tailscale.com/types/ptr"
|
||||
)
|
||||
|
||||
// Clone makes a deep copy of TestPrefs.
|
||||
@@ -67,7 +65,7 @@ func (src *TestBundle) Clone() *TestBundle {
|
||||
dst := new(TestBundle)
|
||||
*dst = *src
|
||||
if dst.Nested != nil {
|
||||
dst.Nested = ptr.To(*src.Nested)
|
||||
dst.Nested = new(*src.Nested)
|
||||
}
|
||||
return dst
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ import (
|
||||
jsonv2 "github.com/go-json-experiment/json"
|
||||
"github.com/go-json-experiment/json/jsontext"
|
||||
"tailscale.com/types/opt"
|
||||
"tailscale.com/types/ptr"
|
||||
"tailscale.com/types/views"
|
||||
)
|
||||
|
||||
@@ -45,7 +44,7 @@ func (ls *StructList[T]) SetManagedValue(val []T) {
|
||||
|
||||
// Clone returns a copy of l that aliases no memory with l.
|
||||
func (ls StructList[T]) Clone() *StructList[T] {
|
||||
res := ptr.To(ls)
|
||||
res := new(ls)
|
||||
if v, ok := ls.s.Value.GetOk(); ok {
|
||||
res.s.Value.Set(deepCloneSlice(v))
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ import (
|
||||
jsonv2 "github.com/go-json-experiment/json"
|
||||
"github.com/go-json-experiment/json/jsontext"
|
||||
"tailscale.com/types/opt"
|
||||
"tailscale.com/types/ptr"
|
||||
"tailscale.com/types/views"
|
||||
)
|
||||
|
||||
@@ -43,7 +42,7 @@ func (m *StructMap[K, V]) SetManagedValue(val map[K]V) {
|
||||
|
||||
// Clone returns a copy of m that aliases no memory with m.
|
||||
func (m StructMap[K, V]) Clone() *StructMap[K, V] {
|
||||
res := ptr.To(m)
|
||||
res := new(m)
|
||||
if v, ok := m.s.Value.GetOk(); ok {
|
||||
res.s.Value.Set(deepCloneMap(v))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user