]> Cypherpunks.ru repositories - gostls13.git/commitdiff
net/netip: remove Prefix.Compare for Go 1.22
authorRuss Cox <rsc@golang.org>
Thu, 14 Dec 2023 04:35:30 +0000 (23:35 -0500)
committerGopher Robot <gobot@golang.org>
Thu, 14 Dec 2023 22:24:40 +0000 (22:24 +0000)
API questions remain, so we decided to back it out for Go 1.22.
Code still lives in the repo, just unexported.

For #61642.

Change-Id: Iccd91b0da48ae72dec9f660476826a220c7ca4be
Reviewed-on: https://go-review.googlesource.com/c/go/+/549615
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: David Anderson <dave@natulte.net>
Auto-Submit: Russ Cox <rsc@golang.org>
Reviewed-by: Damien Neil <dneil@google.com>
api/go1.22.txt
src/net/netip/export_test.go
src/net/netip/netip.go

index d2a1ae7a8874807bbdd384a820b13ad7be0ca479..86eb80deafe4a1fde03373773b9d30099f70883b 100644 (file)
@@ -131,7 +131,6 @@ pkg net/http, func ServeFileFS(ResponseWriter, *Request, fs.FS, string) #51971
 pkg net/http, method (*Request) PathValue(string) string #61410
 pkg net/http, method (*Request) SetPathValue(string, string) #61410
 pkg net/netip, method (AddrPort) Compare(AddrPort) int #61642
-pkg net/netip, method (Prefix) Compare(Prefix) int #61642
 pkg os, method (*File) WriteTo(io.Writer) (int64, error) #58808
 pkg reflect, func PtrTo //deprecated #59599
 pkg reflect, func TypeFor[$0 interface{}]() Type #60088
index 59971fa2e4e51998c5add3103dd5a9a6bb530fa2..72347ee01bd1dd9ccaf6354d15316d4ac675be3a 100644 (file)
@@ -28,3 +28,5 @@ var TestAppendToMarshal = testAppendToMarshal
 
 func (a Addr) IsZero() bool   { return a.isZero() }
 func (p Prefix) IsZero() bool { return p.isZero() }
+
+func (p Prefix) Compare(p2 Prefix) int { return p.compare(p2) }
index 1d20a4aa7f616bc6d1eb3f47012f1e9d14df9160..9acc48a6e02b8e7c209b853a7d3dcb3cc19ce8ae 100644 (file)
@@ -1261,12 +1261,15 @@ func (p Prefix) isZero() bool { return p == Prefix{} }
 // IsSingleIP reports whether p contains exactly one IP.
 func (p Prefix) IsSingleIP() bool { return p.IsValid() && p.Bits() == p.ip.BitLen() }
 
-// Compare returns an integer comparing two prefixes.
+// compare returns an integer comparing two prefixes.
 // The result will be 0 if p == p2, -1 if p < p2, and +1 if p > p2.
 // Prefixes sort first by validity (invalid before valid), then
 // address family (IPv4 before IPv6), then prefix length, then
 // address.
-func (p Prefix) Compare(p2 Prefix) int {
+//
+// Unexported for Go 1.22 because we may want to compare by p.Addr first.
+// See post-acceptance discussion on go.dev/issue/61642.
+func (p Prefix) compare(p2 Prefix) int {
        if c := cmp.Compare(p.Addr().BitLen(), p2.Addr().BitLen()); c != 0 {
                return c
        }