Source file
test/typeparam/issue48016.go
1
2
3
4
5
6
7 package main
8
9 import (
10 "fmt"
11 "strconv"
12 )
13
14 func test1[T any](fn func(T) int, v T) int {
15 fn1 := func() int {
16 var i interface{} = v
17 val := fn(i.(T))
18 return val
19 }
20 return fn1()
21 }
22
23 func main() {
24 want := 123
25 got := test1(func(s string) int {
26 r, err := strconv.Atoi(s)
27 if err != nil {
28 return 0
29 }
30 return r
31 }, "123")
32 if got != want {
33 panic(fmt.Sprintf("got %f, want %f", got, want))
34 }
35 }
36
View as plain text