1 // $G $D/$F.go && $L $F.$A && ./$A.out
3 // Copyright 2009 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
18 func (s S) val() int { return 1 }
19 func (s *S1) val() int { return 2 }
20 func (i I) val() int { return 3 }
21 func (i *I1) val() int { return 4 }
22 func (t T) val() int { return 7 }
23 func (t *T1) val() int { return 8 }
29 func val(v Val) int { return v.val() }
41 println("s.val:", s.val())
45 println("S.val(s):", S.val(s))
48 if (*S).val(&s) != 1 {
49 println("(*S).val(s):", (*S).val(&s))
53 println("ps.val:", ps.val())
56 if (*S1).val(ps) != 2 {
57 println("(*S1).val(ps):", (*S1).val(ps))
61 println("i.val:", i.val())
65 println("I.val(i):", I.val(i))
68 if (*I).val(&i) != 3 {
69 println("(*I).val(&i):", (*I).val(&i))
73 println("pi.val:", pi.val())
76 if (*I1).val(pi) != 4 {
77 println("(*I1).val(pi):", (*I1).val(pi))
81 println("t.val:", t.val())
85 println("pt.val:", pt.val())
88 if (*T1).val(pt) != 8 {
89 println("(*T1).val(pt):", (*T1).val(pt))
94 println("s.val:", val(s))
98 println("ps.val:", val(ps))
102 println("i.val:", val(i))
106 println("pi.val:", val(pi))
110 println("t.val:", val(t))
114 println("pt.val:", val(pt))
119 println("Val.val(i):", Val.val(i))
124 println("Val.val(v):", Val.val(v))
129 println("pv.val():", pv.val())