pass_undefined_names.mx raw
1 package main
2
3 // int/uint/make/new are not predeclared; a user may define their own.
4 type int struct{ v int32 }
5
6 func (t *int) get() (r int32) { return t.v }
7
8 type uint struct{ w int32 }
9
10 func (t *uint) get() (r int32) { return t.w }
11
12 func make(x int32) (r int32) { return x * 2 }
13
14 func new(x int32) (r int32) { return x + 1 }
15
16 func main() {
17 var a int
18 a.v = 10
19 var b uint
20 b.w = 20
21 if a.get() == 10 && b.get() == 20 && make(3) == 6 && new(4) == 5 {
22 println("PASS: undefined names usable")
23 } else {
24 println("FAIL: undefined names")
25 }
26 }
27