Skip to content

Commit 0410836

Browse files
committed
Auto 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`.
2 parents cb6785f + c56f49d commit 0410836

File tree

53 files changed

+105
-107
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+105
-107
lines changed

compiler/rustc_builtin_macros/src/standard_library_imports.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ pub fn inject(
4747
ast::ItemKind::ExternCrate(None, Ident::new(name, ident_span)),
4848
);
4949

50-
krate.items.insert(0, item);
51-
5250
let root = (edition == Edition2015).then_some(kw::PathRoot);
5351

5452
let import_path = root
@@ -75,6 +73,6 @@ pub fn inject(
7573
}),
7674
);
7775

78-
krate.items.insert(0, use_item);
76+
krate.items.splice(0..0, [item, use_item]);
7977
krate.items.len() - orig_num_items
8078
}

tests/pretty/asm.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#![feature(prelude_import)]
22
#![no_std]
3-
#[prelude_import]
4-
use ::std::prelude::rust_2015::*;
53
#[macro_use]
64
extern crate std;
5+
#[prelude_import]
6+
use ::std::prelude::rust_2015::*;
77
//@ pretty-mode:expanded
88
//@ pp-exact:asm.pp
99
//@ only-x86_64

tests/pretty/cast-lt.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#![feature(prelude_import)]
22
#![no_std]
3-
#[prelude_import]
4-
use ::std::prelude::rust_2015::*;
53
#[macro_use]
64
extern crate std;
5+
#[prelude_import]
6+
use ::std::prelude::rust_2015::*;
77
//@ pretty-compare-only
88
//@ pretty-mode:expanded
99
//@ pp-exact:cast-lt.pp

tests/pretty/dollar-crate.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#![feature(prelude_import)]
22
#![no_std]
3-
#[prelude_import]
4-
use ::std::prelude::rust_2015::*;
53
#[macro_use]
64
extern crate std;
5+
#[prelude_import]
6+
use ::std::prelude::rust_2015::*;
77
//@ pretty-compare-only
88
//@ pretty-mode:expanded
99
//@ pp-exact:dollar-crate.pp

tests/pretty/expanded-and-path-remap-80832.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#![feature(prelude_import)]
22
#![no_std]
3-
#[prelude_import]
4-
use ::std::prelude::rust_2015::*;
53
#[macro_use]
64
extern crate std;
5+
#[prelude_import]
6+
use ::std::prelude::rust_2015::*;
77
// Test for issue 80832
88
//
99
//@ pretty-mode:expanded

tests/pretty/format-args-str-escape.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#![feature(prelude_import)]
22
#![no_std]
3-
#[prelude_import]
4-
use ::std::prelude::rust_2015::*;
53
#[macro_use]
64
extern crate std;
5+
#[prelude_import]
6+
use ::std::prelude::rust_2015::*;
77
//@ pretty-compare-only
88
//@ pretty-mode:expanded
99
//@ pp-exact:format-args-str-escape.pp

tests/pretty/hir-delegation.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
#![allow(incomplete_features)]
66
#![feature(fn_delegation)]
7-
#[prelude_import]
8-
use ::std::prelude::rust_2015::*;
97
#[attr = MacroUse {arguments: UseAll}]
108
extern crate std;
9+
#[prelude_import]
10+
use ::std::prelude::rust_2015::*;
1111

1212
fn b<C>(e: C) { }
1313

tests/pretty/hir-fn-params.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
#[prelude_import]
2-
use ::std::prelude::rust_2015::*;
31
#[attr = MacroUse {arguments: UseAll}]
42
extern crate std;
3+
#[prelude_import]
4+
use ::std::prelude::rust_2015::*;
55
//@ pretty-compare-only
66
//@ pretty-mode:hir
77
//@ pp-exact:hir-fn-params.pp

tests/pretty/hir-fn-variadic.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
//@ pp-exact:hir-fn-variadic.pp
44

55
#![feature(c_variadic)]
6-
#[prelude_import]
7-
use ::std::prelude::rust_2015::*;
86
#[attr = MacroUse {arguments: UseAll}]
97
extern crate std;
8+
#[prelude_import]
9+
use ::std::prelude::rust_2015::*;
1010

1111
extern "C" {
1212
unsafe fn foo(x: i32, va1: ...);

tests/pretty/hir-if-else.pp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
#[prelude_import]
2-
use ::std::prelude::rust_2015::*;
31
#[attr = MacroUse {arguments: UseAll}]
42
extern crate std;
3+
#[prelude_import]
4+
use ::std::prelude::rust_2015::*;
55
//@ pretty-compare-only
66
//@ pretty-mode:hir
77
//@ pp-exact:hir-if-else.pp

0 commit comments

Comments
 (0)