@@ -240,26 +240,35 @@ func (g *BuildersGenerator) generateStructBuilderSource(typ *concepts.Type) {
240240 // {{ $builderCtor }} creates a new builder of '{{ .Type.Name }}' objects.
241241 func {{ $builderCtor }}() *{{ $builderName }} {
242242 return &{{ $builderName }}{
243- fieldSet_: make([]bool, {{ fieldSetSize .Type }}),
243+ fieldSet_: make([]bool, {{ fieldSetSize $ .Type }}),
244244 }
245245 }
246246
247247 {{ if .Type.IsClass }}
248248 // Link sets the flag that indicates if this is a link.
249249 func (b *{{ $builderName }}) Link(value bool) *{{ $builderName }} {
250+ if len(b.fieldSet_) == 0 {
251+ b.fieldSet_ = make([]bool, {{ fieldSetSize $.Type }})
252+ }
250253 b.fieldSet_[0] = true
251254 return b
252255 }
253256
254257 // ID sets the identifier of the object.
255258 func (b *{{ $builderName }}) ID(value string) *{{ $builderName }} {
259+ if len(b.fieldSet_) == 0 {
260+ b.fieldSet_ = make([]bool, {{ fieldSetSize $.Type }})
261+ }
256262 b.id = value
257263 b.fieldSet_[1] = true
258264 return b
259265 }
260266
261267 // HREF sets the link to the object.
262268 func (b *{{ $builderName }}) HREF(value string) *{{ $builderName }} {
269+ if len(b.fieldSet_) == 0 {
270+ b.fieldSet_ = make([]bool, {{ fieldSetSize $.Type }})
271+ }
263272 b.href = value
264273 b.fieldSet_[2] = true
265274 return b
@@ -302,6 +311,9 @@ func (g *BuildersGenerator) generateStructBuilderSource(typ *concepts.Type) {
302311 {{ lineComment .Type.Doc }}
303312 {{ if .Link }}
304313 func (b *{{ $builderName }}) {{ $setterName }}(value {{ $setterType }}) *{{ $builderName }} {
314+ if len(b.fieldSet_) == 0 {
315+ b.fieldSet_ = make([]bool, {{ fieldSetSize $.Type }})
316+ }
305317 b.{{ $fieldName }} = value
306318 b.fieldSet_[{{ $fieldIndex }}] = true
307319 return b
@@ -310,6 +322,9 @@ func (g *BuildersGenerator) generateStructBuilderSource(typ *concepts.Type) {
310322 {{ $elementType := valueType .Type.Element }}
311323 {{ if .Type.Element.IsScalar }}
312324 func (b *{{ $builderName }}) {{ $setterName }}(values ...{{ $elementType }}) *{{ $builderName }} {
325+ if len(b.fieldSet_) == 0 {
326+ b.fieldSet_ = make([]bool, {{ fieldSetSize $.Type }})
327+ }
313328 b.{{ $fieldName }} = make([]{{ $elementType }}, len(values))
314329 copy(b.{{ $fieldName }}, values)
315330 b.fieldSet_[{{ $fieldIndex }}] = true
@@ -318,6 +333,9 @@ func (g *BuildersGenerator) generateStructBuilderSource(typ *concepts.Type) {
318333 {{ else }}
319334 {{ $elementBuilderName := builderName .Type.Element }}
320335 func (b *{{ $builderName }}) {{ $setterName }}(values ...*{{ selectorType . }}{{ $elementBuilderName }}) *{{ $builderName }} {
336+ if len(b.fieldSet_) == 0 {
337+ b.fieldSet_ = make([]bool, {{ fieldSetSize $.Type }})
338+ }
321339 b.{{ $fieldName }} = make([]*{{ selectorType . }}{{ $elementBuilderName }}, len(values))
322340 copy(b.{{ $fieldName }}, values)
323341 b.fieldSet_[{{ $fieldIndex }}] = true
@@ -330,6 +348,9 @@ func (g *BuildersGenerator) generateStructBuilderSource(typ *concepts.Type) {
330348 //
331349 {{ lineComment .Type.Doc }}
332350 func (b *{{ $builderName }}) {{ $setterName }}(value {{ $setterType }}) *{{ $builderName }} {
351+ if len(b.fieldSet_) == 0 {
352+ b.fieldSet_ = make([]bool, {{ fieldSetSize $.Type }})
353+ }
333354 b.{{ $fieldName }} = value
334355 {{ if .Type.IsScalar }}
335356 b.fieldSet_[{{ $fieldIndex }}] = true
0 commit comments