Precompute canonical paths before sorting
This commit is contained in:
@@ -313,14 +313,22 @@ func runResolution[T any](configuration *T, resolver func(*T, *Resolution) error
|
||||
}
|
||||
|
||||
func orderedResolutionRecords(records map[string]*resolutionRecord) []*resolutionRecord {
|
||||
ordered := make([]*resolutionRecord, 0, len(records))
|
||||
for _, record := range records {
|
||||
ordered = append(ordered, record)
|
||||
type orderedRecord struct {
|
||||
record *resolutionRecord
|
||||
pointer string
|
||||
}
|
||||
slices.SortFunc(ordered, func(left, right *resolutionRecord) int {
|
||||
return strings.Compare(left.path.String(), right.path.String())
|
||||
ordered := make([]orderedRecord, 0, len(records))
|
||||
for _, record := range records {
|
||||
ordered = append(ordered, orderedRecord{record: record, pointer: record.path.String()})
|
||||
}
|
||||
slices.SortFunc(ordered, func(left, right orderedRecord) int {
|
||||
return strings.Compare(left.pointer, right.pointer)
|
||||
})
|
||||
return ordered
|
||||
result := make([]*resolutionRecord, len(ordered))
|
||||
for i, item := range ordered {
|
||||
result[i] = item.record
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func coveringResolutionRecord(records []*resolutionRecord, path Path) *resolutionRecord {
|
||||
|
||||
Reference in New Issue
Block a user