Skip to content

Improve readability in a few sorts #52692

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 26, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions src/librustc_driver/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1229,10 +1229,7 @@ Available lint options:
fn sort_lint_groups(lints: Vec<(&'static str, Vec<lint::LintId>, bool)>)
-> Vec<(&'static str, Vec<lint::LintId>)> {
let mut lints: Vec<_> = lints.into_iter().map(|(x, y, _)| (x, y)).collect();
lints.sort_by(|&(x, _): &(&'static str, Vec<lint::LintId>),
&(y, _): &(&'static str, Vec<lint::LintId>)| {
x.cmp(y)
});
lints.sort_by_key(|ref l| l.0);
lints
}

Expand Down
5 changes: 2 additions & 3 deletions src/librustc_driver/profile/trace.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,14 +202,13 @@ fn compute_counts_rec(counts: &mut HashMap<String,QueryMetric>, traces: &Vec<Rec

pub fn write_counts(count_file: &mut File, counts: &mut HashMap<String,QueryMetric>) {
use rustc::util::common::duration_to_secs_str;
use std::cmp::Ordering;
use std::cmp::Reverse;

let mut data = vec![];
for (ref cons, ref qm) in counts.iter() {
data.push((cons.clone(), qm.count.clone(), qm.dur_total.clone(), qm.dur_self.clone()));
};
data.sort_by(|&(_,_,_,self1),&(_,_,_,self2)|
if self1 > self2 { Ordering::Less } else { Ordering::Greater } );
data.sort_by_key(|&k| Reverse(k.3));
for (cons, count, dur_total, dur_self) in data {
write!(count_file, "{}, {}, {}, {}\n",
cons, count,
Expand Down
8 changes: 3 additions & 5 deletions src/librustc_errors/emitter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use std::borrow::Cow;
use std::io::prelude::*;
use std::io;
use std::collections::HashMap;
use std::cmp::min;
use std::cmp::{min, Reverse};
use termcolor::{StandardStream, ColorChoice, ColorSpec, BufferWriter};
use termcolor::{WriteColor, Color, Buffer};
use unicode_width;
Expand Down Expand Up @@ -265,9 +265,7 @@ impl EmitterWriter {
}

// Find overlapping multiline annotations, put them at different depths
multiline_annotations.sort_by(|a, b| {
(a.1.line_start, a.1.line_end).cmp(&(b.1.line_start, b.1.line_end))
});
multiline_annotations.sort_by_key(|&(_, ref ml)| (ml.line_start, ml.line_end));
for item in multiline_annotations.clone() {
let ann = item.1;
for item in multiline_annotations.iter_mut() {
Expand Down Expand Up @@ -403,7 +401,7 @@ impl EmitterWriter {
// otherwise the lines would end up needing to go over a message.

let mut annotations = line.annotations.clone();
annotations.sort_by(|a,b| b.start_col.cmp(&a.start_col));
annotations.sort_by_key(|a| Reverse(a.start_col));

// First, figure out where each label will be positioned.
//
Expand Down
4 changes: 1 addition & 3 deletions src/librustc_mir/monomorphize/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ pub fn assert_symbols_are_distinct<'a, 'tcx, I>(tcx: TyCtxt<'a, 'tcx, 'tcx>, mon
(mono_item, mono_item.symbol_name(tcx))
}).collect();

(&mut symbols[..]).sort_by(|&(_, ref sym1), &(_, ref sym2)|{
sym1.cmp(sym2)
});
(&mut symbols[..]).sort_by_key(|&sym| sym.1);

for pair in (&symbols[..]).windows(2) {
let sym1 = &pair[0].1;
Expand Down
2 changes: 1 addition & 1 deletion src/librustc_mir/util/patch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ impl<'tcx> MirPatch<'tcx> {
}

let mut new_statements = self.new_statements;
new_statements.sort_by(|u,v| u.0.cmp(&v.0));
new_statements.sort_by_key(|s| s.0);

let mut delta = 0;
let mut last_bb = START_BLOCK;
Expand Down
2 changes: 1 addition & 1 deletion src/librustc_typeck/collect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1746,7 +1746,7 @@ pub fn compute_bounds<'gcx: 'tcx, 'tcx>(astconv: &dyn AstConv<'gcx, 'tcx>,
astconv.ast_region_to_region(r, None)
}).collect();

trait_bounds.sort_by(|a,b| a.def_id().cmp(&b.def_id()));
trait_bounds.sort_by_key(|t| t.def_id());

let implicitly_sized = if let SizedByDefault::Yes = sized_by_default {
!is_unsized(astconv, ast_bounds, span)
Expand Down