diff options
author | Russ Cox <rsc@golang.org> | 2012-03-07 02:27:15 -0500 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2012-03-07 02:27:15 -0500 |
commit | 716720747ee92aac9bab8cdca4d768da5d411491 (patch) | |
tree | 083e297b9f55223e1557131b708f5daa1f216ed1 /test/method.go | |
parent | b1bcdb785e3253e4e49a42cb6b497d7576b215f1 (diff) | |
download | go-716720747ee92aac9bab8cdca4d768da5d411491.tar.gz |
cmd/gc: unnamed struct types can have methods
Fixes issue 3143.
R=ken2
CC=golang-dev
http://codereview.appspot.com/5752070
Diffstat (limited to 'test/method.go')
-rw-r--r-- | test/method.go | 132 |
1 files changed, 126 insertions, 6 deletions
diff --git a/test/method.go b/test/method.go index 6080ce5a7..0c239afbd 100644 --- a/test/method.go +++ b/test/method.go @@ -94,27 +94,27 @@ func main() { } if val(s) != 1 { - println("s.val:", val(s)) + println("val(s):", val(s)) panic("fail") } if val(ps) != 2 { - println("ps.val:", val(ps)) + println("val(ps):", val(ps)) panic("fail") } if val(i) != 3 { - println("i.val:", val(i)) + println("val(i):", val(i)) panic("fail") } if val(pi) != 4 { - println("pi.val:", val(pi)) + println("val(pi):", val(pi)) panic("fail") } if val(t) != 7 { - println("t.val:", val(t)) + println("val(t):", val(t)) panic("fail") } if val(pt) != 8 { - println("pt.val:", val(pt)) + println("val(pt):", val(pt)) panic("fail") } @@ -127,4 +127,124 @@ func main() { println("Val.val(v):", Val.val(v)) panic("fail") } + + var zs struct { S } + var zps struct { *S1 } + var zi struct { I } + var zpi struct { *I1 } + var zpt struct { *T1 } + var zt struct { T } + var zv struct { Val } + + if zs.val() != 1 { + println("zs.val:", zs.val()) + panic("fail") + } + if zps.val() != 2 { + println("zps.val:", zps.val()) + panic("fail") + } + if zi.val() != 3 { + println("zi.val:", zi.val()) + panic("fail") + } + if zpi.val() != 4 { + println("zpi.val:", zpi.val()) + panic("fail") + } + if zt.val() != 7 { + println("zt.val:", zt.val()) + panic("fail") + } + if zpt.val() != 8 { + println("zpt.val:", zpt.val()) + panic("fail") + } + + if val(zs) != 1 { + println("val(zs):", val(zs)) + panic("fail") + } + if val(zps) != 2 { + println("val(zps):", val(zps)) + panic("fail") + } + if val(zi) != 3 { + println("val(zi):", val(zi)) + panic("fail") + } + if val(zpi) != 4 { + println("val(zpi):", val(zpi)) + panic("fail") + } + if val(zt) != 7 { + println("val(zt):", val(zt)) + panic("fail") + } + if val(zpt) != 8 { + println("val(zpt):", val(zpt)) + panic("fail") + } + + zv.Val = zi + if zv.val() != 3 { + println("zv.val():", zv.val()) + panic("fail") + } + + if (&zs).val() != 1 { + println("(&zs).val:", (&zs).val()) + panic("fail") + } + if (&zps).val() != 2 { + println("(&zps).val:", (&zps).val()) + panic("fail") + } + if (&zi).val() != 3 { + println("(&zi).val:", (&zi).val()) + panic("fail") + } + if (&zpi).val() != 4 { + println("(&zpi).val:", (&zpi).val()) + panic("fail") + } + if (&zt).val() != 7 { + println("(&zt).val:", (&zt).val()) + panic("fail") + } + if (&zpt).val() != 8 { + println("(&zpt).val:", (&zpt).val()) + panic("fail") + } + + if val(&zs) != 1 { + println("val(&zs):", val(&zs)) + panic("fail") + } + if val(&zps) != 2 { + println("val(&zps):", val(&zps)) + panic("fail") + } + if val(&zi) != 3 { + println("val(&zi):", val(&zi)) + panic("fail") + } + if val(&zpi) != 4 { + println("val(&zpi):", val(&zpi)) + panic("fail") + } + if val(&zt) != 7 { + println("val(&zt):", val(&zt)) + panic("fail") + } + if val(&zpt) != 8 { + println("val(&zpt):", val(&zpt)) + panic("fail") + } + + zv.Val = &zi + if zv.val() != 3 { + println("zv.val():", zv.val()) + panic("fail") + } } |