package main // int/uint/make/new are not predeclared; a user may define their own. type int struct{ v int32 } func (t *int) get() (r int32) { return t.v } type uint struct{ w int32 } func (t *uint) get() (r int32) { return t.w } func make(x int32) (r int32) { return x * 2 } func new(x int32) (r int32) { return x + 1 } func main() { var a int a.v = 10 var b uint b.w = 20 if a.get() == 10 && b.get() == 20 && make(3) == 6 && new(4) == 5 { println("PASS: undefined names usable") } else { println("FAIL: undefined names") } }