Skip to content

Commit fa7fe19

Browse files
committed
resolve: Remove remaining special cases from built-in macros
1 parent be3fb0c commit fa7fe19

12 files changed

+20
-37
lines changed

src/librustc_resolve/build_reduced_graph.rs

-7
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,6 @@ impl<'a> Resolver<'a> {
126126
};
127127
if let Some(id) = self.definitions.as_local_node_id(def_id) {
128128
self.local_macro_def_scopes[&id]
129-
} else if self.is_builtin_macro(Some(def_id)) {
130-
self.injected_crate.unwrap_or(self.graph_root)
131129
} else {
132130
let module_def_id = ty::DefIdTree::parent(&*self, def_id).unwrap();
133131
self.get_module(module_def_id)
@@ -596,11 +594,6 @@ impl<'a, 'b> BuildReducedGraphVisitor<'a, 'b> {
596594
};
597595

598596
self.r.populate_module_if_necessary(module);
599-
if let Some(name) = self.r.session.parse_sess.injected_crate_name.try_get() {
600-
if name.as_str() == ident.name.as_str() {
601-
self.r.injected_crate = Some(module);
602-
}
603-
}
604597

605598
let used = self.process_legacy_macro_imports(item, module);
606599
let binding =

src/librustc_resolve/lib.rs

-3
Original file line numberDiff line numberDiff line change
@@ -929,8 +929,6 @@ pub struct Resolver<'a> {
929929
/// it's not used during normal resolution, only for better error reporting.
930930
struct_constructors: DefIdMap<(Res, ty::Visibility)>,
931931

932-
injected_crate: Option<Module<'a>>,
933-
934932
/// Features enabled for this crate.
935933
active_features: FxHashSet<Symbol>,
936934
}
@@ -1168,7 +1166,6 @@ impl<'a> Resolver<'a> {
11681166
unused_macros: Default::default(),
11691167
proc_macro_stubs: Default::default(),
11701168
special_derives: Default::default(),
1171-
injected_crate: None,
11721169
active_features:
11731170
features.declared_lib_features.iter().map(|(feat, ..)| *feat)
11741171
.chain(features.declared_lang_features.iter().map(|(feat, ..)| *feat))

src/librustc_resolve/macros.rs

-2
Original file line numberDiff line numberDiff line change
@@ -854,8 +854,6 @@ impl<'a> Resolver<'a> {
854854
if ext.is_builtin {
855855
// The macro is a built-in, replace only the expander function.
856856
result.kind = ext.kind;
857-
// Also reset its edition to the global one for compatibility.
858-
result.edition = self.session.edition();
859857
} else {
860858
// The macro is from a plugin, the in-source definition is dummy,
861859
// take all the data from the resolver.

src/libsyntax/ext/base.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,8 @@ pub struct SyntaxExtension {
592592
pub helper_attrs: Vec<Symbol>,
593593
/// Edition of the crate in which this macro is defined.
594594
pub edition: Edition,
595-
/// Built-in macros have a couple of special properties (meaning of `$crate`,
596-
/// availability in `#[no_implicit_prelude]` modules), so we have to keep this flag.
595+
/// Built-in macros have a couple of special properties like availability
596+
/// in `#[no_implicit_prelude]` modules, so we have to keep this flag.
597597
pub is_builtin: bool,
598598
/// We have to identify macros providing a `Copy` impl early for compatibility reasons.
599599
pub is_derive_copy: bool,

src/libsyntax/ext/build.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ impl<'a> ExtCtxt<'a> {
495495
let expr_loc_ptr = self.expr_addr_of(span, expr_loc_tuple);
496496
self.expr_call_global(
497497
span,
498-
self.std_path(&[sym::rt, sym::begin_panic]),
498+
[sym::std, sym::rt, sym::begin_panic].iter().map(|s| Ident::new(*s, span)).collect(),
499499
vec![
500500
self.expr_str(span, msg),
501501
expr_loc_ptr])

src/test/pretty/dollar-crate.pp

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010

1111
fn main() {
1212
{
13-
::std::io::_print(::std::fmt::Arguments::new_v1(&["rust\n"],
14-
&match () {
15-
() => [],
16-
}));
13+
::std::io::_print(::core::fmt::Arguments::new_v1(&["rust\n"],
14+
&match () {
15+
() => [],
16+
}));
1717
};
1818
}

src/test/pretty/issue-4264.pp

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131

3232
((::alloc::fmt::format as
33-
for<'r> fn(std::fmt::Arguments<'r>) -> std::string::String {std::fmt::format})(((<::std::fmt::Arguments>::new_v1
33+
for<'r> fn(std::fmt::Arguments<'r>) -> std::string::String {std::fmt::format})(((<::core::fmt::Arguments>::new_v1
3434
as
3535
fn(&[&str], &[std::fmt::ArgumentV1<'_>]) -> std::fmt::Arguments<'_> {std::fmt::Arguments::<'_>::new_v1})((&([("test"
3636
as

src/test/ui-fulldeps/deriving-encodable-decodable-box.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
#![feature(box_syntax)]
66
#![feature(rustc_private)]
77

8-
extern crate serialize;
9-
use serialize as rustc_serialize;
8+
extern crate serialize as rustc_serialize;
109

11-
use serialize::{Encodable, Decodable};
12-
use serialize::json;
10+
use rustc_serialize::{Encodable, Decodable};
11+
use rustc_serialize::json;
1312

1413
#[derive(RustcEncodable, RustcDecodable)]
1514
struct A {

src/test/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77

88
#![feature(rustc_private)]
99

10-
extern crate serialize;
11-
use serialize as rustc_serialize;
10+
extern crate serialize as rustc_serialize;
1211

1312
use std::cell::{Cell, RefCell};
14-
use serialize::{Encodable, Decodable};
15-
use serialize::json;
13+
use rustc_serialize::{Encodable, Decodable};
14+
use rustc_serialize::json;
1615

1716
#[derive(RustcEncodable, RustcDecodable)]
1817
struct A {

src/test/ui-fulldeps/deriving-global.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
#![feature(rustc_private)]
44

5-
extern crate serialize;
6-
use serialize as rustc_serialize;
5+
extern crate serialize as rustc_serialize;
76

87
mod submod {
98
// if any of these are implemented without global calls for any

src/test/ui-fulldeps/deriving-hygiene.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22

33
#![allow(non_upper_case_globals)]
44
#![feature(rustc_private)]
5-
extern crate serialize;
6-
use serialize as rustc_serialize;
5+
extern crate serialize as rustc_serialize;
76

87
pub const other: u8 = 1;
98
pub const f: u8 = 1;

src/test/ui-fulldeps/issue-11881.rs

+4-5
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66

77
#![feature(rustc_private)]
88

9-
extern crate serialize;
10-
use serialize as rustc_serialize;
9+
extern crate serialize as rustc_serialize;
1110

1211
use std::io::Cursor;
1312
use std::io::prelude::*;
1413
use std::fmt;
1514
use std::slice;
1615

17-
use serialize::{Encodable, Encoder};
18-
use serialize::json;
19-
use serialize::opaque;
16+
use rustc_serialize::{Encodable, Encoder};
17+
use rustc_serialize::json;
18+
use rustc_serialize::opaque;
2019

2120
#[derive(RustcEncodable)]
2221
struct Foo {

0 commit comments

Comments
 (0)