ref: cea24e9d2de20aec9ec173a1d131f3efbf2f9a29
parent: 1734207266752b9464f42c31f7728a7e3c692c50
author: Runxi Yu <me@runxiyu.org>
date: Wed Mar 11 12:44:40 EDT 2026
internal/commitquery: Unexport priority queue
--- a/internal/commitquery/merge_bases.go
+++ b/internal/commitquery/merge_bases.go
@@ -44,7 +44,7 @@
return nil
}
- queue := NewPriorityQueue(ctx)
+ queue := newPriorityQueue(ctx)
queue.PushNode(left)
for _, right := range rights {@@ -87,7 +87,7 @@
return nil
}
-func queueHasNonStale(ctx *Context, queue *PriorityQueue) bool {+func queueHasNonStale(ctx *Context, queue *priorityQueue) bool { for _, idx := range queue.items { if !ctx.HasAnyMarks(idx, markStale) {return true
--- a/internal/commitquery/priority_queue.go
+++ b/internal/commitquery/priority_queue.go
@@ -2,15 +2,15 @@
import "container/heap"
-// PriorityQueue orders internal nodes using one query context's comparator.
-type PriorityQueue struct {+// priorityQueue orders internal nodes using one query context's comparator.
+type priorityQueue struct {ctx *Context
items []NodeIndex
}
-// NewPriorityQueue builds one empty priority queue over one query context.
-func NewPriorityQueue(ctx *Context) *PriorityQueue {- queue := &PriorityQueue{ctx: ctx}+// newPriorityQueue builds one empty priority queue over one query context.
+func newPriorityQueue(ctx *Context) *priorityQueue {+ queue := &priorityQueue{ctx: ctx}heap.Init(queue)
return queue
@@ -17,22 +17,22 @@
}
// Len reports the number of queued items.
-func (queue *PriorityQueue) Len() int {+func (queue *priorityQueue) Len() int {return len(queue.items)
}
// Less reports whether one heap slot sorts ahead of another.
-func (queue *PriorityQueue) Less(left, right int) bool {+func (queue *priorityQueue) Less(left, right int) bool {return queue.ctx.Compare(queue.items[left], queue.items[right]) > 0
}
// Swap exchanges two heap slots.
-func (queue *PriorityQueue) Swap(left, right int) {+func (queue *priorityQueue) Swap(left, right int) {queue.items[left], queue.items[right] = queue.items[right], queue.items[left]
}
// Push appends one heap element.
-func (queue *PriorityQueue) Push(item any) {+func (queue *priorityQueue) Push(item any) {idx, ok := item.(NodeIndex)
if !ok { panic("commitquery: heap push item is not a NodeIndex")@@ -42,7 +42,7 @@
}
// Pop removes one heap element.
-func (queue *PriorityQueue) Pop() any {+func (queue *priorityQueue) Pop() any {last := len(queue.items) - 1
item := queue.items[last]
queue.items = queue.items[:last]
@@ -51,12 +51,12 @@
}
// PushNode inserts one internal node.
-func (queue *PriorityQueue) PushNode(idx NodeIndex) {+func (queue *priorityQueue) PushNode(idx NodeIndex) {heap.Push(queue, idx)
}
// PopNode removes the highest-priority internal node.
-func (queue *PriorityQueue) PopNode() NodeIndex {+func (queue *priorityQueue) PopNode() NodeIndex {item := heap.Pop(queue)
idx, ok := item.(NodeIndex)
--
⑨