zed-industries/zed · error
min_dist should not be empty when selected.len() < k
Error message
min_dist should not be empty when selected.len() < k
What it means
Internal assertion in greedy_max_min_diverse (edit prediction CLI sampling): when fewer than k members are selected, the min_dist candidate map must be non-empty, otherwise the greedy diverse-sampling loop cannot pick the next member. Firing indicates an empty input slice or an indexing bug.
Source
Thrown at crates/edit_prediction_cli/src/main.rs:769
fn greedy_max_min_diverse(members: &[usize], signatures: &[Vec<u32>], k: usize) -> Vec<usize> {
if members.len() <= k {
return members.to_vec();
}
let mut selected = vec![members[0]];
let mut min_dist: HashMap<usize, f64> = HashMap::default();
for &member in &members[1..] {
let dist = 1.0 - compute_minhash_similarity(&signatures[selected[0]], &signatures[member]);
min_dist.insert(member, dist);
}
while selected.len() < k {
let &best = min_dist
.iter()
.max_by(|(_, a), (_, b)| a.partial_cmp(b).unwrap_or(std::cmp::Ordering::Equal))
.map(|(id, _)| id)
.expect("min_dist should not be empty when selected.len() < k");
selected.push(best);
min_dist.remove(&best);
let best_sig = &signatures[best];
for (member, current_min) in min_dist.iter_mut() {
let dist = 1.0 - compute_minhash_similarity(best_sig, &signatures[*member]);
if dist < *current_min {
*current_min = dist;
}
}
}
selected
}
fn code_token_ngrams(code: &str, ngram_size: usize) -> Vec<String> {
let tokens: Vec<&str> = word_diff::tokenize(code)
.into_iter()View on GitHub (pinned to f4178619ac)
Solutions
- Ensure the input member list has more than k elements before calling
- Check that signatures are computed for all members before sampling
- File a bug with the dataset size that triggered it
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at crates/edit_prediction_cli/src/main.rs:769 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/9e9d9b1b985b8842.
Report an issue: GitHub.