Skip to content

Commit d7a3d1b

Browse files
authored
Converters: Generate disjunctions always in the same order (#1059)
1 parent 9ea816d commit d7a3d1b

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

internal/languages/converter.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package languages
22

33
import (
44
"fmt"
5+
"sort"
56
"strings"
67

78
"github.com/grafana/cog/internal/ast"
@@ -184,8 +185,13 @@ func (generator *ConverterGenerator) FromBuilder(context Context, builder ast.Bu
184185
return generator.convertOption(context, converter, option)
185186
})
186187

187-
for _, opts := range generator.listOfDisjunctionOptions {
188-
converter.Mappings = append(converter.Mappings, generator.convertListOfDisjunctionOptions(context, converter, opts))
188+
disjunctionPaths := make([]string, 0, len(generator.listOfDisjunctionOptions))
189+
for path := range generator.listOfDisjunctionOptions {
190+
disjunctionPaths = append(disjunctionPaths, path)
191+
}
192+
sort.Strings(disjunctionPaths)
193+
for _, path := range disjunctionPaths {
194+
converter.Mappings = append(converter.Mappings, generator.convertListOfDisjunctionOptions(context, converter, generator.listOfDisjunctionOptions[path]))
189195
}
190196

191197
converter.Mappings = tools.Filter(converter.Mappings, func(mapping ConversionMapping) bool {

0 commit comments

Comments
 (0)