]> Cypherpunks.ru repositories - gostls13.git/blob - test/ken/ptrfun.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / ken / ptrfun.go
1 // run
2
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.
6
7 // Test method invocation with pointer receivers and function-valued fields.
8
9 package main
10
11 type C struct {
12         a       int;
13         x       func(p *C)int;
14 }
15
16 func (this *C) f()int {
17         return this.a;
18 }
19
20 func
21 main() {
22         var v int;
23         var c *C;
24
25         c = new(C);
26         c.a = 6;
27         c.x = g;
28
29         v = g(c);
30         if v != 6 { panic(v); }
31
32         v = c.x(c);
33         if v != 6 { panic(v); }
34
35         v = c.f();
36         if v != 6 { panic(v); }
37 }
38
39 func g(p *C)int {
40         var v int;
41
42         v = p.a;
43         if v != 6 { panic(v); }
44         return p.a;
45 }