1
2
3
4
5
6
7 package main
8
9 type Value struct {
10 X interface{}
11 Y int
12 }
13
14 type Struct struct {
15 X complex128
16 }
17
18 const magic = 1 + 2i
19
20 func (Value) Complex(x complex128) {
21 if x != magic {
22 println(x)
23 panic("bad complex magic")
24 }
25 }
26
27 func f(x *byte, y, z int) complex128 {
28 return magic
29 }
30
31 func (Value) Struct(x Struct) {
32 if x.X != magic {
33 println(x.X)
34 panic("bad struct magic")
35 }
36 }
37
38 func f1(x *byte, y, z int) Struct {
39 return Struct{magic}
40 }
41
42 func main() {
43 var v Value
44 v.Struct(f1(nil, 0, 0))
45 v.Complex(f(nil, 0, 0))
46 }
47
View as plain text