File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -173,7 +173,7 @@ class ClassAggregateLiteral extends AggregateLiteral {
173173 */
174174 Expr getFieldExpr ( Field field ) {
175175 field = classType .getAField ( ) and
176- result = getChild ( field . getInitializationOrder ( ) )
176+ aggregate_field_init ( this , result , field )
177177 }
178178
179179 /**
@@ -230,7 +230,7 @@ class ArrayAggregateLiteral extends AggregateLiteral {
230230 * element `elementIndex`, if present.
231231 */
232232 Expr getElementExpr ( int elementIndex ) {
233- result = getChild ( elementIndex )
233+ aggregate_array_init ( this , result , elementIndex )
234234 }
235235
236236 /**
Original file line number Diff line number Diff line change @@ -1400,6 +1400,18 @@ new_array_allocated_type(
14001400 int type_id: @type ref
14011401);
14021402
1403+ aggregate_field_init(
1404+ unique int aggregate: @aggregateliteral ref,
1405+ int initializer: @expr ref,
1406+ int field: @membervariable ref
1407+ );
1408+
1409+ aggregate_array_init(
1410+ unique int aggregate: @aggregateliteral ref,
1411+ int initializer: @expr ref,
1412+ int element_index: int ref
1413+ );
1414+
14031415@ctorinit = @ctordirectinit
14041416 | @ctorvirtualinit
14051417 | @ctorfieldinit
You can’t perform that action at this time.
0 commit comments