1
Fork 0

Remove PartialOrd and Ord from LocalDefId

Implement `Ord`, `PartialOrd` for SpanData
This commit is contained in:
pierwill 2021-10-30 10:11:50 -05:00
parent e100ec5bc7
commit 8df9248591
12 changed files with 72 additions and 24 deletions

View file

@ -675,7 +675,7 @@ impl<T: Idx> SparseBitSet<T> {
fn insert(&mut self, elem: T) -> bool {
assert!(elem.index() < self.domain_size);
let changed = if let Some(i) = self.elems.iter().position(|&e| e >= elem) {
let changed = if let Some(i) = self.elems.iter().position(|&e| e.index() >= elem.index()) {
if self.elems[i] == elem {
// `elem` is already in the set.
false

View file

@ -12,7 +12,7 @@ use std::vec;
/// Represents some newtyped `usize` wrapper.
///
/// Purpose: avoid mixing indexes for different bitvector domains.
pub trait Idx: Copy + 'static + Ord + Debug + Hash {
pub trait Idx: Copy + 'static + Eq + PartialEq + Debug + Hash {
fn new(idx: usize) -> Self;
fn index(self) -> usize;