Skip to content

Commit 2e2c86e

Browse files
committed
Auto merge of #92070 - rukai:replace_vec_into_iter_with_array_into_iter, r=Mark-Simulacrum
Replace usages of vec![].into_iter with [].into_iter `[].into_iter` is idiomatic over `vec![].into_iter` because its simpler and faster (unless the vec is optimized away in which case it would be the same) So we should change all the implementation, documentation and tests to use it. I skipped: * `src/tools` - Those are copied in from upstream * `src/test/ui` - Hard to tell if `vec![].into_iter` was used intentionally or not here and not much benefit to changing it. * any case where `vec![].into_iter` was used because we specifically needed a `Vec::IntoIter<T>` * any case where it looked like we were intentionally using `vec![].into_iter` to test it.
2 parents e4b1d58 + 0882985 commit 2e2c86e

File tree

36 files changed

+116
-122
lines changed

36 files changed

+116
-122
lines changed

compiler/rustc_codegen_llvm/src/intrinsic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -791,7 +791,7 @@ fn get_rust_try_fn<'ll, 'tcx>(
791791
)));
792792
// `unsafe fn(unsafe fn(*mut i8) -> (), *mut i8, unsafe fn(*mut i8, *mut i8) -> ()) -> i32`
793793
let rust_fn_sig = ty::Binder::dummy(cx.tcx.mk_fn_sig(
794-
vec![try_fn_ty, i8p, catch_fn_ty].into_iter(),
794+
[try_fn_ty, i8p, catch_fn_ty].into_iter(),
795795
tcx.types.i32,
796796
false,
797797
hir::Unsafety::Unsafe,

compiler/rustc_data_structures/src/thin_vec/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ impl<T> ThinVec<T> {
1010
fn test_from_iterator() {
1111
assert_eq!(std::iter::empty().collect::<ThinVec<String>>().into_vec(), Vec::<String>::new());
1212
assert_eq!(std::iter::once(42).collect::<ThinVec<_>>().into_vec(), vec![42]);
13-
assert_eq!(vec![1, 2].into_iter().collect::<ThinVec<_>>().into_vec(), vec![1, 2]);
14-
assert_eq!(vec![1, 2, 3].into_iter().collect::<ThinVec<_>>().into_vec(), vec![1, 2, 3]);
13+
assert_eq!([1, 2].into_iter().collect::<ThinVec<_>>().into_vec(), vec![1, 2]);
14+
assert_eq!([1, 2, 3].into_iter().collect::<ThinVec<_>>().into_vec(), vec![1, 2, 3]);
1515
}
1616

1717
#[test]

compiler/rustc_data_structures/src/vec_map/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fn test_from_iterator() {
1414
);
1515
assert_eq!(std::iter::once((42, true)).collect::<VecMap<_, _>>().into_vec(), vec![(42, true)]);
1616
assert_eq!(
17-
vec![(1, true), (2, false)].into_iter().collect::<VecMap<_, _>>().into_vec(),
17+
[(1, true), (2, false)].into_iter().collect::<VecMap<_, _>>().into_vec(),
1818
vec![(1, true), (2, false)]
1919
);
2020
}
@@ -41,7 +41,7 @@ fn test_insert() {
4141

4242
#[test]
4343
fn test_get() {
44-
let v = vec![(1, true), (2, false)].into_iter().collect::<VecMap<_, _>>();
44+
let v = [(1, true), (2, false)].into_iter().collect::<VecMap<_, _>>();
4545
assert_eq!(v.get(&1), Some(&true));
4646
assert_eq!(v.get(&2), Some(&false));
4747
assert_eq!(v.get(&3), None);

compiler/rustc_errors/src/json.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ impl DiagnosticSpan {
455455
let backtrace_step = backtrace.next().map(|bt| {
456456
let call_site = Self::from_span_full(bt.call_site, false, None, None, backtrace, je);
457457
let def_site_span =
458-
Self::from_span_full(bt.def_site, false, None, None, vec![].into_iter(), je);
458+
Self::from_span_full(bt.def_site, false, None, None, [].into_iter(), je);
459459
Box::new(DiagnosticSpanMacroExpansion {
460460
span: call_site,
461461
macro_decl_name: bt.kind.descr(),

compiler/rustc_expand/src/proc_macro_server.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ impl FromInternal<(TreeAndSpacing, &'_ mut Vec<Self>, &mut Rustc<'_, '_>)>
158158
for ch in data.as_str().chars() {
159159
escaped.extend(ch.escape_debug());
160160
}
161-
let stream = vec![
161+
let stream = [
162162
Ident(sym::doc, false),
163163
Eq,
164164
TokenKind::lit(token::Str, Symbol::intern(&escaped), None),
@@ -221,7 +221,7 @@ impl ToInternal<TokenStream> for TokenTree<Group, Punct, Ident, Literal> {
221221
let integer = TokenKind::lit(token::Integer, symbol, suffix);
222222
let a = tokenstream::TokenTree::token(minus, span);
223223
let b = tokenstream::TokenTree::token(integer, span);
224-
return vec![a, b].into_iter().collect();
224+
return [a, b].into_iter().collect();
225225
}
226226
TokenTree::Literal(self::Literal {
227227
lit: token::Lit { kind: token::Float, symbol, suffix },
@@ -232,7 +232,7 @@ impl ToInternal<TokenStream> for TokenTree<Group, Punct, Ident, Literal> {
232232
let float = TokenKind::lit(token::Float, symbol, suffix);
233233
let a = tokenstream::TokenTree::token(minus, span);
234234
let b = tokenstream::TokenTree::token(float, span);
235-
return vec![a, b].into_iter().collect();
235+
return [a, b].into_iter().collect();
236236
}
237237
TokenTree::Literal(self::Literal { lit, span }) => {
238238
return tokenstream::TokenTree::token(Literal(lit), span).into();

compiler/rustc_graphviz/src/tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ impl NodeLabels<&'static str> {
5656
match self {
5757
UnlabelledNodes(len) => vec![None; len],
5858
AllNodesLabelled(lbls) => lbls.into_iter().map(Some).collect(),
59-
SomeNodesLabelled(lbls) => lbls.into_iter().collect(),
59+
SomeNodesLabelled(lbls) => lbls,
6060
}
6161
}
6262

compiler/rustc_incremental/src/persist/fs/tests.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ fn test_all_except_most_recent() {
1313
.keys()
1414
.cloned()
1515
.collect::<FxHashSet<PathBuf>>(),
16-
vec![PathBuf::from("1"), PathBuf::from("2"), PathBuf::from("3"), PathBuf::from("4"),]
16+
[PathBuf::from("1"), PathBuf::from("2"), PathBuf::from("3"), PathBuf::from("4"),]
1717
.into_iter()
1818
.collect::<FxHashSet<PathBuf>>()
1919
);
@@ -40,7 +40,7 @@ fn test_find_source_directory_in_iter() {
4040
// Find newest
4141
assert_eq!(
4242
find_source_directory_in_iter(
43-
vec![
43+
[
4444
PathBuf::from("crate-dir/s-3234-0000-svh"),
4545
PathBuf::from("crate-dir/s-2234-0000-svh"),
4646
PathBuf::from("crate-dir/s-1234-0000-svh")
@@ -54,7 +54,7 @@ fn test_find_source_directory_in_iter() {
5454
// Filter out "-working"
5555
assert_eq!(
5656
find_source_directory_in_iter(
57-
vec![
57+
[
5858
PathBuf::from("crate-dir/s-3234-0000-working"),
5959
PathBuf::from("crate-dir/s-2234-0000-svh"),
6060
PathBuf::from("crate-dir/s-1234-0000-svh")
@@ -66,12 +66,12 @@ fn test_find_source_directory_in_iter() {
6666
);
6767

6868
// Handle empty
69-
assert_eq!(find_source_directory_in_iter(vec![].into_iter(), &already_visited), None);
69+
assert_eq!(find_source_directory_in_iter([].into_iter(), &already_visited), None);
7070

7171
// Handle only working
7272
assert_eq!(
7373
find_source_directory_in_iter(
74-
vec![
74+
[
7575
PathBuf::from("crate-dir/s-3234-0000-working"),
7676
PathBuf::from("crate-dir/s-2234-0000-working"),
7777
PathBuf::from("crate-dir/s-1234-0000-working")

compiler/rustc_infer/src/infer/error_reporting/mod.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
771771
self.suggest_boxing_for_return_impl_trait(
772772
err,
773773
ret_sp,
774-
vec![then, else_sp].into_iter(),
774+
[then, else_sp].into_iter(),
775775
);
776776
}
777777
}
@@ -807,11 +807,8 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
807807
);
808808
let sugg = arm_spans
809809
.flat_map(|sp| {
810-
vec![
811-
(sp.shrink_to_lo(), "Box::new(".to_string()),
812-
(sp.shrink_to_hi(), ")".to_string()),
813-
]
814-
.into_iter()
810+
[(sp.shrink_to_lo(), "Box::new(".to_string()), (sp.shrink_to_hi(), ")".to_string())]
811+
.into_iter()
815812
})
816813
.collect::<Vec<_>>();
817814
err.multipart_suggestion(

compiler/rustc_infer/src/infer/error_reporting/need_type_info.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -540,8 +540,8 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
540540
// error[E0284]: type annotations needed
541541
// --> file.rs:2:5
542542
// |
543-
// 2 | vec![Ok(2)].into_iter().collect()?;
544-
// | ^^^^^^^ cannot infer type
543+
// 2 | [Ok(2)].into_iter().collect()?;
544+
// | ^^^^^^^ cannot infer type
545545
// |
546546
// = note: cannot resolve `<_ as std::ops::Try>::Ok == _`
547547
if span.contains(*call_span) { *call_span } else { span }

compiler/rustc_parse/src/parser/diagnostics.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,8 +550,8 @@ impl<'a> Parser<'a> {
550550
/// a diagnostic to suggest removing them.
551551
///
552552
/// ```ignore (diagnostic)
553-
/// let _ = vec![1, 2, 3].into_iter().collect::<Vec<usize>>>>();
554-
/// ^^ help: remove extra angle brackets
553+
/// let _ = [1, 2, 3].into_iter().collect::<Vec<usize>>>>();
554+
/// ^^ help: remove extra angle brackets
555555
/// ```
556556
///
557557
/// If `true` is returned, then trailing brackets were recovered, tokens were consumed

0 commit comments

Comments
 (0)