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

+1-1
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

+2-2
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

+2-2
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

+1-1
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

+3-3
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

+1-1
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

+5-5
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

+3-6
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

+2-2
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

+2-2
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

compiler/rustc_target/src/spec/avr_gnu_base.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@ pub fn target(target_cpu: String) -> Target {
1717
linker: Some("avr-gcc".to_owned()),
1818
executables: true,
1919
eh_frame_header: false,
20-
pre_link_args: vec![(LinkerFlavor::Gcc, vec![format!("-mmcu={}", target_cpu)])]
21-
.into_iter()
22-
.collect(),
23-
late_link_args: vec![(LinkerFlavor::Gcc, vec!["-lgcc".to_owned()])]
20+
pre_link_args: [(LinkerFlavor::Gcc, vec![format!("-mmcu={}", target_cpu)])]
2421
.into_iter()
2522
.collect(),
23+
late_link_args: [(LinkerFlavor::Gcc, vec!["-lgcc".to_owned()])].into_iter().collect(),
2624
max_atomic_width: Some(0),
2725
atomic_cas: false,
2826
..TargetOptions::default()

compiler/rustc_target/src/spec/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -574,15 +574,15 @@ impl ToJson for StackProbeType {
574574
fn to_json(&self) -> Json {
575575
Json::Object(match self {
576576
StackProbeType::None => {
577-
vec![(String::from("kind"), "none".to_json())].into_iter().collect()
577+
[(String::from("kind"), "none".to_json())].into_iter().collect()
578578
}
579579
StackProbeType::Inline => {
580-
vec![(String::from("kind"), "inline".to_json())].into_iter().collect()
580+
[(String::from("kind"), "inline".to_json())].into_iter().collect()
581581
}
582582
StackProbeType::Call => {
583-
vec![(String::from("kind"), "call".to_json())].into_iter().collect()
583+
[(String::from("kind"), "call".to_json())].into_iter().collect()
584584
}
585-
StackProbeType::InlineOrCall { min_llvm_version_for_inline } => vec![
585+
StackProbeType::InlineOrCall { min_llvm_version_for_inline } => [
586586
(String::from("kind"), "inline-or-call".to_json()),
587587
(
588588
String::from("min-llvm-version-for-inline"),

compiler/rustc_trait_selection/src/traits/error_reporting/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2247,7 +2247,7 @@ pub fn recursive_type_with_infinite_size_error(
22472247
spans
22482248
.iter()
22492249
.flat_map(|&span| {
2250-
vec![
2250+
[
22512251
(span.shrink_to_lo(), "Box<".to_string()),
22522252
(span.shrink_to_hi(), ">".to_string()),
22532253
]

compiler/rustc_trait_selection/src/traits/error_reporting/suggestions.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1226,7 +1226,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
12261226
.returns
12271227
.iter()
12281228
.flat_map(|expr| {
1229-
vec![
1229+
[
12301230
(expr.span.shrink_to_lo(), "Box::new(".to_string()),
12311231
(expr.span.shrink_to_hi(), ")".to_string()),
12321232
]

compiler/rustc_trait_selection/src/traits/select/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1953,7 +1953,7 @@ impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {
19531953
ty::Generator(_, ref substs, _) => {
19541954
let ty = self.infcx.shallow_resolve(substs.as_generator().tupled_upvars_ty());
19551955
let witness = substs.as_generator().witness();
1956-
t.rebind(vec![ty].into_iter().chain(iter::once(witness)).collect())
1956+
t.rebind([ty].into_iter().chain(iter::once(witness)).collect())
19571957
}
19581958

19591959
ty::GeneratorWitness(types) => {

compiler/rustc_typeck/src/check/coercion.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1667,10 +1667,10 @@ impl<'tcx, 'exprs, E: AsCoercionSite> CoerceMany<'tcx, 'exprs, E> {
16671667
],
16681668
Applicability::MachineApplicable,
16691669
);
1670-
let sugg = vec![sp, cause.span]
1670+
let sugg = [sp, cause.span]
16711671
.into_iter()
16721672
.flat_map(|sp| {
1673-
vec![
1673+
[
16741674
(sp.shrink_to_lo(), "Box::new(".to_string()),
16751675
(sp.shrink_to_hi(), ")".to_string()),
16761676
]

compiler/rustc_typeck/src/variance/terms.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ pub fn determine_parameters_to_be_inferred<'a, 'tcx>(
8686

8787
fn lang_items(tcx: TyCtxt<'_>) -> Vec<(hir::HirId, Vec<ty::Variance>)> {
8888
let lang_items = tcx.lang_items();
89-
let all = vec![
89+
let all = [
9090
(lang_items.phantom_data(), vec![ty::Covariant]),
9191
(lang_items.unsafe_cell_type(), vec![ty::Invariant]),
9292
];

library/alloc/src/collections/btree/map/tests.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@ fn test_range_large() {
728728
#[test]
729729
fn test_range_inclusive_max_value() {
730730
let max = usize::MAX;
731-
let map: BTreeMap<_, _> = vec![(max, 0)].into_iter().collect();
731+
let map: BTreeMap<_, _> = [(max, 0)].into_iter().collect();
732732

733733
assert_eq!(map.range(max..=max).collect::<Vec<_>>(), &[(&max, &0)]);
734734
}
@@ -2128,7 +2128,7 @@ fn test_into_iter_drop_leak_height_1() {
21282128

21292129
#[test]
21302130
fn test_into_keys() {
2131-
let vec = vec![(1, 'a'), (2, 'b'), (3, 'c')];
2131+
let vec = [(1, 'a'), (2, 'b'), (3, 'c')];
21322132
let map: BTreeMap<_, _> = vec.into_iter().collect();
21332133
let keys: Vec<_> = map.into_keys().collect();
21342134

library/alloc/src/collections/vec_deque/mod.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
669669
/// ```
670670
/// use std::collections::VecDeque;
671671
///
672-
/// let mut buf: VecDeque<i32> = vec![1].into_iter().collect();
672+
/// let mut buf: VecDeque<i32> = [1].into_iter().collect();
673673
/// buf.reserve_exact(10);
674674
/// assert!(buf.capacity() >= 11);
675675
/// ```
@@ -692,7 +692,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
692692
/// ```
693693
/// use std::collections::VecDeque;
694694
///
695-
/// let mut buf: VecDeque<i32> = vec![1].into_iter().collect();
695+
/// let mut buf: VecDeque<i32> = [1].into_iter().collect();
696696
/// buf.reserve(10);
697697
/// assert!(buf.capacity() >= 11);
698698
/// ```
@@ -1153,7 +1153,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
11531153
/// ```
11541154
/// use std::collections::VecDeque;
11551155
///
1156-
/// let v: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
1156+
/// let v: VecDeque<_> = [1, 2, 3].into_iter().collect();
11571157
/// let range = v.range(2..).copied().collect::<VecDeque<_>>();
11581158
/// assert_eq!(range, [3]);
11591159
///
@@ -1188,7 +1188,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
11881188
/// ```
11891189
/// use std::collections::VecDeque;
11901190
///
1191-
/// let mut v: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
1191+
/// let mut v: VecDeque<_> = [1, 2, 3].into_iter().collect();
11921192
/// for v in v.range_mut(2..) {
11931193
/// *v *= 2;
11941194
/// }
@@ -1235,7 +1235,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
12351235
/// ```
12361236
/// use std::collections::VecDeque;
12371237
///
1238-
/// let mut v: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
1238+
/// let mut v: VecDeque<_> = [1, 2, 3].into_iter().collect();
12391239
/// let drained = v.drain(2..).collect::<VecDeque<_>>();
12401240
/// assert_eq!(drained, [3]);
12411241
/// assert_eq!(v, [1, 2]);
@@ -2025,7 +2025,7 @@ impl<T, A: Allocator> VecDeque<T, A> {
20252025
/// ```
20262026
/// use std::collections::VecDeque;
20272027
///
2028-
/// let mut buf: VecDeque<_> = vec![1, 2, 3].into_iter().collect();
2028+
/// let mut buf: VecDeque<_> = [1, 2, 3].into_iter().collect();
20292029
/// let buf2 = buf.split_off(1);
20302030
/// assert_eq!(buf, [1]);
20312031
/// assert_eq!(buf2, [2, 3]);
@@ -2091,8 +2091,8 @@ impl<T, A: Allocator> VecDeque<T, A> {
20912091
/// ```
20922092
/// use std::collections::VecDeque;
20932093
///
2094-
/// let mut buf: VecDeque<_> = vec![1, 2].into_iter().collect();
2095-
/// let mut buf2: VecDeque<_> = vec![3, 4].into_iter().collect();
2094+
/// let mut buf: VecDeque<_> = [1, 2].into_iter().collect();
2095+
/// let mut buf2: VecDeque<_> = [3, 4].into_iter().collect();
20962096
/// buf.append(&mut buf2);
20972097
/// assert_eq!(buf, [1, 2, 3, 4]);
20982098
/// assert_eq!(buf2, []);

0 commit comments

Comments
 (0)