// RUN: llgo -o %t %s // RUN: %t 2>&1 | FileCheck %s // CHECK: A.test 1 // CHECK-NEXT: A.testA // CHECK-NEXT: A.testA2 // CHECK-NEXT: B.test 2 // CHECK-NEXT: A.testA // CHECK-NEXT: A.testA2 // CHECK-NEXT: A.testA package main type A struct{ aval int } func (a *A) test() { println("A.test", a.aval) } func (a *A) testA() { println("A.testA") } func (a A) testA2() { println("A.testA2") } type B struct { A bval int } func (b B) test() { println("B.test", b.bval) } type C struct { *B cval int } func main() { var b B b.aval = 1 b.bval = 2 b.A.test() b.A.testA() b.A.testA2() b.test() b.testA() b.testA2() var c C c.B = &b c.cval = 3 c.testA() //c.testA2() }