// 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") | |
} | |
} |