blob: 5fb704cd9b1a255aacfcd75c392ffe6a41df1769 [file] [log] [blame]
Peter Collingbournead9841e2014-11-27 00:06:42 +00001// RUN: llgo -o %t %s
2// RUN: %t 2>&1 | FileCheck %s
3
4// CHECK: X()
5// CHECK-NEXT: Y()
6// CHECK-NEXT: X()
7// CHECK-NEXT: Y()
8// CHECK-NEXT: X()
9
10package main
11
12type Stringer interface {
13 String() string
14}
15
16type X int
17type Y int
18
19type Z1 struct {
20 X
21}
22
23type Z2 struct {
24 Stringer
25}
26
27func (x X) String() string {
28 return "X()"
29}
30
31func (y *Y) String() string {
32 return "Y()"
33}
34
35func makeX() X {
36 return X(0)
37}
38
39func main() {
40 var z Stringer = X(0)
41 println(z.String())
42
43 z = new(Y)
44 println(z.String())
45
46 z = Z1{}
47 println(z.String())
48
49 z = Z2{new(Y)}
50 println(z.String())
51
52 println(makeX().String())
53}