about summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorStuart Cook <Zalathar@users.noreply.github.com>2025-07-29 23:50:36 +1000
committerGitHub <noreply@github.com>2025-07-29 23:50:36 +1000
commit3d5e2fad1cb42fa0a65aa72f65230940a4a4b89a (patch)
treed70f5f035264452636e036ef3ae78914504a45a2 /compiler
parent826c462c32642c8cc17d708a1bb9a7022fd5bdd5 (diff)
parentc56f49dc34f43568122f057d72f3472b3fcd4d8e (diff)
downloadrust-3d5e2fad1cb42fa0a65aa72f65230940a4a4b89a.tar.gz
rust-3d5e2fad1cb42fa0a65aa72f65230940a4a4b89a.zip
Rollup merge of #144587 - petrochenkov:optstdprel, r=nnethercote
expand: Micro-optimize prelude injection

Use `splice` to avoid shifting the other items twice.
Put `extern crate std;` first so it's already resolved when we resolve `::std::prelude::rust_20XX`.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_builtin_macros/src/standard_library_imports.rs4
1 files changed, 1 insertions, 3 deletions
diff --git a/compiler/rustc_builtin_macros/src/standard_library_imports.rs b/compiler/rustc_builtin_macros/src/standard_library_imports.rs
index 682e7c9b17a..2068b5ca54d 100644
--- a/compiler/rustc_builtin_macros/src/standard_library_imports.rs
+++ b/compiler/rustc_builtin_macros/src/standard_library_imports.rs
@@ -47,8 +47,6 @@ pub fn inject(
         ast::ItemKind::ExternCrate(None, Ident::new(name, ident_span)),
     );
 
-    krate.items.insert(0, item);
-
     let root = (edition == Edition2015).then_some(kw::PathRoot);
 
     let import_path = root
@@ -75,6 +73,6 @@ pub fn inject(
         }),
     );
 
-    krate.items.insert(0, use_item);
+    krate.items.splice(0..0, [item, use_item]);
     krate.items.len() - orig_num_items
 }