append multiple elements to array in do block with for loop

This code does not append the 2 canvas_slots to Slots. It only appends the last one. Any way to rewrite this code so the do block appends both the canvas_slots?

var Slots :[]canvas_slot = for:
            X -> CountWidget:WidgetsCount
            TeamWidget := WidgetsTeam[X]
        do:
            canvas_slot:
                Anchors := anchors{Minimum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}, 
                Maximum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}}
                Alignment := vector2{X := 1.0, Y := 0.5}
                SizeToContent := true
                Widget := CountWidget
            canvas_slot:
                Anchors := anchors{Minimum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}, 
                Maximum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}}
                Alignment := vector2{X := 0.0, Y := 0.5}
                SizeToContent := true
                Widget := TeamWidget

I found this solution but I would like to keep the do block.

var Slots :[]canvas_slot = array{}
        for(X -> CountWidget:WidgetsCount, TeamWidget := WidgetsTeam[X]):
            set Slots += array{
                canvas_slot:
                    Anchors := anchors{Minimum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}, 
                    Maximum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}}
                    Alignment := vector2{X := 1.0, Y := 0.5}
                    SizeToContent := true
                    Widget := CountWidget
                canvas_slot:
                    Anchors := anchors{Minimum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}, 
                    Maximum := vector2{X := 0.2 + (0.2 * X), Y := 0.075}}
                    Alignment := vector2{X := 0.0, Y := 0.5}
                    SizeToContent := true
                    Widget := TeamWidget
            }

You could fold iteration over the slots into the for domain. For example:

for:
	Index -> CountWidget:WidgetsCount
	TeamWidget := WidgetsTeam[Index]
	Slot : array:
		canvas_slot:
			...
		canvas_slot:
			...
do Slot
3 Likes