| // Copyright 2015 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 | |
| import ( | |
| "bytes" | |
| "./a" | |
| ) | |
| type X struct { | |
| *a.X | |
| } | |
| type Intf interface { | |
| Get() []byte | |
| RetPtr(int) *int | |
| RetRPtr(int) (int, *int) | |
| } | |
| func main() { | |
| x := &a.X{T: [32]byte{1, 2, 3, 4}} | |
| var ix Intf = X{x} | |
| t1 := ix.Get() | |
| t2 := x.Get() | |
| if !bytes.Equal(t1, t2) { | |
| panic(t1) | |
| } | |
| p1 := ix.RetPtr(5) | |
| p2 := x.RetPtr(7) | |
| if *p1 != 6 || *p2 != 8 { | |
| panic(*p1) | |
| } | |
| r1, r2 := ix.RetRPtr(10) | |
| r3, r4 := x.RetRPtr(13) | |
| if r1 != 11 || *r2 != 11 || r3 != 14 || *r4 != 14 { | |
| panic("bad RetRPtr") | |
| } | |
| } |