@@ -136,6 +136,56 @@ func main() {
136136}
137137
138138func TestTypeParamsType (t * testing.T ) {
139+ var expect string
140+ if gotypesalias {
141+ expect = `package main
142+
143+ import "fmt"
144+
145+ type DataString = Data[string]
146+ type SliceString = Slice[[]string, string]
147+
148+ func main() {
149+ fmt.Println(Data[int]{1}.v)
150+ fmt.Println(DataString{"hello"}.v)
151+ fmt.Println(Data[int]{100}.v)
152+ fmt.Println(Data[string]{"hello"}.v)
153+ fmt.Println(Data[struct {
154+ X int
155+ Y int
156+ }]{}.v.X)
157+ v1 := Slice[[]int, int]{}
158+ v2 := SliceString{}
159+ v3 := Slice[[]int, int]{}
160+ v3.Append([]int{1, 2, 3, 4}...)
161+ v3.Append2([]int{1, 2, 3, 4}...)
162+ }
163+ `
164+ } else {
165+ expect = `package main
166+
167+ import "fmt"
168+
169+ type DataString = Data[string]
170+ type SliceString = Slice[[]string, string]
171+
172+ func main() {
173+ fmt.Println(Data[int]{1}.v)
174+ fmt.Println(Data[string]{"hello"}.v)
175+ fmt.Println(Data[int]{100}.v)
176+ fmt.Println(Data[string]{"hello"}.v)
177+ fmt.Println(Data[struct {
178+ X int
179+ Y int
180+ }]{}.v.X)
181+ v1 := Slice[[]int, int]{}
182+ v2 := Slice[[]string, string]{}
183+ v3 := Slice[[]int, int]{}
184+ v3.Append([]int{1, 2, 3, 4}...)
185+ v3.Append2([]int{1, 2, 3, 4}...)
186+ }
187+ `
188+ }
139189 gopMixedClTest (t , "main" , `package main
140190type Data[T any] struct {
141191 v T
@@ -178,29 +228,7 @@ v2 := SliceString{}
178228v3 := Slice[[]int,int]{}
179229v3.Append([1,2,3,4]...)
180230v3.Append2([1,2,3,4]...)
181- ` , `package main
182-
183- import "fmt"
184-
185- type DataString = Data[string]
186- type SliceString = Slice[[]string, string]
187-
188- func main() {
189- fmt.Println(Data[int]{1}.v)
190- fmt.Println(Data[string]{"hello"}.v)
191- fmt.Println(Data[int]{100}.v)
192- fmt.Println(Data[string]{"hello"}.v)
193- fmt.Println(Data[struct {
194- X int
195- Y int
196- }]{}.v.X)
197- v1 := Slice[[]int, int]{}
198- v2 := Slice[[]string, string]{}
199- v3 := Slice[[]int, int]{}
200- v3.Append([]int{1, 2, 3, 4}...)
201- v3.Append2([]int{1, 2, 3, 4}...)
202- }
203- ` )
231+ ` , expect )
204232}
205233
206234func TestTypeParamsComparable (t * testing.T ) {
@@ -314,7 +342,13 @@ _ = At[int]
314342}
315343
316344func TestTypeParamsErrInferFunc (t * testing.T ) {
317- mixedErrorTest (t , `b.gop:2:5: cannot infer T2 (/foo/a.go:4:21)` , `
345+ var expect string
346+ if cltest .Go1Point () == 24 {
347+ expect = `b.gop:2:5: cannot infer T2 (declared at /foo/a.go:4:21)`
348+ } else {
349+ expect = `b.gop:2:5: cannot infer T2 (/foo/a.go:4:21)`
350+ }
351+ mixedErrorTest (t , expect , `
318352package main
319353
320354func Loader[T1 any, T2 any](p1 T1, p2 T2) T1 {
0 commit comments