diff options
Diffstat (limited to 'test/interface/receiver1.go')
| -rw-r--r-- | test/interface/receiver1.go | 71 |
1 files changed, 40 insertions, 31 deletions
diff --git a/test/interface/receiver1.go b/test/interface/receiver1.go index 8ce96424e..51312d000 100644 --- a/test/interface/receiver1.go +++ b/test/interface/receiver1.go @@ -9,41 +9,50 @@ package main type T int + func (t T) V() func (t *T) P() -type V interface { V() } -type P interface { P(); V() } +type V interface { + V() +} +type P interface { + P() + V() +} -type S struct { T; } -type SP struct { *T; } +type S struct { + T +} +type SP struct { + *T +} func main() { - var t T; - var v V; - var p P; - var s S; - var sp SP; - - v = t; - p = t; // ERROR "is not|requires a pointer" - _, _= v, p; - v = &t; - p = &t; - _, _= v, p; - - v = s; - p = s; // ERROR "is not|requires a pointer" - _, _= v, p; - v = &s; - p = &s; - _, _= v, p; - - v = sp; - p = sp; // no error! - _, _= v, p; - v = &sp; - p = &sp; - _, _= v, p; + var t T + var v V + var p P + var s S + var sp SP + + v = t + p = t // ERROR "does not implement|requires a pointer" + _, _ = v, p + v = &t + p = &t + _, _ = v, p + + v = s + p = s // ERROR "does not implement|requires a pointer" + _, _ = v, p + v = &s + p = &s + _, _ = v, p + + v = sp + p = sp // no error! + _, _ = v, p + v = &sp + p = &sp + _, _ = v, p } - |
