]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.typeparams] test: update all the typeparam tests to use the new union/tilde...
authorDan Scales <danscales@google.com>
Thu, 3 Jun 2021 01:12:14 +0000 (18:12 -0700)
committerDan Scales <danscales@google.com>
Thu, 3 Jun 2021 16:05:22 +0000 (16:05 +0000)
Did a mix of tilde and non-tilde usage. Tilde notation is not quite
fully functional, so no tests are currently trying to distinguish
(fail/not fail) based on tilde usage.

Change-Id: Ib50cec2fc0684f9d9f3561c889fd44c7a7af458c
Reviewed-on: https://go-review.googlesource.com/c/go/+/324572
Trust: Dan Scales <danscales@google.com>
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Dan Scales <danscales@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
18 files changed:
test/typeparam/absdiff.go
test/typeparam/adder.go
test/typeparam/double.go
test/typeparam/fact.go
test/typeparam/factimp.dir/a.go
test/typeparam/list.go
test/typeparam/listimp.dir/a.go
test/typeparam/min.go
test/typeparam/mincheck.dir/a.go
test/typeparam/minimp.dir/a.go
test/typeparam/ordered.go
test/typeparam/orderedmap.go
test/typeparam/sliceimp.dir/a.go
test/typeparam/sliceimp.dir/main.go
test/typeparam/slices.go
test/typeparam/smallest.go
test/typeparam/smoketest.go
test/typeparam/sum.go

index 1381d7c92c90b54ed910aff292dd061709bc26e7..ecaa907795d736bb1ff8ce91e8dea3c15f7f310d 100644 (file)
@@ -12,10 +12,10 @@ import (
 )
 
 type Numeric interface {
-       type int, int8, int16, int32, int64,
-               uint, uint8, uint16, uint32, uint64, uintptr,
-               float32, float64,
-               complex64, complex128
+       ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+               ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+               ~float32 | ~float64 |
+               ~complex64 | ~complex128
 }
 
 // numericAbs matches numeric types with an Abs method.
