Skip to content
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

Rollup of 8 pull requests #117228

Merged
merged 29 commits into from
Oct 26, 2023
Merged
Changes from 1 commit
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
e68edb8
refactor(compiler/resolve): simplify some code
Fenex Oct 18, 2023
855444e
mv tests
estebank Oct 24, 2023
2dec1bc
Avoid unbounded O(n^2) when parsing nested type args
estebank Oct 24, 2023
e4c41b0
Add arg_count field to Body in Stable MIR
klinvill Oct 23, 2023
93d1b3e
Replace arg_count in public API with return/arg getters
klinvill Oct 25, 2023
f4d80a5
Add public API to retrieve internal locals
klinvill Oct 25, 2023
372c533
Make locals field private
klinvill Oct 25, 2023
39b293f
Add a public API to get all body locals
klinvill Oct 25, 2023
72e8690
Remove unused `never_type` feature.
nnethercote Oct 24, 2023
ca29c27
Reduce exposure of three functions used only within `rustc_incremental`.
nnethercote Oct 24, 2023
8da1b33
Move a `use` to a more sensible spot.
nnethercote Oct 24, 2023
3cf2a74
Tiny comment fixes.
nnethercote Oct 25, 2023
e0c990e
Reduce some function exposure.
nnethercote Oct 25, 2023
fe4dfb8
Rename internal_locals to inner_locals
klinvill Oct 25, 2023
4b23bd4
Update Place and Operand to take slices
klinvill Oct 25, 2023
bac7d5b
Add test for smir locals
klinvill Oct 25, 2023
9f5fc02
The value of `-Cinstrument-coverage=` doesn't need to be `Option`
Zalathar Oct 25, 2023
ab7f64c
Revert "Remove TaKO8Ki from reviewers"
TaKO8Ki Oct 26, 2023
d55487d
Use two slice expressions to save on an offset repetition
oli-obk Oct 26, 2023
d572729
Quietly fail if an error has already occurred
oli-obk Oct 26, 2023
b1b1458
Replace type flag HAS_TY_GENERATOR with HAS_TY_COROUTINE
fmease Oct 26, 2023
17fb2f4
Rollup merge of #116905 - Fenex:refactor/compiler/resolve, r=petroche…
matthiaskrgr Oct 26, 2023
b66c6e7
Rollup merge of #117095 - klinvill:smir-fn-arg-count, r=oli-obk
matthiaskrgr Oct 26, 2023
7eb0548
Rollup merge of #117143 - estebank:issue-117080, r=wesleywiser
matthiaskrgr Oct 26, 2023
577026c
Rollup merge of #117194 - nnethercote:rustc_incremental, r=cjgillot
matthiaskrgr Oct 26, 2023
36b794e
Rollup merge of #117202 - TaKO8Ki:revert-remove-TaKO8Ki-from-reviewer…
matthiaskrgr Oct 26, 2023
24bdc37
Rollup merge of #117207 - Zalathar:no-option, r=compiler-errors
matthiaskrgr Oct 26, 2023
70a4678
Rollup merge of #117214 - oli-obk:error_shenanigans, r=compiler-errors
matthiaskrgr Oct 26, 2023
a461de7
Rollup merge of #117221 - fmease:TypeFlags-HAS_TY_GENERATOR-to-COROUT…
matthiaskrgr Oct 26, 2023
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
Next Next commit
refactor(compiler/resolve): simplify some code
Removes unnecessary allocates and double-sorting the same vector,
makes the code a little nicer.
  • Loading branch information
Fenex committed Oct 18, 2023
commit e68edb89ad1b34a3112c1cddd5541917743ccecd
21 changes: 10 additions & 11 deletions compiler/rustc_resolve/src/check_unused.rs
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ impl Resolver<'_, '_> {

for unused in visitor.unused_imports.values() {
let mut fixes = Vec::new();
let mut spans = match calc_unused_spans(unused, unused.use_tree, unused.use_tree_id) {
let spans = match calc_unused_spans(unused, unused.use_tree, unused.use_tree_id) {
UnusedSpanResult::Used => continue,
UnusedSpanResult::FlatUnused(span, remove) => {
fixes.push((remove, String::new()));
Expand All @@ -356,20 +356,19 @@ impl Resolver<'_, '_> {
}
};

let len = spans.len();
spans.sort();
let ms = MultiSpan::from_spans(spans.clone());
let mut span_snippets = spans
let ms = MultiSpan::from_spans(spans);

let mut span_snippets = ms
.primary_spans()
.iter()
.filter_map(|s| match tcx.sess.source_map().span_to_snippet(*s) {
Ok(s) => Some(format!("`{s}`")),
_ => None,
})
.filter_map(|span| tcx.sess.source_map().span_to_snippet(*span).ok())
.map(|s| format!("`{s}`"))
.collect::<Vec<String>>();
span_snippets.sort();

let msg = format!(
"unused import{}{}",
pluralize!(len),
pluralize!(ms.primary_spans().len()),
if !span_snippets.is_empty() {
format!(": {}", span_snippets.join(", "))
} else {
Expand All @@ -379,7 +378,7 @@ impl Resolver<'_, '_> {

let fix_msg = if fixes.len() == 1 && fixes[0].0 == unused.item_span {
"remove the whole `use` item"
} else if spans.len() > 1 {
} else if ms.primary_spans().len() > 1 {
"remove the unused imports"
} else {
"remove the unused import"
Expand Down
Loading