File tree Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Expand file tree Collapse file tree 2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -1086,6 +1086,16 @@ fn (mut g Gen) method_call(node ast.CallExpr) {
1086
1086
g.write ('(map[]){' )
1087
1087
g.expr (node.left)
1088
1088
g.write ('}[0]' )
1089
+ } else if node.from_embed_types.len > 0 {
1090
+ n_ptr := node.left_type.nr_muls () - 1
1091
+ if n_ptr > 0 {
1092
+ g.write ('(' )
1093
+ g.write ('*' .repeat (n_ptr))
1094
+ g.expr (node.left)
1095
+ g.write (')' )
1096
+ } else {
1097
+ g.expr (node.left)
1098
+ }
1089
1099
} else {
1090
1100
g.expr (node.left)
1091
1101
}
Original file line number Diff line number Diff line change
1
+ struct Access {}
2
+
3
+ fn (access &Access) acc () bool {
4
+ return true
5
+ }
6
+
7
+ struct Field {
8
+ Access
9
+ }
10
+
11
+ fn test_embed_method_call () {
12
+ mut fields := []& Field{}
13
+ fields << & Field{}
14
+
15
+ mut rets := []bool {}
16
+ for mut field in fields {
17
+ println (field.acc ())
18
+ rets << field.acc ()
19
+ }
20
+
21
+ assert rets.len == 1
22
+ assert rets[0 ]
23
+ }
You can’t perform that action at this time.
0 commit comments