diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2025-07-28 17:24:28 +0300 | 
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2025-07-28 17:35:09 +0300 | 
| commit | c56f49dc34f43568122f057d72f3472b3fcd4d8e (patch) | |
| tree | 125c222938820b987e90ae0355df514d50a44a6b /compiler/rustc_builtin_macros/src | |
| parent | 65b6cdb6a6d33987b9d642a4882283c71fbe3957 (diff) | |
| download | rust-c56f49dc34f43568122f057d72f3472b3fcd4d8e.tar.gz rust-c56f49dc34f43568122f057d72f3472b3fcd4d8e.zip | |
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/rustc_builtin_macros/src')
| -rw-r--r-- | compiler/rustc_builtin_macros/src/standard_library_imports.rs | 4 | 
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 } | 
