github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/structs/embed.go (about) 1 // RUN: llgo -o %t %s 2 // RUN: %t 2>&1 | FileCheck %s 3 4 // CHECK: A.test 1 5 // CHECK-NEXT: A.testA 6 // CHECK-NEXT: A.testA2 7 // CHECK-NEXT: B.test 2 8 // CHECK-NEXT: A.testA 9 // CHECK-NEXT: A.testA2 10 // CHECK-NEXT: A.testA 11 12 package main 13 14 type A struct{ aval int } 15 16 func (a *A) test() { 17 println("A.test", a.aval) 18 } 19 20 func (a *A) testA() { 21 println("A.testA") 22 } 23 24 func (a A) testA2() { 25 println("A.testA2") 26 } 27 28 type B struct { 29 A 30 bval int 31 } 32 33 func (b B) test() { 34 println("B.test", b.bval) 35 } 36 37 type C struct { 38 *B 39 cval int 40 } 41 42 func main() { 43 var b B 44 b.aval = 1 45 b.bval = 2 46 b.A.test() 47 b.A.testA() 48 b.A.testA2() 49 b.test() 50 b.testA() 51 b.testA2() 52 53 var c C 54 c.B = &b 55 c.cval = 3 56 c.testA() 57 //c.testA2() 58 }