@@ -122,20 +122,18 @@ type Data struct {
122122// Overlay joins the given list of data into a single Data. The last Data in the
123123// list will be used for generation.
124124func Overlay (data ... Data ) Data {
125- overlay := data [:len (data )- 1 ]
126125 last := data [len (data )- 1 ]
126+ if last .ExternOverrides == nil {
127+ last .ExternOverrides = make (map [string ]gir.Repositories )
128+ }
127129
128- for _ , datum := range overlay {
129- if last .ExternOverrides == nil {
130- last .ExternOverrides = make (map [string ]gir.Repositories )
131- }
132-
133- last .KnownPackages = append (last .KnownPackages , datum .Packages ... )
130+ for _ , datum := range slices .Backward (data [:len (data )- 1 ]) {
131+ last .KnownPackages = slices .Concat (datum .Packages , last .KnownPackages )
134132 last .ExternOverrides [datum .Module ] = MustLoadPackages (datum .Packages )
135- last .Preprocessors = append ( last .Preprocessors , datum .Preprocessors ... )
136- last .Filters = append ( last .Filters , datum .Filters ... )
137- last .ProcessConverters = append ( last .ProcessConverters , datum .ProcessConverters ... )
138- last .DynamicLinkNamespaces = append ( last .DynamicLinkNamespaces , datum .DynamicLinkNamespaces ... )
133+ last .Preprocessors = slices . Concat ( datum .Preprocessors , last .Preprocessors )
134+ last .Filters = slices . Concat ( datum .Filters , last .Filters )
135+ last .ProcessConverters = slices . Concat ( datum .ProcessConverters , last .ProcessConverters )
136+ last .DynamicLinkNamespaces = slices . Concat ( datum .DynamicLinkNamespaces , last .DynamicLinkNamespaces )
139137 }
140138
141139 last .KnownPackages = slices .CompactFunc (last .KnownPackages , func (a , b Package ) bool {
0 commit comments