Skip to content

Commit 780bea5

Browse files
committed
Use BTreeSet instead of FxHashSet
1 parent b0d0272 commit 780bea5

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

src/librustc_resolve/lib.rs

+9-10
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ use errors::DiagnosticBuilder;
6969

7070
use std::cell::{Cell, RefCell};
7171
use std::cmp;
72+
use std::collections::BTreeSet;
7273
use std::fmt;
7374
use std::mem::replace;
7475
use std::rc::Rc;
@@ -100,8 +101,8 @@ enum AssocSuggestion {
100101
#[derive(Eq)]
101102
struct BindingError {
102103
name: Name,
103-
origin: FxHashSet<Span>,
104-
target: FxHashSet<Span>,
104+
origin: BTreeSet<Span>,
105+
target: BTreeSet<Span>,
105106
}
106107

107108
impl PartialOrd for BindingError {
@@ -233,16 +234,14 @@ fn resolve_struct_error<'sess, 'a>(resolver: &'sess Resolver,
233234
err
234235
}
235236
ResolutionError::VariableNotBoundInPattern(binding_error) => {
236-
let mut target_sp = binding_error.target.iter().map(|x| *x).collect::<Vec<_>>();
237-
target_sp.sort();
237+
let target_sp = binding_error.target.iter().map(|x| *x).collect::<Vec<_>>();
238238
let msp = MultiSpan::from_spans(target_sp.clone());
239239
let msg = format!("variable `{}` is not bound in all patterns", binding_error.name);
240240
let mut err = resolver.session.struct_span_err_with_code(msp, &msg, "E0408");
241241
for sp in target_sp {
242242
err.span_label(sp, &format!("pattern doesn't bind `{}`", binding_error.name));
243243
}
244-
let mut origin_sp = binding_error.origin.iter().map(|x| *x).collect::<Vec<_>>();
245-
origin_sp.sort();
244+
let origin_sp = binding_error.origin.iter().map(|x| *x).collect::<Vec<_>>();
246245
for sp in origin_sp {
247246
err.span_label(sp, &"variable not in all patterns");
248247
}
@@ -1950,8 +1949,8 @@ impl<'a> Resolver<'a> {
19501949
.entry(key.name)
19511950
.or_insert(BindingError {
19521951
name: key.name,
1953-
origin: FxHashSet(),
1954-
target: FxHashSet(),
1952+
origin: BTreeSet::new(),
1953+
target: BTreeSet::new(),
19551954
});
19561955
binding_error.origin.insert(binding_i.span);
19571956
binding_error.target.insert(q.span);
@@ -1963,8 +1962,8 @@ impl<'a> Resolver<'a> {
19631962
.entry(key_j.name)
19641963
.or_insert(BindingError {
19651964
name: key_j.name,
1966-
origin: FxHashSet(),
1967-
target: FxHashSet(),
1965+
origin: BTreeSet::new(),
1966+
target: BTreeSet::new(),
19681967
});
19691968
binding_error.origin.insert(binding_j.span);
19701969
binding_error.target.insert(p.span);

0 commit comments

Comments
 (0)