@@ -19,16 +19,12 @@ pub fn inject(
1919 let edition = sess. psess . edition ;
2020
2121 // the first name in this list is the crate name of the crate with the prelude
22- let names : & [ Symbol ] = if attr:: contains_name ( pre_configured_attrs, sym:: no_core) {
22+ let name : Symbol = if attr:: contains_name ( pre_configured_attrs, sym:: no_core) {
2323 return 0 ;
2424 } else if attr:: contains_name ( pre_configured_attrs, sym:: no_std) {
25- if attr:: contains_name ( pre_configured_attrs, sym:: compiler_builtins) {
26- & [ sym:: core]
27- } else {
28- & [ sym:: core, sym:: compiler_builtins]
29- }
25+ sym:: core
3026 } else {
31- & [ sym:: std]
27+ sym:: std
3228 } ;
3329
3430 let expn_id = resolver. expansion_for_ast_pass (
@@ -44,37 +40,14 @@ pub fn inject(
4440 let cx = ExtCtxt :: new ( sess, ecfg, resolver, None ) ;
4541
4642 // .rev() to preserve ordering above in combination with insert(0, ...)
47- for & name in names. iter ( ) . rev ( ) {
48- let ident_span = if edition >= Edition2018 { span } else { call_site } ;
49- let item = /* if name == sym::compiler_builtins {
50- // compiler_builtins is a private implementation detail. We only
51- // need to insert it into the crate graph for linking and should not
52- // expose any of its public API.
53- //
54- // FIXME(#113634) We should inject this during post-processing like
55- // we do for the panic runtime, profiler runtime, etc.
56- //
57- // See also `is_private_dep` within `rustc_metadata`.
58- cx.item(
59- span,
60- Ident::new(kw::Underscore, ident_span),
61- thin_vec![],
62- ast::ItemKind::ExternCrate(Some(name)),
63- )
64- } else */ {
65- cx. item (
66- span,
67- Ident :: new ( name, ident_span) ,
68- thin_vec ! [ cx. attr_word( sym:: macro_use, span) ] ,
69- ast:: ItemKind :: ExternCrate ( None ) ,
70- )
71- } ;
72- krate. items . insert ( 0 , item) ;
73- }
74-
75- // The crates have been injected, the assumption is that the first one is
76- // the one with the prelude.
77- let name = names[ 0 ] ;
43+ let ident_span = if edition >= Edition2018 { span } else { call_site } ;
44+ let item = cx. item (
45+ span,
46+ Ident :: new ( name, ident_span) ,
47+ thin_vec ! [ cx. attr_word( sym:: macro_use, span) ] ,
48+ ast:: ItemKind :: ExternCrate ( None ) ,
49+ ) ;
50+ krate. items . insert ( 0 , item) ;
7851
7952 let root = ( edition == Edition2015 ) . then_some ( kw:: PathRoot ) ;
8053
0 commit comments