@@ -33,14 +33,14 @@ func absDifference[T numericAbs[T]](a, b T) T {
 
 // orderedNumeric matches numeric types that support the < operator.
 type orderedNumeric interface {
-       type int, int8, int16, int32, int64,
-               uint, uint8, uint16, uint32, uint64, uintptr,
-               float32, float64
+       ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+               ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+               ~float32 | ~float64
 }
 
 // Complex matches the two complex types, which do not have a < operator.
 type Complex interface {
-       type complex64, complex128
+       ~complex64 | ~complex128
 }
 
 // orderedAbs is a helper type that defines an Abs method for
index eb564b5bd542cfacdcaa0ca5df14a6ac298844cb..79319bd236986233c25793d8dfe73034322b61b7 100644 (file)
@@ -11,7 +11,7 @@ import (
 )
 
 type AddType interface {
-       type int, int64, string
+       int | int64 | string
 }
 
 // Add can add numbers or strings
index ce78ec9748319ca580451630955a3428b30e09cd..66526138145829450289b3c4095811b6b5b298d4 100644 (file)
@@ -12,7 +12,7 @@ import (
 )
 
 type Number interface {
-       type int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr, float32, float64
+       ~int | ~int8 | ~int16 | ~int32 | ~int64 | ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr | ~float32 | ~float64
 }
 
 type MySlice []int
index ea86ae3e028a60f81de5a109a59eb59b1c56b511..baa7fbc68e5d6bb03af0d271394b203de64930fa 100644 (file)
@@ -8,7 +8,7 @@ package main
 
 import "fmt"
 
-func fact[T interface { type int, int64, float64 }](n T) T {
+func fact[T interface { ~int | ~int64 | ~float64 }](n T) T {
        if n == 1 {
                return 1
        }
index 355247438296cbc9e15a993c1ad769a594c74780..cb1ff2615b064ceb0050ea18bb223cb229d2519c 100644 (file)
@@ -4,7 +4,7 @@
 
 package a
 
-func Fact[T interface { type int, int64, float64 }](n T) T {
+func Fact[T interface { int | int64 | float64 }](n T) T {
        if n == 1 {
                return 1
        }
index 579078f02f7b1397cd5de521def0c82f086d6dae..c63c9bff79fe339c2b17be61d636af07903eac2b 100644 (file)
@@ -11,10 +11,10 @@ import (
 )
 
 type Ordered interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr,
-                float32, float64,
-                string
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64 |
+                ~string
 }
 
 // _List is a linked list of ordered values of type T.
@@ -34,9 +34,9 @@ func (l *_List[T]) Largest() T {
 }
 
 type OrderedNum interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr,
-                float32, float64
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64
 }
 
 // _ListNum is a linked _List of ordered numeric values of type T.
index 0a4634b7be4517c12862cb929dbdf7d0c2df5649..2b5b23cde33960c65db19ee8bf26cf49261b2a01 100644 (file)
@@ -5,10 +5,10 @@
 package a
 
 type Ordered interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr,
-                float32, float64,
-                string
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64 |
+                ~string
 }
 
 // List is a linked list of ordered values of type T.
@@ -28,9 +28,9 @@ func (l *List[T]) Largest() T {
 }
 
 type OrderedNum interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr,
-                float32, float64
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64
 }
 
 // ListNum is a linked _List of ordered numeric values of type T.
index 6e28c062a8a8ecb5bbca955ecb53e7254ce0ba76..d6c65d68b79db93e9f9aead771071d3e61b67f37 100644 (file)
@@ -11,7 +11,7 @@ import (
 )
 
 type Ordered interface {
-       type int, int64, float64, string
+       ~int | ~int64 | ~float64 | ~string
 }
 
 func min[T Ordered](x, y T) T {
index f1844bba9da2f28cf14cf18c05914faff9a9219e..7d42492b74102e82582d22ea9bbed61658fe35b0 100644 (file)
@@ -5,7 +5,7 @@
 package a
 
 type Ordered interface {
-        type int, int64, float64
+        int | int64 | float64
 }
 
 func Min[T Ordered](x, y T) T {
index 16c1b035f485be0459c5c5b76f9b2829d29836f3..6c3e0eba363da4481ecc17c6107344064ac1f627 100644 (file)
@@ -5,7 +5,7 @@
 package a
 
 type Ordered interface {
-        type int, int64, float64, string
+        ~int | ~int64 | ~float64 | ~string
 }
 
 func Min[T Ordered](x, y T) T {
index 448db68bb55bf5eb64a68bd28a89b3f5ab592d86..699505ec75b941399eeff3f1c673fd0a38e1361e 100644 (file)
@@ -13,10 +13,10 @@ import (
 )
 
 type Ordered interface {
-       type int, int8, int16, int32, int64,
-               uint, uint8, uint16, uint32, uint64, uintptr,
-               float32, float64,
-               string
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64 |
+                ~string
 }
 
 type orderedSlice[Elem Ordered] []Elem
index db1b3742674080552fd771b41fe6882c08b317be..6a895bd3960b432182b11031c052fb673283be67 100644 (file)
@@ -15,10 +15,10 @@ import (
 )
 
 type Ordered interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr,
-                float32, float64,
-                string
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64 |
+                ~string
 }
 
 // _Map is an ordered map.
index 2b58d1c29e1fdcdcd6d2ba9168ccf4cdb3f3f980..61b1b17a982703ed7ca77ef4b2b412b680a9b1da 100644 (file)
@@ -5,10 +5,10 @@
 package a
 
 type Ordered interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr,
-                float32, float64,
-                string
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64 |
+                ~string
 }
 
 // Max returns the maximum of two values of some ordered type.
index 0a8e756b26ce0e094fcd6bb87180b319d9ab8d88..2d4d3b28318054ace1812473d770d39c8d0d6d36 100644 (file)
@@ -12,8 +12,8 @@ import (
 )
 
 type Integer interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
 }
 
 func TestEqual() {
index 149199eb64909db8844208f2fdcb4de78baa235e..50783a5439b40c4248842fc609f90d05a5c6e6c2 100644 (file)
@@ -15,15 +15,15 @@ import (
 )
 
 type Ordered interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr,
-                float32, float64,
-                string
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64 |
+                ~string
 }
 
 type Integer interface {
-        type int, int8, int16, int32, int64,
-                uint, uint8, uint16, uint32, uint64, uintptr
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr
 }
 
 // Max returns the maximum of two values of some ordered type.
index d8515360497f3ee9ef0b2fa81255c30a3a0956c7..3fead6a0671bcf12b03401be5480f609879b277c 100644 (file)
@@ -11,10 +11,10 @@ import (
 )
 
 type Ordered interface {
-       type int, int8, int16, int32, int64,
-               uint, uint8, uint16, uint32, uint64, uintptr,
-               float32, float64,
-               string
+        ~int | ~int8 | ~int16 | ~int32 | ~int64 |
+                ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
+                ~float32 | ~float64 |
+                ~string
 }
 
 func Smallest[T Ordered](s []T) T {
index b7d6201b2c12494eeee64f2a9eb0b0bbc38c356c..d92e02713d72cb1030dd89198de9721e6a763c66 100644 (file)
@@ -37,7 +37,7 @@ func (x T2[P1, P2, P3]) m() {}
 type _ interface {
        m1()
        m2()
-       type int, float32, string
+       int | float32 | string
        m3()
 }
 
index c82d8e4c6127d20f1087af1f53d23f7d8df9064f..53e6face11a20446ce740d7e3e3dd5a5a59f103e 100644 (file)
@@ -10,7 +10,7 @@ import (
        "fmt"
 )
 
-func Sum[T interface{ type int, float64 }](vec []T) T {
+func Sum[T interface{ int | float64 }](vec []T) T {
        var sum T
        for _, elt := range vec {
                sum = sum + elt