1
Fork 0

Rollup merge of #135677 - yotamofek:resolve-cleanups2, r=compiler-errors

Small `rustc_resolve` cleanups

1. Don't open-code `Reverse`
2. Use slice patterns where possible
This commit is contained in:
Matthias Krüger 2025-02-11 18:04:28 +01:00 committed by GitHub
commit 09ee4e7b00
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1127,7 +1127,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
}); });
// Make sure error reporting is deterministic. // Make sure error reporting is deterministic.
suggestions.sort_by(|a, b| a.candidate.as_str().partial_cmp(b.candidate.as_str()).unwrap()); suggestions.sort_by(|a, b| a.candidate.as_str().cmp(b.candidate.as_str()));
match find_best_match_for_name( match find_best_match_for_name(
&suggestions.iter().map(|suggestion| suggestion.candidate).collect::<Vec<Symbol>>(), &suggestions.iter().map(|suggestion| suggestion.candidate).collect::<Vec<Symbol>>(),
@ -2256,14 +2256,15 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
mut path: Vec<Segment>, mut path: Vec<Segment>,
parent_scope: &ParentScope<'ra>, parent_scope: &ParentScope<'ra>,
) -> Option<(Vec<Segment>, Option<String>)> { ) -> Option<(Vec<Segment>, Option<String>)> {
match (path.get(0), path.get(1)) { match path[..] {
// `{{root}}::ident::...` on both editions. // `{{root}}::ident::...` on both editions.
// On 2015 `{{root}}` is usually added implicitly. // On 2015 `{{root}}` is usually added implicitly.
(Some(fst), Some(snd)) [first, second, ..]
if fst.ident.name == kw::PathRoot && !snd.ident.is_path_segment_keyword() => {} if first.ident.name == kw::PathRoot && !second.ident.is_path_segment_keyword() => {}
// `ident::...` on 2018. // `ident::...` on 2018.
(Some(fst), _) [first, ..]
if fst.ident.span.at_least_rust_2018() && !fst.ident.is_path_segment_keyword() => if first.ident.span.at_least_rust_2018()
&& !first.ident.is_path_segment_keyword() =>
{ {
// Insert a placeholder that's later replaced by `self`/`super`/etc. // Insert a placeholder that's later replaced by `self`/`super`/etc.
path.insert(0, Segment::from_ident(Ident::empty())); path.insert(0, Segment::from_ident(Ident::empty()));
@ -2374,7 +2375,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> {
// 2) `std` suggestions before `core` suggestions. // 2) `std` suggestions before `core` suggestions.
let mut extern_crate_names = let mut extern_crate_names =
self.extern_prelude.keys().map(|ident| ident.name).collect::<Vec<_>>(); self.extern_prelude.keys().map(|ident| ident.name).collect::<Vec<_>>();
extern_crate_names.sort_by(|a, b| b.as_str().partial_cmp(a.as_str()).unwrap()); extern_crate_names.sort_by(|a, b| b.as_str().cmp(a.as_str()));
for name in extern_crate_names.into_iter() { for name in extern_crate_names.into_iter() {
// Replace first ident with a crate name and check if that is valid. // Replace first ident with a crate name and check if that is valid.