github.com/neugram/ng@v0.0.0-20180309130942-d472ff93d872/eval/testdata/type-embedding2.ng (about) 1 type T1 struct { Name string } 2 type T2 struct { T1 } 3 type T3 struct { *T1 } 4 5 var v T2 6 7 if v.T1.Name != "" { 8 panic("ERROR 1") 9 } 10 11 v.T1.Name = "1" 12 if v.T1.Name != "1" { 13 panic("ERROR 2") 14 } 15 16 v.Name = "2" 17 if v.T1.Name != "2" { 18 panic("ERROR 3") 19 } 20 if v.Name != "2" { 21 panic("ERROR 4") 22 } 23 24 var ptr T3 25 26 if ptr.T1 != nil { 27 panic("ERROR 5") 28 } 29 30 ptr.T1 = &T1{Name:""} 31 ptr.T1.Name = "1" 32 if ptr.T1.Name != "1" { 33 panic("ERROR 6") 34 } 35 36 ptr.Name = "2" 37 if ptr.T1.Name != "2" { 38 panic("ERROR 7") 39 } 40 if ptr.Name != "2" { 41 panic("ERROR 8") 42 } 43 44 type T4 struct { 45 T1 46 Name int 47 } 48 49 var v4 T4 50 v4.Name = 42 51 v4.T1.Name = "deep" 52 53 if v4.Name != 42 { 54 panic("ERROR 9") 55 } 56 if v4.T1.Name != "deep" { 57 panic("ERROR 10") 58 } 59 v4.Name = 666 60 if v4.T1.Name != "deep" { 61 panic("ERROR 11") 62 } 63 if v4.Name != 666 { 64 panic("ERROR 12") 65 } 66 67 print("OK")