| // run | 
 |  | 
 | // Copyright 2009 The Go Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style | 
 | // license that can be found in the LICENSE file. | 
 |  | 
 | // Test method invocation with pointer receivers and function-valued fields. | 
 |  | 
 | package main | 
 |  | 
 | type C struct { | 
 | 	a	int; | 
 | 	x	func(p *C)int; | 
 | } | 
 |  | 
 | func (this *C) f()int { | 
 | 	return this.a; | 
 | } | 
 |  | 
 | func | 
 | main() { | 
 | 	var v int; | 
 | 	var c *C; | 
 |  | 
 | 	c = new(C); | 
 | 	c.a = 6; | 
 | 	c.x = g; | 
 |  | 
 | 	v = g(c); | 
 | 	if v != 6 { panic(v); } | 
 |  | 
 | 	v = c.x(c); | 
 | 	if v != 6 { panic(v); } | 
 |  | 
 | 	v = c.f(); | 
 | 	if v != 6 { panic(v); } | 
 | } | 
 |  | 
 | func g(p *C)int { | 
 | 	var v int; | 
 |  | 
 | 	v = p.a; | 
 | 	if v != 6 { panic(v); } | 
 | 	return p.a; | 
 | } |