Skip to content

Commit ac93ca3

Browse files
committed
Turn to ifs into a match.
1 parent 756ef3b commit ac93ca3

File tree

1 file changed

+9
-16
lines changed

1 file changed

+9
-16
lines changed

Diff for: compiler/rustc_typeck/src/check/method/prelude2021.rs

+9-16
Original file line numberDiff line numberDiff line change
@@ -38,26 +38,19 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
3838
return;
3939
}
4040

41-
// `try_into` was added to the prelude in Rust 2021.
42-
// `into_iter` wasn't, but `[T; N].into_iter()` doesn't resolve to
43-
// IntoIterator::into_iter before Rust 2021, which results in the same
44-
// problem.
45-
if !matches!(segment.ident.name, sym::try_into | sym::into_iter) {
46-
return;
47-
}
48-
49-
let prelude_or_array_lint = if segment.ident.name == sym::into_iter {
50-
// The `into_iter` problem is only a thing for arrays.
51-
if let Array(..) = self_ty.kind() {
41+
let prelude_or_array_lint = match segment.ident.name {
42+
// `try_into` was added to the prelude in Rust 2021.
43+
sym::try_into => RUST_2021_PRELUDE_COLLISIONS,
44+
// `into_iter` wasn't added to the prelude,
45+
// but `[T; N].into_iter()` doesn't resolve to IntoIterator::into_iter
46+
// before Rust 2021, which results in the same problem.
47+
// It is only a problem for arrays.
48+
sym::into_iter if let Array(..) = self_ty.kind() => {
5249
// In this case, it wasn't really a prelude addition that was the problem.
5350
// Instead, the problem is that the array-into_iter hack will no longer apply in Rust 2021.
5451
rustc_lint::ARRAY_INTO_ITER
55-
} else {
56-
// No problem in this case.
57-
return;
5852
}
59-
} else {
60-
RUST_2021_PRELUDE_COLLISIONS
53+
_ => return,
6154
};
6255

6356
// No need to lint if method came from std/core, as that will now be in the prelude

0 commit comments

Comments
 (0)