// 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. 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; }