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

  1. Ensure the input member list has more than k elements before calling
  2. Check that signatures are computed for all members before sampling
  3. 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.